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