前幾天,智象科技的運維工程師在工作實施中遇到了一個因為代理產生的問題,所以去重新溫習了一下正向代理與反向代理的原理與區別,在此給大家分享一下。
正向代理(FORWARD PROXY)

是一個位于客戶端和原始服務器(origin server)之間的服務器,為了從原始服務器取得內容,客戶端向代理發送一個請求并指定目標(原始服務器),然后代理向原始服務器轉交請求并將獲得的內容返回給客戶端。客戶端必須要進行一些特別的設置才能使用正向代理。
舉例說明:比如A需要借錢,他知道C有錢,但是他跟C不熟,所以這時候就需要一個中間人B,A找B借錢,B找C借錢,C是不知道這個錢是給誰的,還的時候也是找B還。
反向代理(REVERSE PROXY)

在計算機世界里,由于單個服務器的處理客戶端(用戶)請求能力有一個極限,當用戶的接入請求蜂擁而入時,會造成服務器忙不過來的局面,可以使用多個服務器來共同分擔成千上萬的用戶請求,這些服務器提供相同的服務,對于用戶來說,根本感覺不到任何差別。在服務器端接受客戶端的請求,然后把請求分發給具體的服務器進行處理,然后再將服務器的響應結果反饋給客戶端。
舉例說明:還是A需要借錢,但是他不知道誰有錢,他只知道B可以借到錢,所以A向B借錢,B再向C等其他人借錢,還錢的時候,A只要把錢還給B就可以了,A是不知道錢最終還給誰的。
正向代理與反向代理
最簡單的區別
正向代理隱藏的是用戶,反向代理隱藏的是服務器
使用場景
知道了正向代理與反向代理,但是,為什么要使用代理呢。以及什么時候使用正向代理,什么時候使用反向代理。
我們需要訪問一些服務器,但是又不想暴露自身時,就會使用正向代理;反向代理則用于服務器,便于服務器分布擴展。
在實際中單個服務器處理客戶端請求能力有一個極限,當請求量過大,則服務器忙不過來,因此使用多個服務器來共同分擔用戶的請求處理,這些服務器提供相同的服務,對于用戶來說沒有差別。
那么就需要一個負載均衡設備來分發用戶的請求到空閑的服務器上,然后服務器返回結果到負載均衡設備上,負載均衡再將其返回給用戶。
這樣當增加/移除某臺服務器時,只需要修改負載均衡的服務器列表,而不會影響服務器;安全。避免ip和端口直接暴露在internet,使主機免于被開采安全漏洞,代理服務器數量有限,安全防護更方便。