nginx做負載均衡的時候,遇到某些服務器宕機的各種策略


max_fails和fail_timeout參數是配合使用的,按默認值,當某台upstream server掛了,表示在10s(fail_timeout)之內,有1(max_fails)個請求打到這台掛了的服務器,nginx就會把這台upstream server設為down機的狀態,時長是10s,在這10s內如果又有請求進來,就不會被轉到這台server上,過了10s重新認為這台server又恢復了
---------------------
作者:w_albert
來源:CSDN
原文:https://blog.csdn.net/zhaowenbo168/article/details/53000451
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!

 

fail_timeout=0表示不檢測

 

location / {
root html;
index index.html index.htm;
http://localhost; //可通過域名訪問


proxy_connect_timeout 1; #單位為秒
proxy_send_timeout 1;
proxy_read_timeout 1;
}
---------------------
作者:莫棄c
來源:CSDN
原文:https://blog.csdn.net/qq_29311303/article/details/52887609
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!

 

proxy_connect_timeout 1; #單位為秒
proxy_send_timeout 1; 
proxy_read_timeout 1; 

表示一個請求到某個服務器,1s之后沒有響應就發向另一個服務器

 

 

upstream hello.api.com{
ip_hash;
server 127.0.0.1:8080 fail_timeout=10;
server 127.0.0.1:8081 fail_timeout=10;
server 127.0.0.1:8082 fail_timeout=10;
server 127.0.0.1:8083 fail_timeout=10;
server 127.0.0.1:8084 fail_timeout=10;
server 127.0.0.1:8085 fail_timeout=10;
server 127.0.0.1:8086 fail_timeout=10;
server 127.0.0.1:8087 fail_timeout=10;
server 127.0.0.1:8088 fail_timeout=10;
}

 

location / {
proxy_pass http://hello.api.com;
proxy_redirect default;

proxy_connect_timeout 1; #單位為秒
#proxy_send_timeout 1;
#proxy_read_timeout 1;
}

 

這樣配置之后,第一次請求不通,需要花費5秒鍾時間,來找到合適的服務器,然后接下來的10內,正確服務器之前的服務器都不會接受請求了,所以只要100多ms,每隔10s,會有一個5s。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM