前幾天,智象科技的運維工程師在工作實施中遇到了一個因為代理產(chǎn)生的問題,所以去重新溫習(xí)了一下正向代理與反向代理的原理與區(qū)別,在此給大家分享一下。
正向代理(FORWARD PROXY)
是一個位于客戶端和原始服務(wù)器(origin server)之間的服務(wù)器,為了從原始服務(wù)器取得內(nèi)容,客戶端向代理發(fā)送一個請求并指定目標(biāo)(原始服務(wù)器),然后代理向原始服務(wù)器轉(zhuǎn)交請求并將獲得的內(nèi)容返回給客戶端。客戶端必須要進行一些特別的設(shè)置才能使用正向代理。
舉例說明:比如A需要借錢,他知道C有錢,但是他跟C不熟,所以這時候就需要一個中間人B,A找B借錢,B找C借錢,C是不知道這個錢是給誰的,還的時候也是找B還。
反向代理(REVERSE PROXY)
在計算機世界里,由于單個服務(wù)器的處理客戶端(用戶)請求能力有一個極限,當(dāng)用戶的接入請求蜂擁而入時,會造成服務(wù)器忙不過來的局面,可以使用多個服務(wù)器來共同分擔(dān)成千上萬的用戶請求,這些服務(wù)器提供相同的服務(wù),對于用戶來說,根本感覺不到任何差別。在服務(wù)器端接受客戶端的請求,然后把請求分發(fā)給具體的服務(wù)器進行處理,然后再將服務(wù)器的響應(yīng)結(jié)果反饋給客戶端。
舉例說明:還是A需要借錢,但是他不知道誰有錢,他只知道B可以借到錢,所以A向B借錢,B再向C等其他人借錢,還錢的時候,A只要把錢還給B就可以了,A是不知道錢最終還給誰的。
正向代理與反向代理
最簡單的區(qū)別
正向代理隱藏的是用戶,反向代理隱藏的是服務(wù)器
使用場景
知道了正向代理與反向代理,但是,為什么要使用代理呢。以及什么時候使用正向代理,什么時候使用反向代理。
我們需要訪問一些服務(wù)器,但是又不想暴露自身時,就會使用正向代理;反向代理則用于服務(wù)器,便于服務(wù)器分布擴展。
在實際中單個服務(wù)器處理客戶端請求能力有一個極限,當(dāng)請求量過大,則服務(wù)器忙不過來,因此使用多個服務(wù)器來共同分擔(dān)用戶的請求處理,這些服務(wù)器提供相同的服務(wù),對于用戶來說沒有差別。
那么就需要一個負載均衡設(shè)備來分發(fā)用戶的請求到空閑的服務(wù)器上,然后服務(wù)器返回結(jié)果到負載均衡設(shè)備上,負載均衡再將其返回給用戶。
這樣當(dāng)增加/移除某臺服務(wù)器時,只需要修改負載均衡的服務(wù)器列表,而不會影響服務(wù)器;安全。避免ip和端口直接暴露在internet,使主機免于被開采安全漏洞,代理服務(wù)器數(shù)量有限,安全防護更方便。