NGINX不断向上游发送请求
|
我有以下负载平衡配置:
虽然我的后端节点稳定,但一切正常.但是,当我关闭其中一个节点(例如10.10.10.2)时,NGINX将继续向其发送流量,即使请求保持超时(因为服务器已关闭).我已经尝试设置max_fails和fail_timeout参数,但行为仍然相同. NGINX是否能够自动检测服务器是否已关闭而不是在那里发送流量?我错过了什么配置? 最佳答案 什么是keepalive?keepalive背后的想法是解决在高延迟网络上建立TCP连接的延迟.建立TCP连接需要3次握手,因此,当客户端和服务器之间存在可感知的延迟时,keepalive会通过重用现有连接来大大加快速度. 为什么大家会把nginx放在他们的后端? Nginx非常有效地处理成千上万的连接,而许多后端因此不会加快速度,人们经常将nginx放在他们真正的Web服务器前面以加快速度,因此云与用户之间的连接将是缓存keepalive以便后续重用. 请注意,根据http://nginx.org/r/keepalive,nginx甚至不支持上游keepalive,因为如上所述,如果你有亚毫秒的延迟,它更有可能使用更多的上游资源而不是加速任何处理.在所有主机之间(例如,在nginx和上游服务器之间). 你看到它的去向吗? 通过在LAN上使用过多的keepalive连接,每个上游服务器只需几百个连接,即使您没有像您所描述的那样遇到问题,也可能只会使速度变慢,而不是更快. 服务/端口关闭时会发生什么? 通常,当主机上的给定端口不可用时,主机立即返回TCP reset packet,known as
您的上述评论可能表明缺少及时连接拒绝的数据包肯定会混淆nginx – 您的设置似乎可能只是丢弃nginx发送的数据包.如果没有对请求做出任何回应,那么如何才能知道您的后端服务是否不可用,而不仅仅是展示企业级行为? 应该怎么做? >首先,正如已经提到的,即使你没有遇到你描述的问题,你也可能只是通过在局域网上使用上游保持活动功能来减慢速度,特别是在这么高的情况下. 这可能包括 (编辑:日照站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ruby-on-rails – 如何从Nginx/Passenger中删除“
- 缓存 – 具有多个命名位置的NGINX try_files
- post – 带有Nginx参数的Laravel是空的
- 如何避免在nginx中重复add_header指令?
- Nginx:在特定路径组件的别名内路由到index.php
- nginx-我真的需要Web服务器以及API-微服务架构中
- Windows服务器下怎么安装与使用nginx
- ruby-on-rails-3 – 在Linode上托管Rails应用程序
- 使用Nginx和uWSGI的服务器发送事件
- amazon-web-services – 与Elastic Beanstalk的A
