nginx 的停止和平滑重启

Nginx的停止

停止操作是通过向nginx进程发送信号来进行的
步骤1:查询nginx主进程号
ps -aux | grep nginx
在进程列表里 面找master进程,它的编号就是主进程号了。
步骤2:发送信号
从容停止Nginx:
kill -QUIT 主进程号
快速停止Nginx:
kill -TERM 主进程号
强制停止Nginx:
pkill -9 nginx
另外, 若在nginx.conf配置了pid文件存放路径则该文件存放的就是Nginx主进程号,如果没指定则放在nginx的logs目录下。有了pid文件,我们就不用先查询Nginx的主进程号,而直接向Nginx发送信号了,命令如下:
kill -信号类型 ‘/usr/nginx/logs/nginx.pid‘

Nginx的平滑重启

(在不修改安装路径的情况下,安装的nginx位于/usr/local/nginx 目录下)

如果改变了Nginx的配置文件(nginx.conf),想重启Nginx,可以发送系统信号给Nginx主进程的方式来进行。不过,在重启之前,要确认Nginx配置文件的语法是正确的,可通过如下命令测试配置文件是否正确:

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

如果配置文件不正确,屏幕会提示配置文件的第几行出错:

nginx:[emerg] invalid number of arguments in "autoindex" directive in /usr/local/nginx/conf/nginx.conf:29

nginx:configuration file /usr/local/nginx/conf/nginx.conf test failed

如果配置文件正确,屏幕将提示以下两行信息:

the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok

configuration file /usr/local/nginx/conf/nginx.conf test is successful

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

对于Nginx 0.8.x之前的版本 kill -HUP `cat /usr/local/nginx/nginx.pid`

或者向停止操作一样 kill -HUP 主进程号

对于Nginx 0.8.x之后的版本 /usr/local/webserver/nginx/sbin/nginx -s reload

平滑升级
如果服务器正在运行的Nginx要进行升级、添加或删除模块时,我们需 要停掉服务器并做相应修改,这样服务器就要在一段时间内停止服务,Nginx可以在不停机的情况下进行各种升级动作而不影响服务器运行。
步骤1:
如 果升级Nginx程序,先用新程序替换旧程序文件,编译安装的话新程序直接编译到Nginx安装目录中。
步 骤2:执行命令
kill -USR2 旧版程序的主进程号或进程文件名
此时旧的Nginx主进程将会把自己的进程文件改名为.oldbin,然后执行新版 Nginx。新旧Nginx会同市运行,共同处理请求。
这时要逐步停止旧版 Nginx,输入命令:
kill -WINCH 旧版主进程号
慢慢旧的工作进程就都会随着任务执行完毕而退出,新版的Nginx的工作进程会逐渐取代旧版工作进程。
此时,我们可以决定使用新版还是恢复到旧版。
不重载配置启动新/旧工作进程
kill -HUP 旧/新版主进程号
从容关闭旧/新进程
kill -QUIT 旧/新主进程号
如果此时报错,提示还有进程没有结束就用下面命令先关闭旧/新工作进程,再关闭主进程号:
kill -TERM 旧/新工作进程号
这样下来,如果要恢复到旧版本,只需要上面的几个步骤都是操作新版主进程号,如果要用新版本就上面的几个步骤都操作旧版主进程号就行了。

附:Nginx的信号控制

Nginx支持以下几种信号:

TERM,INT 快速关闭

QUIT 从容关闭

HUP 平滑重启,重新加载配置文件

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

USR2 平滑升级克执行程序

WINCH 从容关闭工作进程

时间: 2024-12-09 18:45:05

nginx 的停止和平滑重启的相关文章

Nginx的启动、停止、平滑重启

在Linux下,Nginx服务的主要操作就是启动.停止和重启. 1.Nginx的启动: 如果nginx安装在/usr/local/nginx/ 目录中,那么启动nginx的命令就是:/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf  #"-c"指定了配置文件的路径,如果不加该参数,Nginx会默认加载其安装目录的conf子目录中的nginx.conf文件. 2. Nginx的停止: 我们可以通过ps命令来查找

