浏览 5.6k
Nginx(版本1.19.3)配置tcp协议做负载均衡,运行正常,但是加上ip_hash后报错。
------------------------------------------------
“ip_hash” directive is not allow...
stream {
upstream dataexch {
ip_hash;
server 192.168.40.191:30011;
server 192.168.40.191:30012;
}
server {
listen 2001;
proxy_pass dataexch;
proxy_timeout 1s;
proxy_responses 1;
}
}第一次在项目中配置Nginx,求教是什么原因。
根据提供的信息,您似乎遇到了一个问题,即尽管将max_fails参数设置为0,但上游块下的服务器在遇到错误或超时后仍被禁用。根据您的理解和检查的源代码,这种行为与预期的功能不一致。
要解决此问题,可以考虑以下步骤:
1. 验证NGINX配置:仔细检查NGINX的配置文件,以确保没有可能影响上游块行为的冲突设置或指令。请注意可能影响服务器运行状况检查或故障切换行为的任何其他相关参数。
2. 检查NGINX错误日志:检查NGINX错误日志以识别与上游块或服务器运行状况检查相关的任何错误消息或警告。日志可能会深入了解服务器被禁用的原因。
3. 测试服务器可用性:通过向上游块中的每个服务器各自的端点发出直接请求,手动测试它们的可用性和响应能力。这将有助于确定服务器本身是否正常运行,或者是否存在导致错误或超时的任何网络相关问题。
4. 检查代理服务器或负载平衡器:如果NGINX前面有代理服务器或负荷平衡器,请检查其配置和设置,以确保它不会覆盖或干扰上游块的行为。检查是否存在任何可能导致服务器被禁用的运行状况检查设置或超时值。
5. 咨询NGINX社区:如果您无法通过上述步骤解决问题,请向NGINX团体寻求帮助。分享您的具体配置、错误日志和任何相关详细信息,以从可能遇到类似问题的其他NGINX用户或开发人员那里获得见解。
在进行任何更改之前,请记住备份您的NGINX配置文件,并考虑在受控环境中测试更改,以避免对生产系统造成潜在干扰。
微信公众号
加入微信群