nginx負載均衡均勻策略如何配置
『壹』 nginx在做負載均衡時如何配置nginx的負載均衡怎麼配置
1. 今天的演示將涉及一個簡單的架構,其中包括一台前端web伺服器和兩台後端伺服器node1與node2。這些伺服器的IP地址分別為:web:192.168.1.210,node1:192.168.1.211,node2:192.168.1.212。
2. 在後端的node1和node2上,我們配置了不同的網站內容,以便於測試。為了便於區分,兩個網站的主頁都被修改為特定的內容。
3. 配置好前端web伺服器的負載均衡設置。首先,在默認的nginx配置文件中,通過添加http塊內的upstream指令,定義了名為backend的負載均衡集群,並記錄下這個名稱。
4. 接下來,編輯默認的server配置文件,將所有指向192.168.1.210的流量代理到backend集群。
5. 保存配置文件後,使用nginx -t命令測試配置的正確性,確保nginx能夠正常啟動。
6. 啟動nginx後,通過瀏覽器訪問web伺服器的IP地址,可以觀察到請求在node1和node2之間輪詢分配,實現了基本的負載均衡。
7. 若要實現加權輪詢,可以為不同的後端伺服器設置不同的權重。權重值越高,該伺服器接收的請求就越多。設置權重後,需使用nginx -t測試配置,並通過nginx -s reload命令應用新配置。
8. 對於統計訪問次數,可以使用httpd-tools軟體包中的ab命令進行壓力測試。執行ab -n 1000 -c 50 http://localhost命令,在node1上進行測試。
9. 登錄到後端伺服器,使用grep ApacheBench access.log | wc命令來統計由ab命令產生的訪問記錄。
10. 分析node1和node2上的日誌,可以發現雖然未嚴格達到5:2的權重比例,但流量分配已非常接近,驗證了配置的有效性。
『貳』 nginx作為負載均衡服務(輪詢策略與加權輪詢)
Nginx作為負載均衡服務,主要通過輪詢和加權輪詢策略實現伺服器間的請求調度。首先,以輪詢方式為例:
1. 在192.168.3.11虛擬機上,模擬三台應用伺服器,每個伺服器對應一個index.html頁面,分別在code1、code2和code3目錄下創建。
2. 在/etc/nginx/conf.d/目錄下創建server1、server2和server3的配置文件,分別配置不同伺服器的埠和訪問路徑。
3. 啟動Nginx服務,檢查並重新載入配置,確保無誤後,通過瀏覽器分別訪問192.168.3.11的三個埠。
對於加權輪詢,同樣在192.168.3.11上模擬三台伺服器,但在負載均衡伺服器192.168.3.10上,配置upstream_server.conf文件,賦予各伺服器不同的權重。例如,server1的權重設為3,刷新瀏覽器5次,可以看到server1的頁面被訪問3次。
『叄』 nginx璐熻澆鍧囪 絳栫暐
浜у搧鍨嬪彿錛歍hinkpad E15
緋葷粺鐗堟湰錛歝entos8
nginx璐熻澆鍧囪絳栫暐
Nginx璐熻澆鐨5縐嶇瓥鐣ヨ劇疆鏂規硶錛
1銆佽疆璇錛堥粯璁わ級
姣忎釜璇鋒眰鎸夋椂闂撮『搴忛愪竴鍒嗛厤鍒頒笉鍚岀殑鍚庣鏈嶅姟鍣錛屽傛灉鍚庣鏈嶅姟鍣╠own鎺夛紝鑳借嚜鍔ㄥ墧闄ゃ
upstream backserver {
server 192.168.1.62;
server 192.168.1.64;
}
2銆佹寚瀹氭潈閲
鎸囧畾杞璇㈠嚑鐜囷紝weight鏉冮噸澶у皬鍜岃塊棶姣旂巼鎴愭f瘮錛岀敤浜庡悗絝鏈嶅姟鍣ㄦц兘涓嶅潎鐨勬儏鍐點
upstream backserver {
server 192.168.1.62 weight=1;
server 192.168.1.64 weight=2;
}
3銆乮p_hash
姣忎釜璇鋒眰錛屾寜璁塊棶ip鐨刪ash緇撴灉榪涜屽垎閰嶏紝榪欐牱姣忎釜璁垮錛屼細鍥哄畾璁塊棶鍚屼竴涓鍚庣鏈嶅姟鍣錛屽彲浠ヨВ鍐硈ession鐨勯棶棰樸
upstream backserver {
ip_hash;
server 192.168.1.62:80;
server 192.168.1.64:80;
}
4銆乫air
鎸夊悗絝鏈嶅姟鍣ㄧ殑鍝嶅簲鏃墮棿鏉ュ垎閰嶈鋒眰錛屽搷搴旀椂闂寸煭鐨勪紭鍏堝垎閰嶃
upstream backserver {
server server1;
server server2;
fair;
}
5銆乽rl_hash
鎸夎塊棶url鐨刪ash緇撴灉鏉ュ垎閰嶈鋒眰錛屼嬌姣忎釜url瀹氬悜鍒板悓涓涓鍚庣鏈嶅姟鍣錛屽悗絝鏈嶅姟鍣ㄤ負緙撳瓨鏃舵瘮杈冩湁鏁堛
upstream backserver {
server squid1:3128;
server squid2:3128;
hash $request_uri;
hash_method crc32;
}
鎬葷粨錛歂ginx璐熻澆鐨5縐嶇瓥鐣ヨ劇疆鏂規硶錛
1. 杞璇錛堥粯璁わ級
2. 鎸囧畾鏉冮噸
3. IP緇戝畾 ip_hash
4. fair
5. url_hash