Nginx 負載均衡策略

Nginx 作為高性能web服務器,負載均衡是其基本功能之一。 注:負載均衡至少需要兩臺機器

負載均衡

負載均衡可以將請求前端的請求分擔到后端多個節點上,提升系統的響應和處理能力。

負載均衡策略

負載均衡的策略可以大致分為兩大類:內置策略擴展策略
內置策略:一般會直接編譯進Nginx內核,常用的有、輪詢、ip hash、最少連接
擴展策略:fair、url hash等

內置策略

  • 輪詢策略(輪詢加權/round-robin)</br>
    到應用服務器的請求以round-robin/輪詢的方式被分發</br>
    配置
http {
    # ... 省略其它配置
    upstream tomcats {
        server 192.168.0.100:8080 weight=1 fail_timeout=20s;
        server 192.168.0.101:8080 weight=2 fail_timeout=20s;
    }
    server {
        server_name www.searchinfogo.com
        listen 80;
        location / {
            proxy_pass http://tomcats;
        }
    }
    # ... 省略其它配置
}
  • ip hash </br>
    使用hash算法來決定下一個請求要選擇哪個服務器(基于客戶端IP地址)</br>
    配置
http {
    # ... 省略其它配置
    upstream tomcats {
        server 192.168.0.100:8080;
        server 192.168.0.101:8080;
        ip_hash;
    }
    server {
        server_name www.searchinfogo.com
        listen 80;
        location / {
            proxy_pass http://tomcats;
        }
    }
    # ... 省略其它配置
}
  • 最少連接(least_conn) </br>
    下一個請求將被分派到活動連接數量最少的服務器</br>
    配置
http {
    # ... 省略其它配置
    upstream tomcats {
        server 192.168.0.100:8080;
        server 192.168.0.101:8080;
        least_conn;
    }
    server {
        server_name www.searchinfogo.com
        listen 80;
        location / {
            proxy_pass http://tomcats;
        }
    }
    # ... 省略其它配置
}

擴展策略

  • fair</br>
    配置
http {
    # ... 省略其它配置
    upstream tomcats {
        server 192.168.0.100:8080;
        server 192.168.0.101:8080;
        fair;
    }
    server {
        server_name www.searchinfogo.com
        listen 80;
        location / {
            proxy_pass http://tomcats;
        }
    }
    # ... 省略其它配置
}
  • url hash</br>
    配置
http {
    # ... 省略其它配置
    upstream tomcats {
        server 192.168.0.100:8080;
        server 192.168.0.101:8080;
        hash $request_uri;
        hash_method crc32;
    }
    server {
        server_name www.searchinfogo.com
        listen 80;
        location / {
            proxy_pass http://tomcats;
        }
    }
    # ... 省略其它配置
}

weight=1; (weight 默認為1.weight越大,負載的權重就越大)
down; (down 表示單前的server暫時不參與負載)
backup; (其它所有的非backup機器down或者忙的時候,請求backup機器)
max_fails :允許請求失敗的次數默認為1.當超過最大次數時,返回proxy_next_upstream 模塊定義的錯誤
fail_timeout:max_fails次失敗后,暫停的時間

最后

nginx -s reload #重啟nginx
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 【摘要】 面對大量用戶訪問、高并發請求,海量數據,可以使用高性能的服務器、大型數據庫,存儲設備,高性能Web服務器...
    靜修佛緣閱讀 4,610評論 0 24
  • 第一章 Nginx簡介 Nginx是什么 沒有聽過Nginx?那么一定聽過它的“同行”Apache吧!Ngi...
    JokerW閱讀 32,799評論 24 1,002
  • 摘要:面對大量用戶訪問、高并發請求,海量數據,可以使用高性能的服務器、大型數據庫,存儲設備,高性能Web服務器,采...
    layjoy閱讀 13,863評論 3 93
  • 上一篇《WEB請求處理一:瀏覽器請求發起處理》,我們講述了瀏覽器端請求發起過程,通過DNS域名解析服務器IP,并建...
    七寸知架構閱讀 81,245評論 21 356
  • 《老男孩Linux運維》Nginx Documentation 集群簡介 集群就是指一組(若干)相互獨立的計算機,...
    Zhang21閱讀 3,445評論 0 51