反向代理:反向代理通常用于外網(wǎng)訪問(wèn)內(nèi)網(wǎng),客戶(hù)端發(fā)送請(qǐng)求,到代理服務(wù)器,代理服務(wù)器通過(guò)代理服務(wù)器域名將請(qǐng)求轉(zhuǎn)發(fā)到目的服務(wù)器
反向代理:代理的是服務(wù)器,反向代理通常結(jié)合負(fù)載均衡使用
負(fù)載均衡:主要是解決單個(gè)服務(wù)器節(jié)點(diǎn)流量過(guò)大,服務(wù)器響應(yīng)過(guò)慢的問(wèn)題

nginx負(fù)載均衡策略:
輪循(round-robin)默認(rèn)策略
根據(jù)請(qǐng)求次數(shù),將每個(gè)請(qǐng)求均勻分配到每臺(tái)服務(wù)器,如果后端服務(wù)器宕機(jī),自動(dòng)剔除。
權(quán)重(Weight)
把請(qǐng)求更多的分配到高配置的后端服務(wù)器上,默認(rèn)每個(gè)服務(wù)器的權(quán)重都是1。
ip_hash
同一客戶(hù)端的Web請(qǐng)求被分發(fā)到同一個(gè)后端服務(wù)器進(jìn)行處理,使用該策略可以有效的避免用戶(hù)Session失效的問(wèn)題。該策略可以連續(xù)產(chǎn)生1045個(gè)互異的value,經(jīng)過(guò)20次hash仍然找不到可用的機(jī)器時(shí),算法會(huì)退化成輪循。
最少連接(last_conn)
Web請(qǐng)求會(huì)被轉(zhuǎn)發(fā)到連接數(shù)最少的服務(wù)器上。
參數(shù)說(shuō)明
weight
啟用權(quán)重策略,總數(shù)按照10進(jìn)行計(jì)算,如果分配為3,則表示所有連接中的30%分配給該服務(wù)器,默認(rèn)值為1;
max_fail/fail_time
某臺(tái)服務(wù)器允許請(qǐng)求失敗的次數(shù),超過(guò)最大數(shù)后,在fail_timeout時(shí)間內(nèi),新的請(qǐng)求不會(huì)分配給這臺(tái)機(jī)器,如果設(shè)置為0,反向代理服務(wù)器則會(huì)將這臺(tái)服務(wù)器設(shè)置為永久無(wú)效狀態(tài)。fail_time默認(rèn)為10秒;
backup
將某臺(tái)服務(wù)器設(shè)定為備用機(jī),當(dāng)列表中的其他服務(wù)器都不可用時(shí),啟用備用機(jī)
down
將某臺(tái)服務(wù)器設(shè)定為不可用狀態(tài)
max_conns
限制分配給某臺(tái)服務(wù)器的最大連接數(shù),超過(guò)這個(gè)數(shù)量,反向代理服務(wù)器將不會(huì)分配新的連接,默認(rèn)為0,表示不限制;
http{
upstream server_group_name{//負(fù)載均衡
# ip_hash; # 啟用ip_hash策略
# last_conn; #啟用最少連接策略
server ip or domain:port
weight=2
max_fails=3
fail_timeout=15
max_conns=1000; # 使用weight設(shè)置權(quán)重為20%
server ip or domain:port backup;# 設(shè)置為備用機(jī),當(dāng)其他服務(wù)器全部宕機(jī)時(shí),啟用備用服務(wù)器?
?server ip or domain:port down;# 設(shè)置服務(wù)器為不可用狀態(tài)
}
server{//反向代理
listen 80;//監(jiān)聽(tīng)80端口
server_name: www.baidu.com? *.baidu.com//域名,多個(gè)域名以空格分割
location/
{proxy_pass http://server_group_name;} //代理的服務(wù)器地址
}
}

location /path{
proxy_pass http://server_group_name;
} //代理的服務(wù)器地址
代理路徑后沒(méi)有/,代理地址會(huì)自動(dòng)拼接/path
引用:http://www.itdecent.cn/p/5026ab611d4e