Nginx 命令行的处理流程
发布时间:2023-06-02 13:38:31 所属栏目:教程 来源:
导读:最早我们学习了 Nginx 命令行操作,这些命令行操作都是给 Master 进程发信号,然后再由 Master 进程发送信号给 Worker 进程,从而达到控制 Worker 进程的目标。我们以 Nginx 的热部署命令./Nginx -s reload 来描述 N
最早我们学习了 Nginx 命令行操作,这些命令行操作都是给 Master 进程发信号,然后再由 Master 进程发送信号给 Worker 进程,从而达到控制 Worker 进程的目标。我们以 Nginx 的热部署命令./Nginx -s reload 来描述 Nginx 命令行的执行流程。具体过程如下: 首先 Master 进程会检查 Nginx.conf 文件是否存在语法错误,并从中找到 Nginx.pid 配置路径(没有配置会使用默认值) reload 参数表示向 Master 进程发送 HUP 信号。Nginx 会根据会保存在 Nginx.pid 文件中的值找到 Master 进程的 pid。如果 Nginx 进程没有启动,则没有该 Nginx.pid 文件,命令行会报错; # 在 Nginx 的配置文件中配置 Nginx.pid 的保存路径[root@server sbin]# ./Nginx -s reloadNginx: [error] open() /root/Nginx/logs/Nginx.pid Failed (: No such file or directory) Master 进程打开新的监听端口; Master 进程用新配置启动新的 Worker 进程。新的 Worker 进程起来后,开始接收 Http 请求并处理,此时老的 Worker进程会停止接受 Http 请求; Master 进程会向老的 Worker进程发送 QUIT 信号; 老的 Worker 进程关闭监听句柄,处理完正在进行的请求后结束进程。 Nginx 命令行中 -s 参数的每个值都对应这一个信号。因此,我们也可以直接对 Master 进程发生相应信号达到同样的目的。 # pid表示Nginx的主进程id号# kill -s 信号 pid (编辑:汽车网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |