了解upstream标簽
1.upstream 支援4種負載均衡排程算法:
A、輪詢(預設):每個請求按時間順序逐一配置設定到不同的後端伺服器;
B、ip_hash:每個請求按通路IP的hash結果配置設定,同一個IP用戶端固定通路一個後端伺服器。可以保證來自同一ip的請求被打到固定的機器上,可以解決session問題。
C、url_hash:按通路url的hash結果來配置設定請求,使每個url定向到同一個後端伺服器。
D、fair:這是比上面兩個更加智能的負載均衡算法。按後端伺服器的響應時間來配置設定請求,響應時間短的優先配置設定。Nginx本身是不支援 fair的,如果需要使用這種排程算法,必須下載下傳Nginx的 upstream_fair子產品。
2、配置執行個體
1)、熱備:如果你有2台伺服器,當一台伺服器發生事故時,才啟用第二台伺服器給提供服務。
2)、輪詢:nginx預設就是輪詢其權重都預設為1,伺服器處理請求的順序:ABABABABAB…(weight=?)
3)、權重輪詢:跟據配置的權重的大小而分發給不同伺服器不同數量的請求。如果不設定,則預設為1。下面伺服器的請求順序為:ABBABBABBABBABB…
4)、ip_hash:nginx會讓相同的用戶端ip請求相同的伺服器。
upstream myweb {
server 172.17.14.2:8080;
server 172.17.14.3:8080;
ip_hash;
}
5)、nginx負載均衡配置狀态參數
• down,表示目前的server暫時不參與負載均衡。
• backup,預留的備份機器。當其他所有的非backup機器出現故障或者忙的時候,才會請求backup機器,是以這台機器的壓力最輕。
• max_fails,允許請求失敗的次數,預設為1。當超過最大次數時,傳回proxy_next_upstream 子產品定義的錯誤。
• fail_timeout,在經曆了max_fails次失敗後,暫停服務的時間機關秒。max_fails可以和fail_timeout一起使用。
安裝Nginx
如果你未安裝nginx,請點選:nginx安裝連結
配置
本實驗的架構圖為

- 關閉每一台伺服器的防火牆
systemctl stop firewalld && setenforce 0
配置nginx-1
- 建立網站釋出目錄及資訊
/usr/share/nginx/html/index.html //預設網站釋出目錄
echo "this is nginx-1 " >/usr/share/nginx/html/index.html
- 檢測
nginx---負載均衡---upstream标簽
配置nginx-1
- 建立網站釋出目錄及資訊
/usr/share/nginx/html/index.html //預設網站釋出目錄
echo "this is nginx-2 " >/usr/share/nginx/html/index.html
- 檢測
nginx---負載均衡---upstream标簽
配置proxy
- 修改主配置檔案
vim /etc/nginx/nginx.conf
注意:在HTTP标簽内添加upstream标簽,其格式如下:
upstream
name
{
server ip:端口;
server ip:端口;
server ip:端口;
}
- 修改子配置檔案
vim /etc/nginx/conf.d/default.conf
其修改内容為:
server {
listen 80;
server_name www.hualaotouvip.com; //域名自定義
charset utf-8;
#access_log logs/host.access.log main;
location / {
proxy_pass http://testweb; //跟upstream對應的`name`一緻
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
- 檢測是否有文法錯誤
nginx -t
nginx -s reload
- 在用戶端添加域名解析:
vim /etc/hosts
- 檢測 注意:預設排程算法為輪詢
nginx---負載均衡---upstream标簽