![是否可以安全地从 nginx 后台池中删除 Web 服务器?](https://linux22.com/image/599995/%E6%98%AF%E5%90%A6%E5%8F%AF%E4%BB%A5%E5%AE%89%E5%85%A8%E5%9C%B0%E4%BB%8E%20nginx%20%E5%90%8E%E5%8F%B0%E6%B1%A0%E4%B8%AD%E5%88%A0%E9%99%A4%20Web%20%E6%9C%8D%E5%8A%A1%E5%99%A8%EF%BC%9F.png)
nginx 后面有 4 个 Web 服务器,每秒发生 262 次事件。我想告诉 nginx 停止向该服务器发送请求。如果我从文件中删除该服务器并重新加载该文件,那么所有正在处理的请求是否都会被丢弃,因为 nginx 不再知道该服务器。我可以向配置中添加什么,以便它慢慢将该服务器从池中删除,然后我可以等待当前请求完成。
答案1
根据 nginx 文档,更新配置然后使用service nginx reload
或/etc/init.d/nginx reload
命令应使用新配置启动新的工作进程,并关闭旧工作进程上的任何侦听套接字,从而阻止与它们建立新连接。这些旧工作进程将继续运行,直到它们完成对客户端的服务,然后关闭。
答案2
在 nginx 配置中将服务器标记为已关闭。您还可以检查 max_fails 和 fail_timeout 参数。通过向主节点发送 HUP 信号重新加载配置。
请注意,您应该使用 QUIT 信号来正常关闭服务器节点。