1. 程式人生 > >Nginx負載均衡配置例項

Nginx負載均衡配置例項

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

檢視原文更多驚喜

負載均衡的作用

1.轉發

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

2.移除故障

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

3.恢復新增

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

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啟動