nginx官方文档表示-s reload时会等待旧的进程处理完请求后,旧的进程才会退出:
Once the master process receives the signal to reload configuration, it checks the syntax validity of the new configuration file and tries to apply the configuration provided in it. If this is a success, the master process starts new worker processes and sends messages to old worker processes, requesting them to shut down. Otherwise, the master process rolls back the changes and continues to work with the old configuration. Old worker processes, receiving a command to shut down, stop accepting new connections and continue to service current requests until all such requests are serviced. After that, the old worker processes exit.
这个描述的service current requests怎么理解呢,是指进程正在处理一些事情(比如nginx+lua,它正在运行lua代码),还是说是一定与某个客户端处于连接状态。
在我的项目中,基于openresty建立一个网关,当控制端同步数据到网关上,网关会存储数据到内存,当控制端发出POST请求,推送数据时,此时-s reload,新的进程起来后旧的进程立刻就退出了,导致一个请求的数据未成功同步到网关上。
我现在无法理解旧的进程是处于哪种状态才会等待处理完后才退出,而不是当新的进程起来后立刻就退出了旧进程。
在Nginx(包括OpenResty)中,当使用-s reload
命令来重新加载配置时,Nginx的master进程会遵循以下步骤来处理新旧worker进程的转换:
关于你提到的具体问题,即“新的进程起来后旧的进程立刻就退出了,导致一个请求的数据未成功同步到网关上”,这通常不应该发生,除非存在以下几种情况:
为了解决这个问题,你可以考虑以下几点:
-s reload
命令本身就是设计来平滑重启的,确保在重启过程中服务不会中断。如果仍然遇到问题,可能需要检查Nginx和OpenResty的版本,以及是否有已知的bug或限制。ps
、top
、nginx -s status
等)监控worker进程的行为,查看它们是否按预期工作。本文向大家介绍Nginx处理请求时的匹配规则详析,包括了Nginx处理请求时的匹配规则详析的使用技巧和注意事项,需要的朋友参考一下 nginx 在收到一条请求时将先通过 server_name 匹配一个 server, 然后使用 server 中的 location 继续匹配. 匹配 server_name 在 nginx 中, server_name 决定了当收到一个请求后哪一个 server
本文向大家介绍windows7配置Nginx+php+mysql的详细教程,包括了windows7配置Nginx+php+mysql的详细教程的使用技巧和注意事项,需要的朋友参考一下 最近在学习php,想把自己的学习经历记录下来,并写一些经验,仅供参考交流。此文适合那些刚刚接触php,想要学习并想要自己搭建Nginx+php+mysql环境的同学。 当然,你也可以选择集成好的安装包,比如 wa
本文向大家介绍nginx 重新加载NGINX配置文件,包括了nginx 重新加载NGINX配置文件的使用技巧和注意事项,需要的朋友参考一下 示例 以root用户身份: Ubuntu 14.04示例 Ubuntu 16.04示例 重新加载之前,最好检查config是否存在语法错误: 要么
接收请求流程 (99%) http请求格式简介 (99%) 首先介绍一下rfc2616中定义的http请求基本格式: Request = Request-Line * (( general-header | request-header | entity-header ) CRLF) CRLF
本文向大家介绍Nginx配置文件nginx.conf详细说明,包括了Nginx配置文件nginx.conf详细说明的使用技巧和注意事项,需要的朋友参考一下 在此记录下Nginx服务器nginx.conf的配置文件说明, 部分注释收集与网络. 以上是一些基本的配置,使用Nginx最大的好处就是负载均衡 如果要使用负载均衡的话,可以修改配置http节点如下: 以上就是本文的全部内容,希望对大家的学习有
基于名字的虚拟主机 Nginx首先选定由哪一个虚拟主机来处理请求。让我们从一个简单的配置(其中全部3个虚拟主机都在端口*:80上监听)开始: server { listen 80; server_name example.org www.example.org; ... } server { listen 80; server_nam