当安装好了nginx后,还需要对其相关服务命令的掌握也是有必要,比如nginx的重启,重新加载配置文件等等,如下为nginx服务命令控制的相关说明

 

1. nginx的命令的控制使用介绍

nginx的默认命令可选参数意义说明

/usr/local/nginx/sbin/nginx 

-c 
启动nginx时,通过-c参数加载指定nginx主配置文件
/usr/local/nginx/sbin/nginx -p启动nginx时,使用-p参数指定Nginx的安装目录

/usr/local/nginx/sbin/nginx

-g

启动nginx服务时,通过-g参数临时指定nginx的pid文件路径
/usr/local/nginx/sbin/nginx -t通过-t检查nginx配置文件是否有误
/usr/local/nginx/sbin/nginx -v显示nginx的版本信息
/usr/local/nginx/sbin/nginx -V显示nginx相关./configure参数以及OS,G版本信息
/usr/local/nginx/sbin/nginx -s stop

快速关闭nginx服务,等同于kill -s SIGTERM/SIGINT <nginx master pid>


/usr/local/nginx/sbin/nginx 


-s quit

优雅关闭nginx服务(先会关闭监听端口,停止接收新的连接,然后把当前正在处理的连接全部处理完,最后再退出进程)等同kill -s SIGQUIT <nginx master pid>; 当然要想关闭nginx的某个work进程,使用:kill -s SIGWINCH <nginx work pid>


/usr/local/nginx/sbin/nginx 


-s reload

重新加载nginx配置(事实上,Nginx会先检查新的配置项是否有误,如果全部正确就以“优雅”的方式关闭,再重新启动Nginx来实现这个目的。类似的,-s是发送信号,仍然可以用kill命令发送HUP信号来达到相同的效果)等同于kill -s SIGHUP <nginx master pid>

 

/usr/local/nginx/sbin/nginx



-s reopen

日志回滚,使用-s reopen参数可以重新打开日志文件,这样可以先把当前日志文件改名或转移到其他目录中进行备份,再重新打开时就会生成新的日志文件。这个功能使得日志文件不至于过大,等同于kill -s SIGUSR1 <nginx master pid>


/usr/local/nginx/sbin/nginx

-t -q

测试配置选项时,使用-q参数可以不把error级别以下的信息输出到屏幕。例如:
/usr/local/nginx/sbin/nginx-h 或-?显示命令的帮助


2. 关于nginx的平滑升级

   当Nginx服务升级到新的版本时,必须要将旧的二进制文件Nginx替换掉,通常情况下这是需要重启服务的,但Nginx支持不重启服务来完成新版本的平滑升级

  升级时包括以下步骤:

1.通知正在运行的旧版本Nginx准备升级。通过向master进程发送USR2信号可达到目的。如下:

  kill -s SIGUSR2 <nginx master pid> 

这时,运行中的Nginx会将pid文件重命名,例如将/usr/local/nginx/logs/nginx.pid重命为:/usr/local/nginx/logs

/nginx.pid.old 这样新的Nginx才有可能启动成功。

2.启动新版本的Nginx,可以使用以上介绍过的任意一种启动方法。这时通过ps命令可以发现新旧版本的Nginx在同时运行。

3.通过kill命令向旧版本的master进程发送SIGQUIT信号,以“优雅”的方式关闭旧版本的Nginx。随后将只有新版本的Nginx服务运行,此时平滑升级完毕。