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