我们在 nginx 后面有 4 个网络服务器被击中 262 个事件/秒。我想告诉 nginx 停止向该服务器发送请求。如果我从文件中删除服务器并重新加载文件,是不是所有正在处理的请求都被丢弃在地板上,因为 nginx 不再知道该服务器。我可以向配置中添加什么,以便它慢慢将该服务器从池中删除,我可以等待当前请求完成。
我们在 nginx 后面有 4 个网络服务器被击中 262 个事件/秒。我想告诉 nginx 停止向该服务器发送请求。如果我从文件中删除服务器并重新加载文件,是不是所有正在处理的请求都被丢弃在地板上,因为 nginx 不再知道该服务器。我可以向配置中添加什么,以便它慢慢将该服务器从池中删除,我可以等待当前请求完成。
根据 nginx 文档,更新配置然后使用
service nginx reload
or/etc/init.d/nginx reload
命令应该使用新配置启动新的工作进程并关闭旧工作进程上的所有侦听套接字,从而阻止与它们的新连接。这些旧的工作进程将继续运行,直到它们完成为客户提供服务然后关闭。http://nginx.org/en/docs/control.html#reconfiguration
在 nginx 配置中将服务器标记为关闭。您还可以检查 max_fails 和 fail_timeout 参数。通过向主节点发送 HUP 信号来重新加载配置。
参见 nginx 手册
请注意,您应该使用 QUIT 信号正常关闭服务器节点。