前言
默认情况下,Nginx 安装在 /usr/local/nginx 目录下,其二进制文件为 /usr/local/nginx/sbin/nginx,配置文件路径为 /usr/local/nginx/conf/nginx.conf。
1:默认启动
/usr/local/nginx/sbin/nginx
2:指定配置文件启动
/usr/local/nginx/sbin/nginx -c tempnginx.conf
3:测试配置文件是否有误
/usr/local/nginx/sbin/nginx -t
4:在测试配置文件是否有误时不输出信息
例如-q不把error级别以下的信息输出到屏幕
/usr/local/nginx/sbin/nginx -t -q
5:显示版本信息
/usr/local/nginx/sbin/nginx -v
6:显示编译阶段的参数
除了显示版本信息外,还可以显示配置编译阶段的信息,例如GCC编译器版本、操作系统版本、执行configure时的参数等:
/usr/local/nginx/sbin/nginx -V
7:快速停止服务
使用-s stop可以强制停止Nginx服务。-s参数其实是告诉Nginx程序向正在运行的Nginx服务发送信号量,Nginx程序通过nginx.pid文件得到master进程的进程ID,再向运行中的master进程发送TERM信号来快速关闭Nginx服务。
/usr/local/nginx/sbin/nginx -s stop
其实通过kill命令直接向nginx master进程发送TERM或者INT信号,也能停止服务。首先查询master进程ID,再通过kill命令发送信号:
ps -ef | grep nginx
kill -s SIGTERM master进程ID 或者 kill -s SIGINT master进程ID
8:优雅停止服务
Nginx服务正常处理完当前所有请求再停止服务。首先会关闭监听端口,停止接收新的链接,然后把当前正在处理的连接全部处理完,最后再推出进程。
/usr/local/nginx/sbin/nginx -s quit
等同于:
kill -s SIGQUIT master进程ID
9:优雅停止某个worker进程
kill -s SIGWINCH worker进程ID
10:使运行中的Nginx重读配置项并生效
Nginx先检查新的配置项是否有误,若全部正确就以优雅的方式关闭再重启。
/usr/local/nginx/sbin/nginx -s reload
其等同于:
kill -s SIGHUP master进程ID
11:日志文件回滚
把当前日志文件改名或转移到其他目录中进行备份,再重新打开时就会生成新的日志文件,这个功能让日志不至于过大。
/usr/local/nginx/sbin/nginx -s reopen
其等同于:
kill -s SIGUSR1 master进程ID
12:平滑升级Nginx
当Nginx服务升级到新的版本时,必须要将旧的二进制文件Nginx替换掉。首先执行以下命令将老的Nginx的pid(/usr/local/nginx/logs/nginx.pid)文件重命名,这样新的Nginx才能启动成功:
kill -s SIGUSR2 master进程ID
然后再通过任意一种方式启动新的Nginx,最后通过kill命令向旧版本的master进程发送SIGQUIT信号,以优雅地方式关闭老版本的Nginx。