反向代理(reverse PRoxy) 方式是指以代理服務(wù)器來(lái)接受Internet的連接請(qǐng)求,然后將請(qǐng)求轉(zhuǎn)發(fā)給內(nèi)部網(wǎng)絡(luò)上的服務(wù)器,并將從服務(wù)器上得到的結(jié)果返回給Internet上請(qǐng)求連接的客戶端,此時(shí)代理服務(wù)器對(duì)外就表現(xiàn)為一個(gè)服務(wù)器。
正向代理是指,一個(gè)位于客戶端和原始服務(wù)器之間的服務(wù)器,為了從原始服務(wù)器取得內(nèi)容,客戶端向代理發(fā)送一個(gè)請(qǐng)求并指定目標(biāo)(原始服務(wù)器),然后代理向原始服務(wù)器轉(zhuǎn)交請(qǐng)求并將獲得的內(nèi)容返回給客戶端。


簡(jiǎn)單理解就是,正向代理是為客戶端做代理,代替客戶端去訪問(wèn)服務(wù)器,
而反向代理是為服務(wù)器做代理,代替服務(wù)器接受客戶端請(qǐng)求
1.可以起到保護(hù)網(wǎng)站安全的作用,因?yàn)槿魏蝸?lái)自internet的請(qǐng)求都必須先經(jīng)過(guò)代理服務(wù)器
2.通過(guò)緩存靜態(tài)資源,加速web請(qǐng)求
3.實(shí)現(xiàn)負(fù)載均衡,目前市面上,主流的負(fù)載均衡方案,硬件設(shè)備有F5,軟件方案有四層負(fù)載均衡的LVS,七層負(fù)載均衡的nginx、haproxy等
在生產(chǎn)環(huán)境,tomcat服務(wù)器一般不單獨(dú)使用在項(xiàng)目中,我們一般通過(guò)nginx用于反向代理的服務(wù)器,并將請(qǐng)求轉(zhuǎn)發(fā)給后端多臺(tái)tomcat服務(wù)器,從而達(dá)到負(fù)載均衡的目的。
在http節(jié)點(diǎn)下,添加upstream節(jié)點(diǎn),添加tomcat集群
upstream tomcats { server 127.0.0.1:9001; server 127.0.0.1:9002;}配置location為tomcat集群location / { proxy_pass_header Server; proxy_set_header Host $http_host; proxy_set_header X-Real-ip $remote_addr; proxy_set_header X-Scheme $scheme; proxy_pass http://tomcats;}upstream還可以為每個(gè)設(shè)備設(shè)置狀態(tài)值,含義如下:dowm 表示當(dāng)前的server暫時(shí)不參與負(fù)載
weight 默認(rèn)為1, 值越大,負(fù)載的權(quán)重就越大
max_fails 允許請(qǐng)求失敗的次數(shù) 默認(rèn)為1 當(dāng)超過(guò)最大次數(shù)時(shí),返回proxy_next_upstream模塊定義的錯(cuò)誤
fail_timeout max_fails次失敗后,暫停的時(shí)間
backup 其他所有的非backup 機(jī)器dowm或者忙的時(shí)候,請(qǐng)求backup 機(jī)器,所以這臺(tái)機(jī)器壓力最輕
upstream tomcats{ server 127.0.0.1:9001 down; server 127.0.0.1:9002 backup; server 127.0.0.1:9003 weight=2; server 127.0.0.1:9004 max_fails=2 fail_timeout=60s; }分配策略
none(輪詢)
upstream按照輪詢(默認(rèn))方式進(jìn)行負(fù)載,每個(gè)請(qǐng)求按時(shí)間順序逐一分配到不同的后端服務(wù)器,如果后端服務(wù)器dowm掉,能自動(dòng)剔除。
這種方式簡(jiǎn)便,成本低廉,但可靠性和負(fù)載分配不均衡
weight(權(quán)重)
指定輪詢幾率,weight和訪問(wèn)比率成正比,用于后端服務(wù)器性能不均的情況
server 192.168.61.22 weight = 6; # 60% 請(qǐng)求server 192.168.61.23 weight = 4; # 40% 請(qǐng)求ip_hash(訪問(wèn)ip)
每個(gè)請(qǐng)求按訪問(wèn)的ip的hash結(jié)果分配,這樣每個(gè)訪客固定訪問(wèn)一個(gè)后端服務(wù)器,可以解決session的問(wèn)題
upstream tomcats { ip_hash; server 127.0.0.1:9001; server 127.0.0.1:9002;}fair(第三方)
按后端服務(wù)器的響應(yīng)時(shí)間來(lái)分配請(qǐng)求,響應(yīng)時(shí)間短的優(yōu)先分配,與weight分配策略類似
upstream tomcats { server 127.0.0.1:9001; server 127.0.0.1:9002; fair;}url_hash(第三方)
和ip哈希類似,只不過(guò)針對(duì)請(qǐng)求的url進(jìn)行hash(基于緩存的server,頁(yè)面靜態(tài)化)
upstream tomcats { server ip:8080; }server { listen 80; server_name www.lianggzone.com; location / { proxy_pass http://tomcats; #Proxy Settings proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504; proxy_max_temp_file_size 0; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; }}
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注