- 反向代理:代理服務(wù)器代替真是服務(wù)器接收Internet請(qǐng)求,并將請(qǐng)求轉(zhuǎn)發(fā)給【內(nèi)部網(wǎng)絡(luò)上的】真實(shí)服務(wù)器伴挚;真實(shí)服務(wù)器得到的結(jié)果再通過(guò)代理服務(wù)器返回給客戶端靶衍,此時(shí)就表現(xiàn)為一個(gè)代理服務(wù)器,用戶是不知道到底哪個(gè)真實(shí)服務(wù)器在此處理的
server {
listen 80;
server_name loclhost ;
client_max_body_size 1024M ;
#允許客戶端請(qǐng)求的最大單文件字節(jié)數(shù)
location / {
# 對(duì) "/" 啟用反向代理
proxy_pass http://localhost:8080 ;
proxy_set_header Host $host:$server_port ;
}
} # 當(dāng)我們?cè)L問(wèn)localhost的時(shí)候茎芋,就相當(dāng)于訪問(wèn)localhost:8080
-
負(fù)載均衡:當(dāng)有兩臺(tái)或以上的服務(wù)器時(shí)颅眶,根據(jù)規(guī)則隨機(jī)的將請(qǐng)求分發(fā)到指定服務(wù)器進(jìn)行處理,一般需要配置反向代理田弥,通過(guò)反向代理跳轉(zhuǎn)到負(fù)載均衡帚呼,Nginx自帶3種負(fù)載均衡策略
- RR(默認(rèn)):按時(shí)間逐一分配到不同后端服務(wù)器
upstream test { # 核心代碼 server localhost: 8080 ; server localhost: 8081 ; } # Nginx會(huì)自動(dòng)判斷服務(wù)器狀態(tài),如果不能訪問(wèn)就不會(huì)跳轉(zhuǎn)到此服務(wù)器皱蹦,避免服務(wù)器掛了的影響
-
權(quán)重:指定輪詢幾率煤杀,weight和訪問(wèn)比率成正比,用于后端服務(wù)器性能不均的情況
server localhost: 8080 weight=9 ; server localhost: 8081 weight=9 ; } # 10次一般只會(huì)有1次會(huì)訪問(wèn)到8081沪哺,而有9次會(huì)訪問(wèn)到8080```
ip_hash:當(dāng)需要一個(gè)客戶只訪問(wèn)一個(gè)服務(wù)器沈自,如登陸的時(shí)候根據(jù)session來(lái)保存信息(iphash的每個(gè)請(qǐng)求按訪問(wèn)ip的hash結(jié)果分配,這樣每個(gè)訪客固定訪問(wèn)一個(gè)后端服務(wù)器辜妓,可以解決session的問(wèn)題)
ip_hash ; server localhost: 8080 ; server localhost: 8081 ; }
fair:按后端服務(wù)器的響應(yīng)時(shí)間來(lái)分配請(qǐng)求
-
url_hash:按訪問(wèn)的hash結(jié)果來(lái)分配請(qǐng)求枯途,使每個(gè)url定向到同一個(gè)后端服務(wù)器(在upstream中加入hash語(yǔ)句,server語(yǔ)句中不能寫(xiě)入weight等其他的參數(shù)籍滴,hash_method是使用的hash算法)
hash $request_uri ; hash_method crc32 ; server localhost: 8080 ; server localhost: 8081 ; }
-
HTTP服務(wù)器(動(dòng)靜分離)
nginx本身是靜態(tài)資源服務(wù)器酪夷,當(dāng)只有靜態(tài)資源的時(shí)候,可以使用Nginx做服務(wù)器孽惰,
靜態(tài)
-
動(dòng)靜分離:根據(jù)一定規(guī)則把不變的資源和經(jīng)常變的資源區(qū)分開(kāi)來(lái)晚岭,動(dòng)靜資源做好了拆分以后,我們就可以根據(jù)靜態(tài)資源的特點(diǎn)將其做緩存操作
-
正向代理:客戶端知道要訪問(wèn)哪臺(tái)服務(wù)器勋功,服務(wù)器只清楚請(qǐng)求來(lái)自哪個(gè)代理服務(wù)器坦报,而不清楚來(lái)自哪個(gè)具體的客戶端;通過(guò)代理服務(wù)器(屏蔽了真實(shí)客戶端信息)做中轉(zhuǎn)
server { resolver_timeout 5s ; listen 81 ; access_log e:\wwwroot\proxy.access.log; error_log e:\wwwroot\proxy.error.log; location / { proxy_pass http://$host$request_uri ; } }
正反向代理結(jié)合:正向代理代理客戶端的請(qǐng)求去訪問(wèn)目標(biāo)服務(wù)器狂鞋,目標(biāo)服務(wù)器是一個(gè)反向單利服務(wù)器片择,反向代理了多臺(tái)真實(shí)的業(yè)務(wù)處理服務(wù)器