我们的设置是Debian lenny上的标准Nginx(ver 0.7.59)+精简上游服务器。 现在我们在网页/应用程序和1分贝框1牛腩框。 最近我们开始注意到最终会开始“挂起”,即他们将不再接收来自Nginx的请求。 我们有15个运行,10-15分钟后,第一个或第二个将被挂起。 如果整天离开,那些相同的几个加上几个将继续挂起。 我们目前唯一的解决方法是重新启动Nginx。 重新启动后,挂起的马上就会重新开始接收请求。 正因为如此,看起来好像可能已经从上游池中取走了这些东西。
如果我正确地理解了文档( http://wiki.Nginx.org/NginxHttpUpstreamModule#server ),使用默认值(我们有),如果Nginx在10秒内不能与后端服务器“通信”3次,会将上游服务器设置为“不工作”状态。 然后等待10秒,然后再次尝试该服务器。 这是有道理的,但我们看到无限期的薄吊。 我试图将max_fails设置为0,但是这并没有帮助。 我找不到会导致上游服务器永久“失效”的原因。
最近我们看到增长率大幅度提高,所以我们不确定是否可以与此相关,或者由于更短时间内的stream量增加而更加明显。
在Nginx中是否有其他的东西(可改变的指令或其他条件)会导致服务器完全离开池?
为什么不能Nginx的位置根目录被覆盖(Windows)?
Nginx中每秒突发和请求的区别?
Nginx工作者在使用乘客时处理angular色
在Docker容器之间共享预编译的资产
tornadoweb gzip = True不能在supervisord和Nginx下工作
确保elasticsearch
在Pythonanywhere上configurationNginx服务器
在哪里放置Web服务器的根?
github oauth和Nginx代理
我们在Nginx的反向代理支持方面遇到了很多问题,并最终通过在Mongrel和Nginx之间加入HAProxy来实现更好的架构。 所以我们的架构是:
web => Nginx => haproxy => Mongrels
我们之前(HAProxy之前)看到的是,Nginx会将Mongrels的请求量过大,而Mongrel的请求队列不稳定,并且很快就会遇到太多的排队请求。 HAProxys队列更加稳定,并且比Nginx更好地平衡了后端之间的所有请求。 Nginx只能提供轮循平衡,而像最少连接这样的算法更好。 我不知道Thin是否与Mongrel有同样的问题。
在我们的新设置中,Nginx只是代理一个haproxy实例,haproxy已经配置了所有已经注册的Mongrels。 HAProxy更好地支持上游的ok / fail检测,并且还可以限制每个应用服务器到1个连接(maxconn指令),这对于Mongrel来说是关键的,对Thin不是很确定。
maxconn指令非常关键,EngineYard有一个Nginx的补丁,它使Nginx成为本地的,所以你不需要部署HAProxy来利用它。
请参阅: Nginx-ey-balancer
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。