Nginx资料之命令行控制

◆ 指定配置文件启动:

使用-c参数指定配置文件

/usr/local/nginx/sbin/nginx -c tmpnginx.conf

◆ 指定安装目录的启动:

使用-p参数指定Nginx的安装目录

/usr/local/nginx/sbin/nginx -p /usr/local/nginx/

◆ 测试配置信息是否有错误:

在不启动Nginx的情况下,使用-t参数仅测试配置文件是否有错误

[root@localhost nginx]# nginx -t
nginx: the configuration file /home/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /home/nginx/conf/nginx.conf test is successful

◆ 显示版本信息:

使用-v参数显示Nginx的版本信息

[root@localhost nginx]# nginx -v
nginx version: nginx/1.16.0

◆ 显示编译阶段的参数:

使用-V参数除了可以显示Nginx的版本信息外,还可以显示配置编译阶段的信息,如GCC编译器的版本、操作系统的版本、执行configure时的参数等。

[root@localhost nginx]# nginx -V
nginx version: nginx/1.16.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) 
configure arguments: --prefix=/home/nginx

◆ 快速地停止服务:

使用-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信号,效果是一样

kill -s SIGTERM PID

或者

kill -s SIGINT <nginx master pid>

◆ “优雅”地停止服务:

如果希望Nginx服务可以正常地处理完当前所有请求再停止服务,那么可以使用-s quit参数来停止服务。当快速停止服务时,worker进程与master进程
在收到信号后会立刻跳出循环,退出进程。而“优雅”地停止服务时,首先会关闭监听端口,停止接收新的连接,然后把当前正在处理的连接全部处理完,最后再退出进程。

/usr/local/nginx/sbin/nginx -s quit

发送QUIT信号给master进程来停止服务,其效果与执行-s quit命令是一样的

kill -s SIGQUIT <nginx master pid>

如果希望“优雅”地停止某个worker进程,那么可以通过向该进程发送WINCH信号来停止服务。

kill -s SIGWINCH <nginx worker pid>

◆ 运行中的Nginx重读配置项:

使用-s reload参数可以使运行中的Nginx服务重新加载nginx.conf文件。事实上,Nginx会先检查新的配置项是否有误,如果全部正确就以“优雅”的方式关闭,
再重新启动Nginx来实现这个目的。

/usr/local/nginx/sbin/nginx -s reload

可以用kill命令发送HUP信号来达到相同的效果

kill -s SIGHUP <nginx master pid>

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

/usr/local/nginx/sbin/nginx -s reopen

使用kill命令发送USR1信号效果相同

kill -s SIGUSR1 <nginx master pid>

◆ 平滑升级Nginx:

当Nginx服务升级到新的版本时,必须要将旧的二进制文件Nginx替换掉,通常情况下这是需要重启服务的,但Nginx支持不重启服务来完成新版本的平滑升级。升级时包括以下步骤:
1)通知正在运行的旧版本Nginx准备升级。通过向master进程发送USR2信号可达到目的。这时,运行中的Nginx会将pid文件重命名,如/usr/local/nginx/logs/nginx.pid重命名为usrlocal/nginx/logs/nginx.pid.oldbin,这样新的Nginx才有可能启动成功。

kill -s SIGUSR2 <nginx master pid>

2)启动新版本的Nginx,可以使用以上介绍过的任意一种启动方法。这时通过ps命令可以发现新旧版本的Nginx在同时运行。
3)通过kill命令向旧版本的master进程发送SIGQUIT信号,以“优雅”的方式关闭旧版本的Nginx。随后将只有新版本的Nginx服务运行,此时平滑升级完毕。


◆ 显示命令行帮助:

使用-h或者-?参数会显示支持的所有命令行参数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值