1. 程式人生 > >nginx 重發機制導致的重復扣款問題

nginx 重發機制導致的重復扣款問題

str err 服務器 機制 停止 建立連接 head 後端服務 發送請求

問題:

nginx 重發機制導制重復提交(客戶還款,被扣倆筆款,前端調用一次,後端執行2次)

proxy_next_upstream

語法: proxy_next_upstream error | timeout | invalid_header | http_500 | http_502 | http_503 | http_504 |http_404 | off ...; 
默認值: proxy_next_upstream error timeout; 上下文: http, server, location

error # 和後端服務器建立連接時,或者向後端服務器發送請求時,或者從後端服務器接收響應頭時,出現錯誤 

timeout # 和後端服務器建立連接時,或者向後端服務器發送請求時,或者從後端服務器接收響應頭時,出現超時
invalid_header # 後端服務器返回空響應或者非法響應頭
http_500 # 後端服務器返回的響應狀態碼為500
http_502 # 後端服務器返回的響應狀態碼為502
http_503 # 後端服務器返回的響應狀態碼為503
http_504 # 後端服務器返回的響應狀態碼為504
http_404 # 後端服務器返回的響應狀態碼為404
off # 停止將請求發送給下一臺後端服務器

運用場景
1、proxy_next_upstream http_500 | http_502 | http_503 | http_504 |http_404;
當其中一臺返回錯誤碼404,500...等錯誤時,可以分配到下一臺服務器程序繼續處理,提高平臺訪問成功率,多可運用於前臺程序負載,設置proxy_next_upstream
proxy_next_upstream http_500 | http_502 | http_503 | http_504 |http_404;

2、proxy_next_upstream off
因為proxy_next_upstream 默認值: proxy_next_upstream error timeout;
場景:當訪問A時,A返回error timeout時,訪問會繼續分配到下一臺服務器處理,就等於一個請求分發到多臺服務器,就可能出現多次處理的情況,
如果涉及到充值,就有可能充值多次的情況,這種情況下就要把proxy_next_upstream關掉
proxy_next_upstream off

nginx 重發機制導致的重復扣款問題