面對高并發(fā)的問題,企業(yè)往往會從兩個方面來解決伸但。其一肾请,從硬件上面,提升硬件的配置更胖,增加服務器的性能铛铁;另外,就是從軟件上却妨,將數(shù)據(jù)庫和WEB服務器分離饵逐,使數(shù)據(jù)庫和WEB服務器都能夠充分發(fā)揮各自的性能,并且二者不相互影響彪标。然而倍权,這樣還不夠,一臺WEB服務器可能無法承受太高的并發(fā)請求捐下。那么負載均衡技術就應運而生账锹,下面我們就來談談如何用Nginx進行負載均衡。
負載均衡的作用
1.轉(zhuǎn)發(fā)
轉(zhuǎn)發(fā)是負載均衡的核心功能坷襟,它能夠根據(jù)一定的算法奸柬,將客戶端請求轉(zhuǎn)發(fā)到不同應用服務器,緩解每臺服務器的壓力婴程,提高并發(fā)量廓奕。
2.移除故障
當其中一臺服務器發(fā)生故障時,會被移出輪詢隊列档叔,客戶端請求將會發(fā)送到其他幾臺正常的服務器桌粉,不會影響客戶端的訪問。
3.恢復添加
當故障的服務器恢復時衙四,會自動被加到輪詢隊列铃肯,繼續(xù)處理客戶端請求。
Nginx配置
輪詢
如下是Nginx的基本配置传蹈,upstream配置要負載的節(jié)點押逼。nodes可以自己取步藕,要跟server中proxy_pass的nodes一致。
server_name可以是Nginx服務器的ip地址挑格,也可以是域名咙冗,根據(jù)具體情況配置即可,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;
}
}
使用以上配置雾消,默認采用輪詢的分發(fā)策略,即每個請求按時間順序逐一分配到不同的應用服務器挫望,如果應用服務器down掉立润,自動剔除,剩下的繼續(xù)輪詢媳板。
權重
如果需要為每個請求節(jié)點配置不同的權重范删,可以在地址后面增加權重,配置如下
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: 允許請求失敗的次數(shù)默認為1.當超過最大次數(shù)時煤率,返回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啟動妒茬。