天天看點

nginx---負載均衡---upstream标簽

了解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安裝連結

配置

本實驗的架構圖為

nginx---負載均衡---upstream标簽
  • 關閉每一台伺服器的防火牆
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:端口;

}

nginx---負載均衡---upstream标簽
  • 修改子配置檔案
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
           
nginx---負載均衡---upstream标簽
  • 在用戶端添加域名解析:
vim  /etc/hosts
           
nginx---負載均衡---upstream标簽
  • 檢測
    nginx---負載均衡---upstream标簽
    注意:預設排程算法為輪詢

繼續閱讀