負載均衡溪厘,一般包含兩方面的含義。一方面是,將單一的重負載分擔到多個網(wǎng)絡(luò)節(jié)點上做并行處理傻昙,每個節(jié)點處理結(jié)束后將結(jié)果匯總返回給用戶彩扔,這樣可以大幅提高網(wǎng)絡(luò)系統(tǒng)的處理能力;第二個方面的含義是贾惦,將大量的前端并發(fā)訪問或數(shù)據(jù)流量分擔到多個后端網(wǎng)絡(luò)節(jié)點上分別處理须板,這樣可以有效減少前端用戶等待響應(yīng)的時間兢卵。
Nginx服務(wù)器的負載均衡策略可以劃分為兩大類:即內(nèi)置策略和擴展策略。內(nèi)置策略主要包含輪詢甜奄、加權(quán)輪詢和IP hash三種;擴展策略主要通過第三方模塊實現(xiàn)牍氛,種類比較豐富烟阐,常見的有url hash、fair等悠抹。
- 開啟nginx:linux服務(wù)器下楔敌,進入終端,在超級用戶的模式下卵凑,輸入:(訪問的是nginx的默認路徑)勺卢,然后在瀏覽器輸入127.0.0.1就可以訪問
實現(xiàn)原理
架構(gòu)圖解釋:在這個圖中黑忱,用戶提交請求先到Nginx主服務(wù)器勒魔,然后由Nginx進行對這些請求的轉(zhuǎn)發(fā),轉(zhuǎn)發(fā)到各個分服務(wù)器上抚吠,然后nginx進行邏輯處理楷力。
部署
在新建一個項目孵户,如test.com
- 在192.168.172.131,192.168.172.132和本機(負載服務(wù)器)安裝好nginx剪勿,并新建好站點
test.com
,配置文件為test.com.conf
厕吉,本機hosts
綁定不同ip測試 - 在本機nginx/config/vhost/ 下執(zhí)行vim test.com.conf 進行如下編輯
#服務(wù)器的集群
upstream test.com { #服務(wù)器集群名字
server 192.168.172.131:80 fail_timeout:60s weight=1;#服務(wù)器配置 weight是權(quán)重的意思,權(quán)重越大头朱,分配的概率越大项钮。
server 192.168.172.132:80 fail_timeout:60s weight=2;
}
server{
listen 80;
listen 443;
server_name test.com;
index index.php index.html index.htm default.php default.htm default.html;
root D:/wwwroot/test;
...
location / {
proxy_pass test.com;
proxy_set_header Host $host;
proxy_set_header X-real-Ip $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forworded_for;
}
...
}
- 重啟nginx
- 在瀏覽器地址欄輸入:
test.com
烁巫,就可以進入壓力比較小的服務(wù)器,重新進入會進入不一樣的頁面。
conf文件分析 HTTP Upstream
- 1.jpg
- ip_hash
2.jpg
如何實現(xiàn)讓用戶每次訪問的是一個服務(wù)器:
用ip_hash;
3.jpg
4.jpg
關(guān)閉nginx=>killall -9 nginx
再打開nginx
清空瀏覽器的cookie,再次訪問8080端口诊霹,那么多次訪問都是你進入的當前瀏覽器脾还,直到這個瀏覽器崩潰入愧。
- server指令的操作
可以設(shè)置服務(wù)器的權(quán)重weight=2,哪個服務(wù)器的權(quán)重比較大泥张,被訪問的概率比較大鞠值。
先關(guān)閉ip_hash,在測試
5.jpg
關(guān)閉重新打開nginx
清空cookie彤恶,訪問8080声离,訪問182,18,79,243的概率比較大
- upstream 指令
6.jpg