正向代理
正向代理最大的特點(diǎn)是客戶端非常明確要訪問(wèn)的服務(wù)器地址;服務(wù)器只清楚請(qǐng)求來(lái)自哪個(gè)代理服務(wù)器,而不清楚來(lái)自哪個(gè)具體的客戶端;正向代理模式屏蔽或者隱藏了真實(shí)客戶端信息。
例1:訪問(wèn)國(guó)外的某些網(wǎng)站,此時(shí)你會(huì)發(fā)現(xiàn)位于國(guó)外的某網(wǎng)站我們通過(guò)瀏覽器是沒(méi)有辦法訪問(wèn)的,此時(shí)大家可能都會(huì)翻 墻進(jìn)行訪問(wèn),翻 墻的方式主要是找到一個(gè)可以訪問(wèn)國(guó)外網(wǎng)站的代理服務(wù)器,我們將請(qǐng)求發(fā)送給代理服務(wù)器,代理服務(wù)器去訪問(wèn)國(guó)外的網(wǎng)站,然后將訪問(wèn)到的數(shù)據(jù)傳遞給我們。
例2:
A(客戶端)想租C(服務(wù)端)的房子,但是A(客戶端)并不認(rèn)識(shí)C(服務(wù)端)租不到。
B(代理)認(rèn)識(shí)C(服務(wù)端)能租這個(gè)房子所以你找了B(代理)幫忙租到了這個(gè)房子。
這個(gè)過(guò)程中C(服務(wù)端)不認(rèn)識(shí)A(客戶端)只認(rèn)識(shí)B(代理)。
C(服務(wù)端)并不知道A(客戶端)租了房子,只知道房子租給了B(代理)。
正向代理的用途:
(1)訪問(wèn)原來(lái)無(wú)法訪問(wèn)的資源,如google
(2) 可以做緩存,加速訪問(wèn)資源
(3)對(duì)客戶端訪問(wèn)授權(quán),上網(wǎng)進(jìn)行認(rèn)證
(4)代理可以記錄用戶訪問(wèn)記錄(上網(wǎng)行為管理),對(duì)外隱藏用戶信息
反向代理
反向代理,主要用于服務(wù)器集群分布式部署的情況下,反向代理隱藏了服務(wù)器的信息。多個(gè)客戶端給服務(wù)器發(fā)送的請(qǐng)求,Nginx服務(wù)器接收到之后,按照一定的規(guī)則分發(fā)給了后端的業(yè)務(wù)處理服務(wù)器進(jìn)行處理。此時(shí)請(qǐng)求的來(lái)源也就是客戶端是明確的,但是請(qǐng)求具體由哪臺(tái)服務(wù)器處理的并不明確,Nginx扮演的就是一個(gè)反向代理角色。
例1:
A(客戶端)想租一個(gè)房子,B(代理)就把這個(gè)房子租給了他。這時(shí)候?qū)嶋H上C(服務(wù)端)才是房東。
B(代理)是中介把這個(gè)房子租給了A(客戶端)。這個(gè)過(guò)程中A(客戶端)并不知道這個(gè)房子到底誰(shuí)才是房東。他都有可能認(rèn)為這個(gè)房子就是B(代理)的。
反向代理的用途:
(1)保證內(nèi)網(wǎng)的安全,可以使用反向代理提供WAF功能,阻止web攻擊
(2)負(fù)載均衡,通過(guò)反向代理服務(wù)器來(lái)優(yōu)化網(wǎng)站的負(fù)載