Nginx配置max_fails fail_timeout

strivechao發表於2020-08-12

目的: 透過配置max_fails、fail_timeout來達到當一臺伺服器訪問出現非200時可以跳轉到另一臺伺服器
操作: 配置nginx.conf檔案 具體配置如下
upstream Site
{
#ip_hash;
server localhost1:18080 max_fails=10 fail_timeout=60s;
server localhost1:28080 max_fails=10 fail_timeout=60s;
}

現象:並沒有什麼用,如果一臺伺服器掛掉,nginx依然會分發到那臺。

原因:

max_fails=number 設定Nginx與伺服器通訊的嘗試失敗的次數。在fail_timeout引數定義的時間段內,如果失敗的次數達到此值,Nginx就認為伺服器不可用。在下一個fail_timeout時間段,伺服器不會再被嘗試。 失敗的嘗試次數預設是1。設為0就會停止統計嘗試次數,認為伺服器是一直可用的。你可以透過指令proxy_next_upstream、 fastcgi_next_upstream和 memcached_next_upstream來配置什麼是失敗的嘗試。 預設配置時,http_404狀態不被認為是失敗的嘗試。

解決辦法:
location /
{
proxy_pass  ;
proxy_next_upstream error timeout invalid_header http_500 http_503 http_404;
proxy_connect_timeout 20s;
proxy_read_timeout 20s;
proxy_send_timeout 20s;
}

proxy_next_upstream:
和後端伺服器建立連線時,或者向後端伺服器傳送請求時,或者從後端伺服器接收響應頭時,出現錯誤 timeout
和後端伺服器建立連線時,或者向後端伺服器傳送請求時,或者從後端伺服器接收響應頭時,出現超時 invalid_header
後端伺服器返回空響應或者非法響應頭 http_500
後端伺服器返回的響應狀態碼為500 http_502
後端伺服器返回的響應狀態碼為502 http_503
後端伺服器返回的響應狀態碼為503 http_504
後端伺服器返回的響應狀態碼為504 http_404
後端伺服器返回的響應狀態碼為404 off


https://blog.51cto.com/dmwing/1894700



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25469263/viewspace-2710990/,如需轉載,請註明出處,否則將追究法律責任。