nginx命令、信号控制

一)nginx命令

1)nginx启动

指令:nginx程序 -c nginx配置文件

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

2)nginx重启

进入nginx可执行程序的目录

$ cd /usr/local/nginx/sbin
$ ./nginx -s reload

nginx: [error] invalid PID number "" in "/usr/local/nginx/logs/nginx.pid"

重启是建立在nginx服务需要启动

3)nginx停止

$ ./nginx -s stop 
$ ./nginx -s quit
  • quit 是一个优雅的关闭方式,Nginx在退出前完成已经接受的连接请求

  • stop 是快速关闭,不管有没有正在处理的请求。

4)重新打开日志

# ./nginx -s reopen

5)nginx检查配置文件

检查配置文件是否正确

  • 第一种

进入nginx可执行程序的目录

  • 第二种

指定配置文件

二)nginx的信号控制

Nginx支持2种进程模型Single和Master-Worker

Single是单进程,一般不适用,

Master-Worker是主进程和工作进程模型运行,主进程对工作进程管理。

Nginx允许我们通过信号来控制主进程,用信号的方式可以达到不影响现有连接的目的。

信号类型

  • INT,TERM 快速关闭信号

  • QUIT 从容关闭信号

  • HUP 从容重启信号,一般用于修改配置文件后,重启

  • USR1 重读日志,一般用于日志的切割

  • USR2 平滑升级信号

  • WINCH 从容关闭旧进程

具体语法:

kill -信号选项 nginx的主进程号

例:

1)nginx停止

  • 第1种从容“优雅”停止

Nginx服务可以正常地处理完当前所有请求再停止服务

步骤:首先会关闭监听端口,停止接收新的连接,然后把当前正在处理的连接全部处理完,最后再退出进程。

  • 第2种快速停止

快速停止服务时,worker进程与master进程在收到信号后会立刻跳出循环,退出进程。

  • 第3种强制停止

系统强杀nginx进程

2)重启nginx

Last updated

Was this helpful?