proxy_next_upstream帶來的坑和載入sticky模組
阿新 • • 發佈:2020-12-31
1.若nginx配置的響應等待時間(proxy_read_timeout)為30秒,就會觸發超時重試,將請求又打到另一臺。如果處理中沒有考慮到重複資料的場景,就會發生資料多次重複插入!
proxy_next_upstreamerror|timeout|invalid_header|http_500|http_502|http_503|http_504|http_403|http_404|off...;
proxy_next_upstreamerrortimeoutinvalid_headerhttp_500http_503http_404;
如果192.168.0.1這臺伺服器返回了超時或者500,那麼訪問 /example/ 時應該會自動重試到下一臺伺服器去
proxy_next_upstream error timeout http_500 non_idemponent;
proxy_connect_timeout 30s;
proxy_read_timeout 30s;
proxy_send_timeout 30s;
預設情況下,當請求伺服器發生錯誤或超時時,會嘗試到下一臺伺服器。 參考:https://blog.csdn.net/bujidexinq/article/details/80406149
2.proxy_next_upstream error timeout http_500 non_idemponent;
像 post, lock, patch 這種會對伺服器造成不冪等的方法,預設是不進行重試的,如果一定要進行重試,則要加上這個配置。
https://zhuanlan.zhihu.com/p/35803906
3.Nginx安裝Sticky模組
https://www.cnblogs.com/powerwu/articles/12619260.html