截至2019年12月,差不多天下上每3个网站中就有1个利用Nginx。
特性高并发连接,官方测试Nginx能够支撑5万并发连接,在实际的生产环境中可支撑2~4万的并发连接数。这个得益于Nginx利用了epoll和kqueue网络模型。内存花费少,Nginx+PHP(FastCGI)做事器在3万并发连接下,开启的10个Nginx进程花费150MB内存(150×10=150MB),开启的64个php-cgi进程花费1280MB内存(20MB×64=1280MB),加上系统自身花费的内存,统共花费不到2GB的内存。如果做事器内存较小,完备可以只开启25个php-cgi进程,这样php-cgi花费总内存数才500MB。用Webbench做压力测试,在3万并发连接下,访问Nginx+PHP(FastCGI)做事器的PHP程序,运行速率依然飞快。本钱低廉,购买F5,BIG-IP,NetScaler等硬件负载均衡交流机须要十多万乃至几十万公民币。而Nginx为开源软件,采取的是2-clauseBSD-like协议,可以免费利用,并且可以用于商业用场。配置文件大略,网络跟程序一样普通易懂,纵然非专业系统管理员也能看懂。内置的康健检讨功能,如果Nginx Proxy后真个某台Web做事器宕机了,不会影响前端访问。节省宽带,支持GZIP压缩,可以添加浏览器本地缓存的Header头。稳定性高,用于反向代理,宕机的概率微乎其微。支持热支配,Nginx支持热支配,它的启动特殊随意马虎,并且险些可以7天中24小时不间断地运行,纵然运行数个月也不须要要重新启动。你还能在不间断做事的情形下,对软件进行升级。Nginx安装
Linux版本:Cent OS764位
Nginx版本: nginx-1.15.9

在安装nginx前首先要确认系统中安装了gcc、pcre-devel、zlib-devel、openssl-devel。
1、rpm包安装的,可以用 rpm -qa 看到,如果要查找某软件包是否安装,用 rpm -qa | grep "软件或者包的名字"
2、以deb包安装的,可以用 dpkg -l 看到。如果是查找指定软件包,用 dpkg -l | grep "软件或者包的名字"
3、yum方法安装的,可以用 yum list installed 查找,如果是查找指定包,用 yum list installed | grep "软件名或者包名"
1.依赖环境安装
yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
2.下载Nginx
wget http://nginx.org/download/nginx-1.15.9.tar.gz
3.解压
tar -zxvf nginx-1.15.9.tar.gz
4./usr/local目录下创建一个nginx目录,用来把已经下载好的nginx安装编译到此目录中
cd nginx-1.15.9./configure --prefix=/usr/local/nginxmake && make install
/usr/local/中天生nginx目录,nginx安装完成。
目录构造|-- conf #这是Nginx所有配置文件的目录,极其主要 |-- fastcgi.conf #fastcgi干系参数的配置文件 |-- fastcgi.conf.default #fastcgi.conf的原始备份 |-- fastcgi_params #fastcgi的参数文件 |-- fastcgi_params.default |-- koi-utf |-- koi-win |-- mime.types #媒体类型 |-- mime.types.default |-- nginx.conf #这是Nginx默认的主配置文件 |-- nginx.conf.default |-- scgi_params #scgi干系参数文件,一样平常用不到 |-- scgi_params.default |-- uwsgi_params #uwsgi干系参数文件,一样平常用不到 |-- uwsgi_params.default |-- win-utf fastcgi_temp #fastcgi临时数据目录|-- html #这是编译安装时Nginx的默认站点目录,类似 Apache的默认站点htdocs目录23 | |--50x.html # 缺点页面优雅替代显示文件,例如:涌现502缺点时会调用此页面24 # error_page 500502503504 /50x.html;25 | `-- index.html # 默认的首页文件,首页文件名字是在nginx.conf中事先定义好的。26 |-- logs #这是Nginx默认的日志路径,包括缺点日志及访问日志27 | |-- access.log # 这是Nginx的默认访问日志文件,利用tail -f access.log,可以实时不雅观看网站用户访问情形信息28 | |-- error.log # 这是Nginx的缺点日志文件,如果Nginx涌现启动故障等问题,一定要看看这个缺点日志29 | `-- nginx.pid # Nginx的pid文件,Nginx进程启动后,会把所有进程的ID号写到此文件30 |-- proxy_temp #临时目录31 |-- sbin #这是Nginx命令的目录,如Nginx的启动命令nginx32 | `-- nginx #Nginx的启动命令nginx33 |-- scgi_temp #临时目录34 `-- uwsgi_temp #临时目录35 9 directories,21 files
操作命令
启动命令
#1/usr/local/nginx/sbin/nginx#2进入 cd /usr/local/nginx/sbin/nginx 目录后 ./nginx启动#3 指定配置文件启动./nginx -c /usr/local/nginx/conf/nginx.conf
关闭防火墙,启动Nginx,在浏览器即可访问。
systemctl stop firewalld.service/usr/local/nginx/sbin/nginx
停滞命令
#1 利用-s stop可以逼迫停滞Nginx做事/usr/local/nginx/sbin/nginx -s stop 或者 ./nginx -s stop,以下采取./nginx#2 利用-s quit可以正常地处理完当前所有要求再停滞做事./nginx -s quit#3 采取kill办法。#kill -s SIGTERM 主进程号#主进程号可以通过以下查看#cat /usr/local/nginx/logs/nginx.pid#ps -ef | grep nginxkill -s SIGTERM 15893 #逼迫停滞Nginx做事kill -s SIGINT 15893 #逼迫停滞Nginx做事kill -s SIGQUIT 15893 #优雅”地停滞做事
重启命令
#重新加载Nginx配置文件,然后以优雅的办法重启Nginx./nginx -s reload #平滑重启nginxkill -HUP 主进程号
其他命令
#检测配置文件是否有语法缺点,然退却撤退出./nginx -t #查看帮助./nginx -? 或 ./nginx -h #显示版本信息并退出./nginx -v #显示版本和配置选项信息,然退却撤退出 ./nginx -V#检测配置文件是否有语法缺点,转储并退出./nginx -T #在检测配置文件期间屏蔽非缺点信息./nginx -q #设置前缀路径(默认是:/usr/share/nginx/)./nginx -p prefix
停滞命令-s参数实在是见告Nginx程序向正在运行的Nginx做事发送旗子暗记量,Nginx程序通过nginx.pid文件中得到master进程的进程ID,再向运行中的master进程发送TERM旗子暗记来快速地关闭Nginx做事
配置文件vim /usr/local/nginx/conf/nginx.conf
nginx.conf由多个块组成,最表面的块是main,main包含events和http,http包含upstream和多个server,server又包含多个location。
main(全局设置)、server(主机设置)、upstream(负载均衡做事器设置)和 location(URL匹配特定位置的设置)。
main块设置的指令将影响其他所有设置;server块的指令紧张用于指定主机和端口;upstream指令紧张用于负载均衡,设置一系列的后端做事器;location块用于匹配网页位置。后面章节连续先容Nginx的其他特性与运用。