[root@Server1 nginx]# cat /var/run/nginx/nginx.pid #查看nginx的pid文件,此文件保存的就是nginx的主进程id 13337 #次ID是随机的,每次启动都不一样的 [root@Server1 nginx]# ps -ef | grep nginx #过滤nginx的进程号 root 13337 1 0 00:05 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx/nginx nginx 21568 13337 0 10:58 ? 00:00:00 nginx: worker process
支持的信号:
[root@Server1 nginx]# kill -QUIT 13337 #平缓关闭Nginx,即不再接受新的请求,但是等当前请求处理完毕后再关闭Nginx。 [root@Server1 nginx]# kill -TERM 21665 #快速停止Nginx服务 [root@Server1 nginx]# kill -HUP 21703 #使用新的配置文件启动进程然后平缓停止原有的nginx进程,即平滑重启。 [root@Server1 nginx]# kill -USR1 21703 #重新打开配置文件,用于nginx 日志切割 日期切割的脚本: #!/bin/bash PID=`cat /var/run/nginx/nginx.pid` mv /var/log/nginx/access.log /var/log/nginx/`date +%Y_%m_%d:%H:%M:%S`.access.log kill -USR1 $PID [root@Server1 nginx]# kill -USR2 21703 #使用新版本的nginx文件启动服务,然后在平缓停止原有的nginx服务,即平滑升级。 [root@Server1 nginx]# kill -WINCH 21703 #平滑停止nginx的工作进程,用于nginx平滑升级。
三:nginx 主配置文件:nginx.conf
3.1:默认配置:配置文件默认保存在path/conf当中,默认的配置文件为nginx.conf,以下是编译安装后的默认配置:
[root@Server1 conf]# grep -v "#" nginx.conf | grep -v "^$" #全局生效,主要设置nginx的启动用户/组,启动的工作进程数量,Nginx的PID路径,日志路径等。 worker_processes 1; #默认启动一个工作进程 events { #events设置快,主要影响nginx服务器与用户的网络连接,比如是否允许同时接受多个网络连接,使用哪种事件驱动模型处理请求,每个工作进程可以同时支持的最大连接数,是否开启对多工作进程下的网络连接进行序列化等。 worker_connections 1024; #设置nginx可以接受的最大并发,多个进程只和 } http { #http块是Nginx服务器配置中的重要部分,缓存、代理和日志格式定义等绝大多数功能和第三方模块都可以在这设置,http块可以包含多个server块,而一个server块中又可以包含多个location块,server块可以配置文件引入、MIME-Type定义、日志自定义、是否启用sendfile、连接超时时间和单个链接的请求上限等。 include mime.types; #文件扩展名与文件类型映射表 default_type application/octet-stream; #默认文件类型 sendfile on; #是否调用 sendfile 函数(zero copy -->零copy方式)来输出文件,普通应用打开,可以大幅提升nginx的读文件性能,如果服务器是下载的就需要关闭, keepalive_timeout 65; #长连接超时时间,单位是秒 server { #设置一个虚拟机主机,可以包含自己的全局快,同时也可以包含多个locating模块。比如本虚拟机监听的端口、本虚拟机的名称和IP配置,多个server 可以使用一个端口,比如都使用8090端口提供web服务、 listen 8090; #server的全局配置,配置监听的端口 server_name localhost; #本server的名称,当访问此名称的时候nginx会调用当前serevr内部的配置进程匹配。 location / { #location其实是server的一个指令,为nginx服务器提供比较多而且灵活的指令,都是在location中提现的,主要是基于nginx接受到的请求字符串,对用户请求的UIL进行匹配,并对特定的指令进行处理,包括地址重定向、数据缓存和应答控制等功能都是在这部分实现,另外很多第三方模块的配置也是在location模块中配置。 root html; #相当于默认页面的目录名称,默认是相对路径,可以使用绝对路径配置。 index index.html index.htm; } error_page 500 502 503 504 /50x.html; #错误页面的文件名称 location = /50x.html { #location处理对应的不同错误码的页面定义到/50x.html,这个跟对应其server中定义的目录下。 root html; #定义默认页面所在的目录 } } }
3.2:配置nginx 主进程的启动用户和工作进程数: