本節(jié)就聊聊回收Nginx負(fù)載平衡之后遇到的問題:
Session問題
文件上傳下載
凡是辦理處事器負(fù)載問題,城市通過多處事器分載來辦理。常見的辦理方案有:
網(wǎng)站進(jìn)口通過度站鏈接負(fù)載(天空軟件站,華軍軟件園等)
DNS輪詢
F5物理設(shè)備
Nginx等輕量級(jí)架構(gòu)
那我們看看Nginx是如何實(shí)現(xiàn)負(fù)載平衡的,Nginx的upstream今朝支持以下幾種方法的分派
1、輪詢(默認(rèn))
每個(gè)請(qǐng)求定時(shí)間順序逐一分派到差異的后端處事器,假如后端處事器down掉,能自動(dòng)剔除。
2、weight
指定輪詢幾率,weight和會(huì)見比率成正比,用于后端處事器機(jī)能不均的環(huán)境。
2、ip_hash
每個(gè)請(qǐng)求按會(huì)見ip的hash功效分派,這樣每個(gè)訪客牢靠會(huì)見一個(gè)后端處事器,可以辦理session的問題。
3、fair(第三方)
按后端處事器的響應(yīng)時(shí)間來分派請(qǐng)求,響應(yīng)時(shí)間短的優(yōu)先分派。
4、url_hash(第三方)
按會(huì)見url的hash功效來分派請(qǐng)求,使每個(gè)url定向到同一個(gè)后端處事器,后端處事器為緩存時(shí)較量有效。
Upstream設(shè)置如何實(shí)現(xiàn)負(fù)載
http {
upstream www.test1.com {
ip_hash;
server
server 172.16.125.76:8077 down;
server 172.16.0.18:8066 max_fails=3 fail_timeout=30s;
server 172.16.0.18:8077 backup;
}
upstream www.test2.com {
server
server 192.168.76.98:8066;
}
server {
listen
server_name www.test1.com;
location
/{proxy_pass http://www.test1.com;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
server {
listen
server_name www.test2.com;
location
/{proxy_pass http://www.test2.com;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
當(dāng)有請(qǐng)求到www.test1.com/www.test2.com 時(shí)請(qǐng)求會(huì)被分發(fā)到對(duì)應(yīng)的upstream配置的處事器列表上。test2的每一次請(qǐng)求分發(fā)的處事器都是隨機(jī)的,就是第一種環(huán)境羅列的。而test1剛是按照來會(huì)見ip的hashid來分發(fā)到指定的處事器,香港服務(wù)器 香港服務(wù)器租用,也就是說該IP的請(qǐng)求都是轉(zhuǎn)到這個(gè)指定的處事器上。
按照處事器的自己的機(jī)能不同及職能,可以配置差異的參數(shù)節(jié)制。
down 暗示負(fù)載過重可能不參加負(fù)載
weight 權(quán)重過大代表包袱的負(fù)載就越大
backup 其它處事器時(shí)或down時(shí)才會(huì)請(qǐng)求backup處事器
max_fails 失敗高出指定次數(shù)會(huì)暫停或請(qǐng)求轉(zhuǎn)往其它處事器
fail_timeout 失敗高出指定次數(shù)后暫停時(shí)間
以上就Nginx的負(fù)載平衡的簡樸設(shè)置。那繼承我們的本節(jié)接頭內(nèi)容: