目錄
一.負(fù)載均衡含義簡介
二.nginx負(fù)載均衡配置方式
準(zhǔn)備三臺設(shè)備:
2.190均衡服務(wù)器,2.191web服務(wù)器1,2.160web服務(wù)器2,三臺設(shè)備均安裝nginx,兩臺web服務(wù)器均有網(wǎng)頁內(nèi)容
upstream內(nèi)參數(shù)
1.一般輪詢負(fù)載均衡
(1)含義
(2)配置
(3)測試
2.加權(quán)輪詢負(fù)載均衡
(1)含義
(2)配置
(3)測試
(4)其他常用參數(shù)
3.ip_hash負(fù)載均衡
(1)含義
(2)配置
(3)測試
4.第三方模塊負(fù)載均衡(以fair為例)
(1)像fair、url_hash等第三方模塊都需要添加相應(yīng)的模塊和軟件包
(2)配置
一.負(fù)載均衡含義簡介
就是為了減輕web、dns等服務(wù)器再接收高并發(fā)流量請求時的壓力,在接受到請求時將負(fù)載分?jǐn)偟狡渌鄠€服務(wù)器上,提高服務(wù)的響應(yīng)速度和體驗(yàn)感
二.nginx負(fù)載均衡配置方式
準(zhǔn)備三臺設(shè)備:
2.190均衡服務(wù)器,2.191web服務(wù)器1,2.160web服務(wù)器2,三臺設(shè)備均安裝nginx,兩臺web服務(wù)器均有網(wǎng)頁內(nèi)容
[root@localhost conf]# curl 192.168.2.160
here 160
[root@localhost conf]# curl 192.168.2.191
here 191
注意:負(fù)載均衡的配置一般都放在upstream塊內(nèi)?
upstream內(nèi)參數(shù)
server xxxxxxx | real server地址,不寫端口默認(rèn)80,高并發(fā)情況下IP可以換位域名 |
weight=數(shù)字 |
服務(wù)器的權(quán)重,默認(rèn)值是
1,
數(shù)字越大表示接受的請求比例越大
|
max_fails=數(shù)字 |
Nginx
嘗試連接后端主機(jī)失敗的次數(shù),這個值是配合proxy_next_upstream、
fastcgi_next_upstream
和memcached_next_upstream 這三個參數(shù)來使用的。當(dāng)
nginx
接收后端服務(wù)器返回這三個參數(shù)定義的狀態(tài)碼時,會將這個請求轉(zhuǎn)發(fā)給正常工作的后端服務(wù)器
|
fail_timeout=time |
與max_fails配合使用,在max_fails
定義的失敗次數(shù)后,距離下次檢查的間隔時間,默認(rèn)是
10s 。
如果 max_fails是
5 ,
它就檢測
5
次,如果
5
次都是
502,
那么,它就會根據(jù) fail_timeout的值,等待
10s
再去檢查,還是只檢查一次,如果持續(xù)
502,
在不重新加載 Nginx
配置的情況下,每隔
10s都只檢查一次。
|
backup |
熱備配置(
RS
節(jié)點(diǎn)的高可用),當(dāng)前面激活的
RS
都失敗后會自動啟用熱備
RS
這標(biāo)志著這個服務(wù)器作為備份服務(wù)器,若主服務(wù)器全部宕機(jī)了,就會向它轉(zhuǎn)
發(fā)請求。注意:當(dāng)負(fù)載調(diào)度算法為
ip_hash
時,后端服務(wù)器在負(fù)載均衡調(diào)度中
的狀態(tài)不能是
weight
和
backup
|
down |
標(biāo)志著服務(wù)器永遠(yuǎn)不可用,這個參數(shù)可配合
ip_hash
使用
|
1.一般輪詢負(fù)載均衡
(1)含義
一般輪詢屬于是負(fù)載均衡默認(rèn)配置模式,將請求按照時間先后順序分配到不同的服務(wù)器進(jìn)行處理,若部分服務(wù)器出現(xiàn)宕機(jī),會被自動剔除。
(2)配置
server {
listen 192.168.2.190;
????????????????server_name www.aabb.com;
????????????????error_log /usr/local/src/nginx-1.22.0/logs/error.log;
????????????????access_log /usr/local/src/nginx-1.22.0/logs/access.log;
????????????????location / {
????????????????????????proxy_pass http://remo; #可以理解為代理的站點(diǎn)
????????????????}
}
upstream remo { #代理站點(diǎn)內(nèi)的主機(jī),可加端口,默認(rèn)80
server 192.168.2.191;
????????????????server 192.168.2.160;
}
(3)測試
不斷刷新會根據(jù)時間先后順序在兩臺服務(wù)器之間交替
2.加權(quán)輪詢負(fù)載均衡
(1)含義
通過weight指定輪詢的權(quán)重比率(與訪問率成正比),應(yīng)對后端服務(wù)器性能不一的情況,性能高的服務(wù)器可以設(shè)置較高權(quán)重,反之則設(shè)置較低。這個方式是按照平滑加權(quán)輪詢算法進(jìn)行分配,權(quán)重值越高被分配到的幾率就高。
(2)配置
像這個例子就是它們的總和作為一個循環(huán),4次內(nèi)出現(xiàn)1次191和3次160,下個4次也是如此
server {
listen 192.168.2.190;
server_name www.aabb.com;
error_log /usr/local/src/nginx-1.22.0/logs/error.log;
access_log /usr/local/src/nginx-1.22.0/logs/access.log;
location / {
proxy_pass http://remo;
}
}
upstream remo {
server 192.168.2.191 weight=1;
server 192.168.2.160 weight=3;
}
(3)測試
訪問4次
(4)其他常用參數(shù)
直接接著weight后面寫即可
upstream remo {
server 192.168.2.191 weight=1;
server 192.168.2.160 weight=3;
}
3.ip_hash負(fù)載均衡
(1)含義
每個用戶發(fā)出的請求會按照ip_hash的記過進(jìn)行分配,分配后的結(jié)果即每個訪問者固定了的服務(wù)器了(可以有效解決動態(tài)網(wǎng)頁中的連接共享問題)
(2)配置
server {
listen 192.168.2.190;
server_name www.aabb.com;
error_log /usr/local/src/nginx-1.22.0/logs/error.log;
access_log /usr/local/src/nginx-1.22.0/logs/access.log;
location / {
proxy_pass http://remo;
}
}
upstream remo {
ip_hash;
server 192.168.2.191;
server 192.168.2.160;
}
[root@localhost html]# netstat -n | grep 80 |wc -l
30
(3)測試
如圖所示就固定給160服務(wù)器了,也只有160服務(wù)器的訪問次數(shù)增加了
#160設(shè)備上
[root@localhost html]# netstat -n | grep 80 |wc -l
30
4.第三方模塊負(fù)載均衡(以fair為例)
(1)像fair、url_hash等第三方模塊都需要添加相應(yīng)的模塊和軟件包
(2)配置
下載fair壓縮包,解壓增加fair模塊文章來源:http://www.zghlxwxcb.cn/news/detail-695650.html
[root@localhostnginx-1.22.0]#./configure?--add-module=/usr/local/src/nginx-1.22.0/conf/nginx-upstream-fair-master
[root@localhost nginx-1.22.0]# make
[root@localhost nginx-1.22.0]# make install
修改配置文件?文章來源地址http://www.zghlxwxcb.cn/news/detail-695650.html
server {
????????????????listen 192.168.2.190;
????????????????server_name www.aabb.com;
????????????????error_log /usr/local/src/nginx-1.22.0/logs/error.log;
????????????????access_log /usr/local/src/nginx-1.22.0/logs/access.log;
????????????????location / {
????????????????????????proxy_pass http://remo;
????????????????}
}
upstream remo {
????????????????server 192.168.2.191;
????????????????server 192.168.2.160;
????????????????fair;
}
到了這里,關(guān)于nginx負(fù)載均衡簡介,一般輪詢、加權(quán)輪詢、ip_hash等負(fù)載均衡模式配置介紹的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!