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`
对于Nginx 0.8.x之后的版本 /usr/local/webserver/nginx/sbin/nginx -s reload
Nginx的平滑升级
当需要将正运行的Nginx升级,可以在不中断服务的情况下进行,具体步骤如下:
1、使用新的可执行程序替换旧的可执行程序。下载新的Nginx,重新编译到旧版本的安装路径中。重编译之前,先备份一下旧的可执行文件。
2、执行以下指令,他将存储有旧版本主进程ID的文件重命名为.oldbin:
kill -USR2 旧版本的Nginx主进程号
一般情况下是这样的:kill -USR2 `cat /usr/local/nginx/nginx.pid`
可以用 ls /usr/local/nginx/logs来查看是否改名
3、执行新版本的Nginx可执行程序。
ulimit -SHn 65535
/usr/local/nginx/sbin/nginx
4、此时新旧版本的Nginx会同时运行,共同处理请求。要逐步停止旧版本的Nginx,必须发送WINCH信号给旧的主进程。然后,他的工作进程将从容关闭。
kill -WINCH 旧版本的Nginx主进程号
5、一段时间后,旧的工作进程处理完了所有的请求后退出,仅由新的进程来处理输入请求了。可用下面的命令查看:
ps -ef | grep nginx
6、现在可以决定使用新版本还是恢复到旧版本:
kill -HUP 旧的主进程号 :Nginx在不重载配置文件的情况下启动他的工作进程
kill -QUIT 新的主进程号 :从容关闭其工作进程
kill -TERM 新的主进程号 :强制退出
kill 新的主进程号或旧的主进程号:如果因为某些原因新的工作进程不能退出,则向其发送kill信号
新的主进程退出后,旧的主进程会移除.oldbin后缀,恢复为他的.pid文件,这样,一切就都恢复为升级之前了。
如果尝试升级成功,而自己又希望保留新版本时,可发送QUIT信号给旧的主进程,使其退出而只留下新的进程运行:kill -QUIT 旧主进程号
相关推荐
在Linux环境下,Nginx平滑重启通常通过发送特定的信号给Nginx主进程来实现。主要有以下两个步骤: 1. **发送USR2信号**:使用`kill -USR2`命令发送USR2信号给旧的主进程,这会导致旧主进程创建一个新的主进程和工作...
而平滑升级则是指在平滑重启的基础上进一步升级到新的Nginx版本,这个过程更为复杂,需要下载新的Nginx安装包,并在不中断服务的情况下进行。 进行平滑重启前,首先需要验证nginx.conf文件的语法正确性。可以使用...
本篇文章将详细介绍两种在CentOS7上升级Nginx的方法:YUM upgrade和源码平滑升级,并提供相关的步骤和注意事项。 ### YUM upgrade 升级 YUM upgrade适用于已经使用RPM方式安装Nginx的用户。这种升级方式简单快捷,...
然后,在`events`或`http`块中,可以配置`reload`指令,以便在配置文件改变时平滑重启: ```nginx reload-on-notification on; ``` 最后,确保Nginx服务配置正确无误后,可以使用`nginx.exe -s reload`命令重新...
内容概要:本文档详细描述了在CentOS 7.6环境下对Nginx从1.10.2平滑升级到1.20.1的方法和具体步骤。主要包括检查现有配置和依赖项、备份原始程序、编译与替换新版本以及执行无间断重启以确保不影响在线服务的一系列...
标题中的“Windows下Nginx启动、关闭、重启bat工具”指的是在Windows操作系统中,使用批处理脚本(.bat文件)来管理Nginx服务器的启动、停止和重启操作。这种工具通常由IT专业人士创建,以简化Nginx服务的日常管理。...
在IT行业中,平滑重启(Graceful Restart)是一种常见的服务器管理技术,特别是在处理高可用性和负载均衡的场景下。平滑重启的主要目的是在不影响服务连续性的情况下更新或维护服务器进程,确保应用程序能够继续为...
以上就是Linux环境中Nginx的安装、启动、关闭、重启和平滑升级的基本操作。了解这些操作对于管理Nginx服务器至关重要,能确保服务的稳定性和效率。在实际运维中,根据具体情况灵活运用这些命令,可以有效地管理和...
2. 要查找并杀死Nginx的主进程,可以先运行`ps -aux | grep nginx`来显示所有与Nginx相关的进程,然后找到主进程ID(通常是PID),使用`kill -HUP 主进程ID`发送`HUP`信号(相当于`-s reload`)来平滑重启。...
对于在生产环境中,平滑重启(不中断服务)Nginx的常用方法是发送`HUP`信号给主进程,如`kill -HUP 主进程号`。这会触发Nginx重新加载配置文件,同时新启动的工作进程会接收新的连接,旧的工作进程在处理完当前连接...
本文将详细介绍如何在Linux系统中启动、重启和关闭Nginx服务,以及进行平滑重启和配置文件的检查。 **启动Nginx** 启动Nginx服务器通常使用以下命令,其中`-c`参数指定Nginx配置文件的路径: ```bash nginx -c /...
一般情况下,要实现平滑重启或升级,需要执行以下几个步骤: 发布新的bin文件覆盖老的bin文件 发送一个信号量(USR2),告诉正在运行的进程,进行重启 正在运行的进程接受到信号后,以子进程的方式启动新的bin文件...
如果配置文件错误或资源冲突,平滑重启可能会失败,但 Nginx 不会给出明确的错误提示,导致问题难以定位。 ### 自定义重启脚本(nginx.sh) 为了兼顾配置检查和避免资源冲突,我们可以编写一个自定义的重启脚本,...
- **平滑重启**:`nginx -s reload`命令进行平滑重启,在不中断当前连接的情况下重新加载配置文件。 #### 2.5 Nginx的平滑重启 平滑重启是Nginx的一个重要特性,可以在不中断现有客户端连接的情况下更新配置文件或...
3. 平滑重启:`kill -HUP 主进程号` 4._kill -TERM 主进程号` 验证 Nginx 配置文件 验证 Nginx 配置文件是否正确有多种方式,下面是一些常用的方法: 1. 使用 `-t` 选项:`nginx -t -c /path/to/nginx.conf` 2. ...
2.7 Nginx的平滑升级 第2部分 进 阶 篇 第3章 Nginx的基本配置与优化 3.1 Nginx的完整配置示例 3.2 Nginx的虚拟主机配置 3.3 Nginx的日志文件配置与切割 3.4 Nginx的压缩输出配置 .3.5 Nginx的自动列目录...