我遇到的奇葩问题。
后台使用的是nginx + tomcat
前端页面确实只发送了一个ajax请求到后台。
后台却接收到了两条请求!
百度了一下,说是因为nginx负载均衡,一个请求超时后会重复发送一次请求给下一个服务端。
反正我对nginx不是很了解。网上说在nginx.conf中配置:
proxy_next_upstream off;
或
proxy_next_upstream error;
我配了,没用。
网上又说,把fail_timeout的时间设置长点,我压根没找到哪里有fail_timeout
最后,偶然看到了国外论坛里的帖子。
人家说只有get请求,才会出现这样的问题。于是我把我的ajax改成了post方式,问题就解决了。
唉,虽然问题解决了,我为什么还是不开心呢…
(2016-4-15 更新:升级nginx,用高版本的,比如1.9.x,就没有这个bug了)
本文详细阐述了在使用nginx+tomcat的环境下,前端ajax请求仅发送一次,但后台接收到了两次请求的情况。通过分析发现,这可能是由于Nginx负载均衡特性导致的一个bug。作者尝试了配置proxy_next_upstream off和增加fail_timeout时间等方法,但未解决问题。最终,通过将ajax请求方式更改为POST,成功避免了重复请求的问题。同时,更新到更高版本的nginx也证实了该bug已修复。
2673





