Nginx - 02 - Nginx启动/停止

版权声明:本文为博主原创文章,可以转载,但请注明出处。 https://blog.csdn.net/Simba_cheng/article/details/81987166

因为我的测试环境在Windows环境,所以很多命令都无法测试。

这里直接复制书中的Linux命令。

Nginx的信号支持

Nginx支持以下几种信号:

TREM、INT

快速关闭

QUIT

从容关闭

HUP

平滑启动、重新加载配置文件

USR1

重新打开日志文件,在切割日志时用途较大

USR2

平滑升级可执行程序

WINCH

从容关闭工作进程

Nginx启动

假设Nginx安装在/usr/local/nginx/ 目录中,那么启动Nginx的命令就是:

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

参数 -c 指定了配置文件的路径;

如果不加 -c 参数,Nginx默认加载其安装路径目录conf中的nginx.conf文件。

Nginx停止

查找Nginx的主进程:

ps -ef | grep nginx

显示所有Nginx的进程,其中备注:master process , 表示它为主进程;其他是子进程。

如果在nginx.conf配置文件中指定了nginx.pid文件存放的路径,该文件中存放的就是Nginx当前的主进程号。

如果没有指定,nginx.pid文件默认存放在Nginx安装路径的logs目录下。

例如,windows环境下:

so,可以直接通过以下命令完成平滑重启,省下寻找Nginx主进程号的步骤;

kill - 信号类型 `/usr/local/webserver/nginx/logs/nginx.pid`

①. 从容停止Nginx

kill - QUIT 主进程号

或

kill - QUIT `/usr/local/webserver/nginx/logs/nginx.pid`

②. 快速停止Nginx

kill - TERM Nginx主进程号

kill - TERM `/usr/local/webserver/nginx/logs/nginx.pid`

或

kill - INT Nginx主进程号

kill - INT `/usr/local/webserver/nginx/logs/nginx.pid`

③. 强制停止

pkill -9 nginx

Nginx平滑重启

如果改变了Nginx的配置文件nginx.conf,想要重启Nginx,同样可以通过发送系统信号给Nginx主进程的方式来进行。

不过,重启之前,要确认Nginx配置文件nginx.conf的语法是否正确;否则Nginx不会加载新的配置文件。

通过以下命令:

./nginx.exe -t -c ./conf/nginx.conf

配置文件语法正确会输出以下两行:

这时候就可以平滑重启Nginx了:

kill -HUP Nginx进程

kill -HUP `/usr/local/webserver/nginx/logs/nginx.pid`

当Nginx接收到HUP信号时,它会先尝试解析配置文件(如果没有指定,就使用默认的);

配置文件解析成功,就应用新的配置文件。

之后,Nginx运行新的工作进程并从容关闭旧的工作进程,通知工作进程关闭监听套接字,但是继续为当前连接的客户提供服务。

所有客户端的服务完成之后,旧的工作进程被关闭。如果新的配置文件应用失败,Nginx将继续使用旧的配置进行工作。

Nginx平滑升级

当需要将正在运行中的Nginx升级、添加、删除服务器模块时,可以在不中断服务的情况下,使用新版本、重编译的Nginx可执行程序替换旧版本的可执行程序。

书中具体流程不太详细,可以参考这篇:https://www.cnblogs.com/liuqiang0/p/8528009.html

参考来源:《实战Nginx:取代Apache的高性能Web服务器》

猜你喜欢

转载自blog.csdn.net/Simba_cheng/article/details/81987166