面對(duì)高并發(fā)的問(wèn)題,企業(yè)往往會(huì)從兩個(gè)方面來(lái)解決。其一,從硬件上面,提升硬件的配置,增加服務(wù)器的性能;另外,就是從軟件上,將數(shù)據(jù)庫(kù)和WEB服務(wù)器分離,使數(shù)據(jù)庫(kù)和WEB服務(wù)器都能夠充分發(fā)揮各自的性能,并且二者不相互影響。然而,這樣還不夠,一臺(tái)WEB服務(wù)器可能無(wú)法承受太高的并發(fā)請(qǐng)求。那么負(fù)載均衡技術(shù)就應(yīng)運(yùn)而生,下面我們就來(lái)談?wù)勅绾斡肗ginx進(jìn)行負(fù)載均衡。
負(fù)載均衡的作用
1.轉(zhuǎn)發(fā)
轉(zhuǎn)發(fā)是負(fù)載均衡的核心功能,它能夠根據(jù)一定的算法,將客戶(hù)端請(qǐng)求轉(zhuǎn)發(fā)到不同應(yīng)用服務(wù)器,緩解每臺(tái)服務(wù)器的壓力,提高并發(fā)量。
2.移除故障
當(dāng)其中一臺(tái)服務(wù)器發(fā)生故障時(shí),會(huì)被移出輪詢(xún)隊(duì)列,客戶(hù)端請(qǐng)求將會(huì)發(fā)送到其他幾臺(tái)正常的服務(wù)器,不會(huì)影響客戶(hù)端的訪問(wèn)。
3.恢復(fù)添加
當(dāng)故障的服務(wù)器恢復(fù)時(shí),會(huì)自動(dòng)被加到輪詢(xún)隊(duì)列,繼續(xù)處理客戶(hù)端請(qǐng)求。

Nginx配置
輪詢(xún)
如下是Nginx的基本配置,upstream配置要負(fù)載的節(jié)點(diǎn)。nodes可以自己取,要跟server中proxy_pass的nodes一致。
server_name可以是Nginx服務(wù)器的ip地址,也可以是域名,根據(jù)具體情況配置即可,listen為端口號(hào)。
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;
}
}
使用以上配置,默認(rèn)采用輪詢(xún)的分發(fā)策略,即每個(gè)請(qǐng)求按時(shí)間順序逐一分配到不同的應(yīng)用服務(wù)器,如果應(yīng)用服務(wù)器down掉,自動(dòng)剔除,剩下的繼續(xù)輪詢(xún)。
權(quán)重
如果需要為每個(gè)請(qǐng)求節(jié)點(diǎn)配置不同的權(quán)重,可以在地址后面增加權(quán)重,配置如下
upstream nodes {
server 192.168.1.11 weight=4;
server 192.168.1.12;
}
通過(guò)配置權(quán)重,指定輪詢(xún)幾率,權(quán)重和訪問(wèn)比率成正比,用于應(yīng)用服務(wù)器性能不均的情況。weight默認(rèn)為1,weight越大,負(fù)載的權(quán)重就越大。
IP哈希算法
還有一種策略是IP哈希算法,請(qǐng)求按訪問(wèn)ip的hash結(jié)果分配,這樣每個(gè)IP固定訪問(wèn)一個(gè)應(yīng)用服務(wù)器,可以解決session共享的問(wèn)題,配置如下
upstream nodes {
ip_hash;
server 192.168.1.11;
server 192.168.1.12;
}
其他
upstream中還有其他幾個(gè)常用的配置項(xiàng):
down: 表示當(dāng)前的server不參與負(fù)載均衡
max_fails: 允許請(qǐng)求失敗的次數(shù)默認(rèn)為1.當(dāng)超過(guò)最大次數(shù)時(shí),返回proxy_next_upstream 模塊定義的錯(cuò)誤
fail_timeout: max_fails次失敗后,暫停請(qǐng)求此臺(tái)服務(wù)器的時(shí)間
backup: 其他全部的非backup機(jī)器down或者忙的時(shí)候,請(qǐng)求backup機(jī)器。所以這臺(tái)機(jī)器壓力會(huì)最輕
upstream nodes {
server 192.168.1.11 down;
server 192.168.1.12 backup;
server 192.168.1.13;
}
以上就是Nginx的一些基本配置,能夠滿足基本的使用,大家可以動(dòng)手測(cè)試一下。
下載地址:https://nginx.org/en/download.html,下載后解壓即可。配置文件為conf/nginx.conf,修改好配置文件后雙擊nginx.exe啟動(dòng)。