linux下nginx启动停止重启控制脚本

这是控制nginx服务的脚本文件,包括控制nginx的启动.重启.停止.平滑重启.对配置文件的额检查. [[email protected] ~]# cat nginx.sh #!/bin/env bash # description:nginx server   ###必须加描述 # nginx - this script is used to control nginx service # processname nginx # chkconfig: - 85 15 # edit by su

nginx重启 平滑重启

进入 ngiinx sbin目录下./nginx -c /usr/local/nginx/conf/nginx.conf -c参数指定了要加载的nginx配置文件路径 停止操作停止操作是通过向nginx进程发送信号来进行的 步骤1:查询nginx主进程号 ps -ef | grep nginx在进程列表里 面找master进程,它的编号就是主进程号了. 步骤2:发送信号 从容停止Nginx:kill -QUIT 主进程号  例如:kill -QUIT 16391 快速停止Nginx:kill -

nginx 开启 停止 重启

Nginx的启动.停止与重启 启动 启动代码格式:nginx安装目录地址 -c nginx配置文件地址 例如: [[email protected] sbin]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 停止 nginx的停止有三种方式: 从容停止 1.查看进程号 [[email protected] ~]# ps -ef|grep nginx 2.杀死进程 [[email protected] ~]# ki

Nginx的启动、关闭和平滑重启

在完成对nginx.conf文件的配置后,就可以启动服务了.Nginx自身提供了一些用于日常维护的命令,下面进行详细的介绍. 1. Nginx基本信息检查 (1)检查Nginx配置文件的正确性 Nginx提供的配置文件调试功能非常有用,可以快速定位配置文件存在的问题.执行如下命令可检测配置文件的正确性: /opt/nginx/sbin/nginx –t 或者 /opt/nginx/sbin/nginx -t -c /opt/nginx/conf/nginx.conf 其中,"-t"参数

Nginx的启动、停止、平滑启动、平滑升级

Nginx的启动 启动nginx,可以执行一下命令(默认安装位置): /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 参数"-c"指定了配置文件的路径,如果不加,则Nginx会默认加载其安装目录的conf子目录中的ngin.conf Nginx的停止 nginx的停止方法有很多种,一般是发送系统信号给nginx主进程来停止nginx. 我们通过ps命令来查找nginx的主进程号 ps -ef |grep n

Nginx常用的平滑重启

之前在做运维工作中,经常需要添加虚拟主机,或者添加修改配置文件,但是测试环境还好,随便玩,如果是生产环境的话,既要保证配置不出问题,有不能中断服务.如果是这样的话,就需要对配置文件进行语法检测以及平滑重启. nginx的语法检测 /usr/local/nginx/sbin/nginx -t 如果语法检测没有报错的话,需要平滑加载配置文件 /usr/local/nginx/sbin/nginx -s reload 注:上述nginx平滑重启的方式只有版本大于等于 0.7.53才能使用,否则的话需要

nginx重载配置文件及平滑升级

Nginx命令行选项 启动.停止.重启nginx命令 如何重新加载nginx配置文件 nginx程序不重启平滑升级可执行文件 一.Nginx命令行选项 不像许多其他软件系统,Nginx 仅有几个命令行参数,完全通过配置文件来配置 -c </path/to/config> 为 Nginx 指定一个配置文件,来代替缺省的. -t 不运行,而仅仅测试配置文件.nginx 将检查配置文件的语法的正确性,并尝试打开配置文件中所引用到的文件. -v 显示 nginx 的版本. -V 显示 nginx 的版

Nginx+Keepalived主备切换(包含nginx服务停止)

原文地址:http://blog.sina.com.cn/s/blog_79ac6aa80101bmed.html Nginx+Keepalived主备切换(包含nginx服务停止) 环境: VM中4台CentOS 本机PC充当测试机win8 步骤: 1.搭建 nginx+keepalived主备切换(不考虑主nginx停掉现象)文章中的环境 2.修改两台部署的keepalived的配置文件 3.编写观察nginx进程情况的脚本内容 #!/bin/bash A=`ps -C nginx --no