1. 程式人生 > >利用Nginx實現負載均衡

利用Nginx實現負載均衡

1、

#這裡的域名要和下面proxy_pass的一樣
upstream  fengzp.com {   
    server    192.168.99.100:42000  weight=1  fail_timeout=2s max_fails=1 ;   #tomcat1
    server    192.168.99.100:42001  weight=2  fail_timeout=2s max_fails=1 ;   #tomcat2
}     

server {  
    listen       80; 
    server_name  192.168.99.100;  

location / {  
        proxy_pass http://fengzp.com;  
        proxy_redirect default;  
        proxy_connect_timeout 3s;
    }  

    error_page   500 502 503 504  /50x.html;  
    location = /50x.html {  
        root   html;  
    }  
}

2、
重新整理頁面發現頁面會發生變化,證明負載配置成功。
因為配的權重第二個是第一個的兩倍,所以第二個出現的概率會是第一個的兩倍。

3、
後續問題
如果關了tomcat1,再多次重新整理頁面,接下來出現的就會都是tomcat2的頁面,但是時而快時而慢。
這其中原因是當如果nginx將請求轉發到tomcat2時,伺服器會馬上跳轉成功,但是如果是轉到tomcat1,
因為tomcat1已經關閉了,所以會出現一段等待響應過程的過程,要等它失敗後才會轉到tomcat2。
而這個等待響應的時間我們是可以配置的。

這個時間由以下3個引數控制:
proxy_connect_timeout:與伺服器連線的超時時間,預設60s
fail_timeout:當該時間內伺服器沒響應,則認為伺服器失效,預設10s
max_fails:允許連線失敗次數,預設為1

等待時間 = proxy_connect_timeout + fail_timeout * max_fails