Nginx負載均衡配置實例


面對高並發的問題,企業往往會從兩個方面來解決。其一,從硬件上面,提升硬件的配置,增加服務器的性能;另外,就是從軟件上,將數據庫和WEB服務器分離,使數據庫和WEB服務器都能夠充分發揮各自的性能,並且二者不相互影響。然而,這樣還不夠,一台WEB服務器可能無法承受太高的並發請求。那么負載均衡技術就應運而生,下面我們就來談談如何用Nginx進行負載均衡。

查看原文更多驚喜

負載均衡的作用

1.轉發

轉發是負載均衡的核心功能,它能夠根據一定的算法,將客戶端請求轉發到不同應用服務器,緩解每台服務器的壓力,提高並發量。

2.移除故障

當其中一台服務器發生故障時,會被移出輪詢隊列,客戶端請求將會發送到其他幾台正常的服務器,不會影響客戶端的訪問。

3.恢復添加

當故障的服務器恢復時,會自動被加到輪詢隊列,繼續處理客戶端請求。

image

Nginx配置

輪詢

如下是Nginx的基本配置,upstream配置要負載的節點。nodes可以自己取,要跟server中proxy_pass的nodes一致。
server_name可以是Nginx服務器的ip地址,也可以是域名,根據具體情況配置即可,listen為端口號。

upstream nodes {  
    server 192.168.1.11;  
    server 192.168.1.12;  
    }   
  
 server {  
        listen       80;  
        server_name  127.0.0.1;  
        #charset koi8-r;  
        #access_log  logs/host.access.log  main;  
        location / {  
            proxy_pass   http://nodes;  
            index  index.html index.htm;  
        }  
     }

使用以上配置,默認采用輪詢的分發策略,即每個請求按時間順序逐一分配到不同的應用服務器,如果應用服務器down掉,自動剔除,剩下的繼續輪詢。

權重

如果需要為每個請求節點配置不同的權重,可以在地址后面增加權重,配置如下

upstream nodes {  
    server 192.168.1.11 weight=4;  
    server 192.168.1.12;  
    }  

通過配置權重,指定輪詢幾率,權重和訪問比率成正比,用於應用服務器性能不均的情況。weight默認為1,weight越大,負載的權重就越大。

IP哈希算法

還有一種策略是IP哈希算法,請求按訪問ip的hash結果分配,這樣每個IP固定訪問一個應用服務器,可以解決session共享的問題,配置如下

upstream nodes {  
    ip_hash; 
    server 192.168.1.11;  
    server 192.168.1.12;  
    }   

其他

upstream中還有其他幾個常用的配置項:
down: 表示當前的server不參與負載均衡
max_fails: 允許請求失敗的次數默認為1.當超過最大次數時,返回proxy_next_upstream 模塊定義的錯誤
fail_timeout: max_fails次失敗后,暫停請求此台服務器的時間
backup: 其他全部的非backup機器down或者忙的時候,請求backup機器。所以這台機器壓力會最輕

upstream nodes {  
    server 192.168.1.11 down;  
    server 192.168.1.12 backup;  
    server 192.168.1.13;
    }   

以上就是Nginx的一些基本配置,能夠滿足基本的使用,大家可以動手測試一下。
下載地址:https://nginx.org/en/download.html,下載后解壓即可。配置文件為conf/nginx.conf,修改好配置文件后雙擊nginx.exe啟動。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM