本章給大家帶來nginx負載均衡的相關配置講解,首先大家先看下面的示意圖:
如上圖所示;當客戶端發起http請求時,先經過nginx服務器處理並重新分發請求;並下發給不同的服務器,從而實現nginx的負載均衡的簡單應用。
nginx配置
upstream www.xyqmw.com {
server 111.231.197.74:8080 weight=1;
server 111.231.197.74:8081 weight=2;
}
server {
listen 80;
server_name 111.231.197.74;
location / {
proxy_pass http://www.xyqmw.com;
proxy_redirect default;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
#www.xyqmw.com 域名
#111.231.197.74 IP
#weight 權重
權重
使用weight來指定server訪問比率,weight默認是1。以下配置會是server2訪問的比例是server1的兩倍。
upstream www.xyqmw.com {
server 111.231.197.74:8080 weight=1;
server 111.231.197.74:8081 weight=2;
}
nginx的應用介紹
1、http服務器。Nginx是一個http服務可以獨立提供http服務。可以做網頁靜態服務器。
2、虛擬主機。可以實現在一臺服務器虛擬出多個網站。例如個人網站使用的虛擬主機。
3、反向代理,負載均衡。當網站的訪問量達到一定程度後,單臺服務器不能滿足用戶的請求時,需要用多臺服務器集羣可以使用nginx做反向代理。並且多臺服務器可以平均分擔負載,不會因爲某臺服務器負載高宕機而某臺服務器閒置的情況。
nginx負載均衡測試
測試環境:操作系統centos 7 nginx服務器 啓動兩個服務
首先分別啓動了兩個python服務,端口分別是8080和80801 ,分別返回hello word1和hello word2
測試訪問
我們來試一下訪問http://www.xyqmw.com/這個域名
訪問10次http://www.xyqmw.com結果: 7次返回hello world2 ,3次返回hello world1 ,測試成功!
補充一些參數用於處理一些特殊情況
- proxy_connect_timeout:與服務器連接的超時時間,默認60s
- fail_timeout:當該時間內服務器沒響應,則認爲服務器失效,默認10s
- max_fails:允許連接失敗次數,默認爲1