1.Nginx简介
1.Nginx简介:
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。
其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好
Nginx专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率,能经受高负载的考研,有报告表明能够支持高达50000个并发连接数
2.反向代理
2.1 正向代理:在浏览器中需要配置代理服务器,通过代理服务器进行互联网访问
2.2 反向代理:客户端对代理无感知的,因为客户端不需要任何配置就可以访问,我们只需要把请求发送到反向代理服务器,
由反向代理服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是
代理服务器的地址,隐藏了真实服务器的地址
3.负载均衡
4.动静分离:
为了加快网站的解析速度,可以把动态页面和静态页面由不通的服务器来解析,加快解析速度。降低原来的单个服务器压力
1.Nginx的安装
1.先安装pcre依赖
1.1 上传pcre压缩包,并解压(pcre包下载位置:https://sourceforge.net/projects/pcre/files/pcre/)
1.2 进入pcre的解压目录。执行./configure
1.3 执行:
[root@kd_ccse_001 pcre-8.35]# make && make install
1.4 查看版本号:
[root@kd_ccse_001 pcre-8.35]# pcre-config --version
8.35
2.安装openssl
3.安装zlib
使用yum命令安装上述两种依赖:yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
4.Nginx安装
1.上传解压文件
2.执行命令:
./configure
3.执行命令:
make && make install
4.安装成功后,会在/usr/local路径下多出一个nginx文件夹,在ngix下有/sbin/里面包含了启动脚本
5.启动命令:
1.# pwd
/usr/local/nginx/sbin
2.启动:
./nginx
3.[root@bogon sbin]# ps -ef|grep nginx
root 128392 1 0 09:41 ? 00:00:00 nginx: master process ./nginx
nobody 128393 128392 0 09:41 ? 00:00:00 nginx: worker process
root 128407 124001 0 09:41 pts/1 00:00:00 grep --color=auto nginx
6.测试访问:
默认监听的是80端口:
http://192.168.2.129/80
2.nginx操作的常用命令
安装nginx后,在/usr/local/nginx/sbin路径上有nginx的脚本
nginx的配置文件:/usr/local/nginx/conf/nginx.conf
1.查看nginx版本
[root@bogon sbin]# ./nginx -v
nginx version: nginx/1.9.9
2.停止nginx:
[root@bogon sbin]# ./nginx -s stop
3.启动nginx:
[root@bogon sbin]# ./nginx
4.重新加载nginx文件:更改了配置文件,不用重启,重新加载
[root@bogon sbin]# ./nginx -s reload
3.Nginx配置文件详解
nginx的配置文件分为三部分:
1.全局块:
从配置文件开始到events块之间的内容,主要会设置一些影响nginx服务器整体运行的配置指令,主要包括了配置运行Nginx服务器的用户组、允许生成的worker process数
进程PID存放路径、日志存放路径和类型以及配置文件的引入等。
例如:
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
其中的: worker_processes 1;这是Nginx服务器并发处理服务的关键配置,worker_processes值越大,可以支持的并发处理量就越大,但是会受到硬件和软件等设备的制约
2.event块
主要影响Nginx服务器和用户的网络连接,常用的设置包含了是否开启对多 work process下的网络连接进行序列化,是否允许同时接受多个网络连接,选取那种时间驱动模型来处理连接请求,
每个Word process同时支持的最大连接数等
这部分对nginx的性能影响比较大,在实际中应该灵活配置
例如:nginx的每个work process支持的最大连接数位1024
events {
worker_connections 1024;
}
3.http块:
这算是nginx服务器配置中最频繁的部分,代理,缓存和日志定义等绝大多数功能和第三方模块的配置都在这里。
需要注意的是:http块可以包含http全局块、server块
3.1 http全局块
http全局块配置的指令包含文件引入,MIME-TYPE定义,日志自定义,连接超时时间,单链接请求数上限等
3.2 server块:
这块和虚拟主机有密切关系,虚拟主机从用户角度栏,和一台独立的硬件主机是完全一致的,该技术的产生是为了节省互联网服务硬件成本
每个http块可以包含多个server块,而每个server块就相当于一个虚拟机
而每个server块也分为了全局server块,以及可以同时包含多个location块
1.全局server块:
最常见的配置是虚拟机主机的监听配置和本虚拟主机的名称或者IP配置
2.lication块:
一个server块可以配置多个location块。
这块的主要作用是基于nginx服务器接收到的请求字符串(例如server_name/uri-string),对虚拟主机名称(也可以是IP别名)之外的字符串(例如前面的/uri-string)进行匹配,
对特定的请求进行处理。地址定向,数据缓存和应答控制等功能,还有很多第三方模块的配置也在这里进行