Nginx服务的启停控制和命令用法以及平滑升级

安装Nginx服务

安装过程在下面的文章当中,里面详细的介绍了Nginx服务的安装过程。
Nginx编译安装详细过程

Nginx服务的启停控制

Nginx启停控制的办法中一共有两种方法可以用来对Nginx服务的进行启停操作。

1.信号控制(非nginx内置命令中的信号控制)

nginx是由一个主进程(master process)和多个工作进程(worker process)组成。
所谓信号控制就是给进程发送特定的信号,进程收到信号后做出相应的操作。
那么,如何给主进程发送信号呢?这就需要知道主进程的进程号是多少了。

获取进程号:

cat /usr/local/nginx/logs/nginx.pid		#nginx服务启动后自动产生的pid文件,内容只有进程号

在这里插入图片描述

ps -ef | grep nginx		#使用ps方法查看nginx进程号,红线内第二列就是进程号

在这里插入图片描述
Nginx服务可接收的信号

信号 作用
TERM或INT 快速停止Nginx服务,快速停止是指立即停止当前Nginx服务正在处理的所有网络请求,马上丢弃连接,停止工作。
QUIT 平缓停止Nginx服务,平缓停止是指允许Nginx服务将当前正在处理的网络请求处理完成,但不接受新的请求,之后关闭连接,停止工作。
HUP 使用新的配置文件启动进程,之后平缓停止原有进程,也就是所谓的 “ 平滑重启 ”
USR1 重新打开日志文件,常用于日志切割
USR2 使用新版本的Nginx文件启动服务,之后平缓停止原有Nginx进程,也就是所谓的 “ 平滑升级 ”
WINCH 平滑关闭工作进程(work process)</
### Nginx 使用自带信号控制进行止的方法 Nginx 提供了通过信号控制其主进程(master process)的功能,这些信号可以用于动、止或重新加载配置文件等操作[^2]。 #### 常用信号及其作用 - **`HUP`**:平滑地重新加载配置文件。当配置文件被修改后,可以通过发送 `HUP` 信号使新配置生效,而不会中断现有的客户端连接[^2]。 - **`TERM`/`INT`**:立即关闭整个服务。发送 `TERM` 或 `INT` 信号会快速终止 Nginx 服务[^5]。 - **`QUIT`**:优雅地关闭整个服务。与 `TERM` 不同,`QUIT` 信号会等待所有当前的请求处理完毕后再退出[^5]。 - **`USR1`**:重新打开日志文件。此信号通常用于日志切割场景,确保日志文件在切割后能够继续正确写入[^4]。 - **`USR2`**:平滑升级到最新版本的 Nginx。此信号允许在不服务的情况下升级 Nginx 的二进制文件[^5]。 - **`WINCH`**:通知所有工作进程不再接收新的连接。相当于给每个工作进程发送 `QUIT` 信号[^5]。 #### 获取主进程的 PID 在发送信号之前,需要知道 Nginx 主进程的 PID。可以通过以下两种方法获取: 1. 使用 `ps` 命令查找: ```bash ps -ef | grep nginx ``` 这将列出 Nginx 的主进程工作进程,其中主进程通常位于最上方[^5]。 2. 查看配置文件中指定的 PID 文件路径: ```bash cat /usr/local/nginx/logs/nginx.pid ``` 默认情况下,PID 文件路径为 `/usr/local/nginx/logs/nginx.pid`,但具体路径可能因安装配置而异[^4]。 #### 发送信号的命令格式 发送信号的通用命令格式如下: ```bash kill -信号名称 PID ``` 例如,要优雅地关闭 Nginx 服务,可以使用以下命令: ```bash kill -QUIT $(cat /usr/local/nginx/logs/nginx.pid) ``` #### 示例:Nginx - **Nginx**: 如果 Nginx 未运行,可以通过执行以下命令动它: ```bash /usr/local/nginx/sbin/nginx ``` 如果指定了自定义配置文件路径,则需要加上 `-c` 参数: ```bash /usr/local/nginx/sbin/nginx -c /path/to/nginx.conf ``` - **Nginx**: - 快速止: ```bash kill -TERM $(cat /usr/local/nginx/logs/nginx.pid) ``` - 优雅止: ```bash kill -QUIT $(cat /usr/local/nginx/logs/nginx.pid) ``` - **重新加载配置文件**: ```bash kill -HUP $(cat /usr/local/nginx/logs/nginx.pid) ``` #### 注意事项 - 在发送信号前,请确保已保存并测试过新的配置文件。可以使用以下命令检查配置文件语法是否正确: ```bash /usr/local/nginx/sbin/nginx -t ``` - 如果 Nginx 正在运行时尝试重新动,可能会导致冲突。建议先止再动,或者直接使用 `HUP` 信号重新加载配置[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值