浏览 3.3k
有这样一种需求,比如公网有一个888端口,客户端可否通过IP:888访问,然后nginx将这个访问转发到服务器udp 666之上,获取数据返回给客户端。

按点赞数排序
按时间排序
默认采用RoundRobin算法,主要基于TCP层和HTTP层实现健康检查。
其中,TCP层通过在建立连接、发送、接收消息时实现健康检查;HTTP层主要通过response code实现;一旦出错,会启动next upstream机制去解决错误。
根据提供的信息,您似乎遇到了一个问题,即尽管将max_fails参数设置为0,但上游块下的服务器在遇到错误或超时后仍被禁用。根据您的理解和检查的源代码,这种行为与预期的功能不一致。
要解决此问题,可以考虑以下步骤:
1. 验证NGINX配置:仔细检查NGINX的配置文件,以确保没有可能影响上游块行为的冲突设置或指令。请注意可能影响服务器运行状况检查或故障切换行为的任何其他相关参数。
2. 检查NGINX错误日志:检查NGINX错误日志以识别与上游块或服务器运行状况检查相关的任何错误消息或警告。日志可能会深入了解服务器被禁用的原因。
3. 测试服务器可用性:通过向上游块中的每个服务器各自的端点发出直接请求,手动测试它们的可用性和响应能力。这将有助于确定服务器本身是否正常运行,或者是否存在导致错误或超时的任何网络相关问题。
4. 检查代理服务器或负载平衡器:如果NGINX前面有代理服务器或负荷平衡器,请检查其配置和设置,以确保它不会覆盖或干扰上游块的行为。检查是否存在任何可能导致服务器被禁用的运行状况检查设置或超时值。
5. 咨询NGINX社区:如果您无法通过上述步骤解决问题,请向NGINX团体寻求帮助。分享您的具体配置、错误日志和任何相关详细信息,以从可能遇到类似问题的其他NGINX用户或开发人员那里获得见解。
在进行任何更改之前,请记住备份您的NGINX配置文件,并考虑在受控环境中测试更改,以避免对生产系统造成潜在干扰。
微信公众号
加入微信群