我们的设置是标准 nginx (ver 0.7.59) + Debian lenny 上的瘦上游服务器。现在我们有 1 个用于 web/app 的强大盒子和 1 个 db 盒子。最近我们开始注意到 Thin 最终会开始“挂起”,即它们将不再接收来自 nginx 的请求。我们有 15 个薄运行,10-15 分钟后,前 1 或 2 个将被挂起。如果离开一整天,那些相同的几件再加上几件将保持悬挂状态。到目前为止,我们看到的唯一修复是重新启动 nginx。重新启动后,挂起的瘦子立即再次开始接收请求。正因为如此,看起来那些薄薄的东西可能已经从上游池中取出了。
如果我正确理解文档(http://wiki.nginx.org/NginxHttpUpstreamModule#server),使用默认值(我们有),如果 nginx 不能在 10 秒内与后端服务器“通信”3 次,它会将上游服务器设置为“不工作”状态。然后它将等待 10 秒,然后再次尝试该服务器。这是有道理的,但我们正在无限期地看到薄弱的悬垂。我尝试将每个薄的 max_fails 设置为 0,但这没有帮助。我不知道是什么导致上游服务器永久“不工作”。
我们最近看到了大幅的增长率增长,所以我们不确定它是否与此有关,或者只是因为在更短的时间内更多的流量而更加明显。
nginx 中是否还有其他东西(可变指令或其他条件)会导致它完全从池中取出服务器?