在我們?nèi)粘9ぷ髦邪瑧?yīng)該經(jīng)常聽到或者和用到反向代理憨琳,通過反向代理來達(dá)到客戶端與服務(wù)端之間的訪問锰蓬,即使用反向代理作為Web服務(wù)器的前置機(jī)來降低網(wǎng)絡(luò)和服務(wù)器的負(fù)載邻储,提高訪問效率赋咽。
反向代理
代理分為正向代理和反向代理,代理應(yīng)該不用多解釋了吨娜,理解成中間人就可以了脓匿。正向代理是內(nèi)網(wǎng)通過代理訪問外網(wǎng),這個(gè)代理就是正向代理宦赠。而反向代理是指亦镶,外網(wǎng)通過代理訪問內(nèi)網(wǎng),那這個(gè)代理就是反向代理袱瓮。
假設(shè)把你公司的網(wǎng)看成是內(nèi)網(wǎng)缤骨,那么你從公司里面的一臺(tái)電腦上訪問你家里的電腦上的服務(wù),那就的通過正向代理尺借,而你從你家電腦訪問公司的這臺(tái)電腦绊起,就要通過反向代理。
反向代理與負(fù)載均衡一樣燎斩,也是位于客戶端與服務(wù)器之間虱歪,客戶端向服務(wù)器發(fā)起的請(qǐng)求都是先經(jīng)過反向代理,然后分發(fā)到服務(wù)器上栅表,然后服務(wù)器將返回結(jié)果交給反向代理笋鄙,反向代理在交給客戶端。
反向代理的作用:
- 增強(qiáng)了安全性: 首先怪瓶,你背后的服務(wù)器是在反向代理后面的萧落,其不會(huì)暴露任何信息到網(wǎng)絡(luò)上,所以可以防止惡意攻擊洗贰。第二可以防止DDoS( distributed denial-of-service)攻擊找岖,例如通過限制某一IP訪問,限制每個(gè)客戶端的訪問次數(shù)等敛滋。
- 增強(qiáng)了可伸縮性與靈活性:因?yàn)榭蛻舳酥荒芸吹椒聪虼淼腎p地址许布,所以我們就可以靈活的改變其后面服務(wù)器的配置。
- 加速Web訪問速度:第一:將返回結(jié)果壓縮后交給客戶端绎晃,這樣就會(huì)節(jié)省網(wǎng)絡(luò)帶寬蜜唾,從而加快速度杂曲。第二:將請(qǐng)求的加密解密操作放在反向代理服務(wù)器上行執(zhí)行。第三:在反向代理服務(wù)器上做緩存袁余。
nginx反向代理
1.nginx環(huán)境安裝
準(zhǔn)備nginx環(huán)境擎勘,如未安裝可參考:docker構(gòu)建nginx鏡像
2.配置nginx反向代理
使用下面命令進(jìn)入nginx容器內(nèi)部
# -it 交互模式,表示分配一個(gè)偽終端
# nginx 容器名稱 泌霍,也可以是容器id
# /bin/bash 表示對(duì)容器執(zhí)行bash操作
docker exec -it nginx /bin/bash
執(zhí)行完货抄,cd根目錄 ls下系統(tǒng)目錄發(fā)現(xiàn)就是一個(gè)Linux系統(tǒng)
進(jìn)入nginx目錄
使用vim nginx.conf 編輯配置文件
在server段里面的location加上proxy_pass http://ip:端口;
完成后重啟nginx
./nginx -s reload
訪問頁面成功代理
ps:如果本地有多個(gè)項(xiàng)目可以使用路由的形式實(shí)現(xiàn)代理跳轉(zhuǎn)- -