正向代理與反向代理的學習筆記

在做JAVA WEB開發的過程中,經常要使用到Nginx來完成一個稱爲反向代理的工作,一直也沒去細究反向代理是什麼,更沒有去了解正向代理是什麼,經過簡短的學習來記錄一下自己對兩者的理解。

 

一、正向代理

根據網上的資料,我個人的理解爲,正向代理最大的用處就是一個所謂的跳板。

一個最簡單的例子就是“翻牆”。當我們想要去瀏覽類似google這種網站的時候。我們再普通的直連網內是無法訪問到的。

但是如果這時,有一個國內的服務器正好可以訪問到google。而且我們又可以去訪問到這個服務器,那麼我們就可以將這個服務器作爲跳板,向這個服務器去請求獲取google的數據。這就實現了一個正向代理。

由於我們自己要去決定是不是要通過代理服務器來訪問google。所以必要的配置是必不可少的。這也就限制了我們必須自己配置好代理服務器的一些信息,去訪問他。

以下是根據我自身理解去畫出的一個簡略的圖。

在此圖中,用戶機可以比喻爲我們自身,正向代理服務器就是那個可以訪問到google的那個服務器了。那麼當然內容服務器就是google了。

對於正向代理來說,如果不做特殊配置,那麼內容服務器並不知道是不是代理服務器去訪問的他。也就是說正向代理服務器對於內容服務器來說,是完全透明的。對於google來說,可能只是在同一時間內許多相同的IP在訪問他而已。

所以我們可以大概的說,正向代理服務器與用戶機是爲一體的。

 

二、反向代理

反向代理,也就是我們所熟悉的Nginx所實現的功能。

以下是反向代理的簡略圖。

相對於正向代理來說。反向代理是對用戶來說完全透明的。

當我們在服務器上使用Nginx的時候,用戶只是去訪問我們所告訴他們的一個端口,他們並不清楚我們內部對他們的請求做了哪些轉發。

用戶省去了他們的配置的過程。但是取而代之的則是我們需要對反向代理服務器(Nginx)進行配置。

在我的理解內,反向代理服務器的作用主要是對請求的分發。

對分發進行簡單的處理,也就可以實現類似負載均衡,安全配置等功能。

在使用反向代理的時候,我們的內容服務器有可能不是單獨的一個實例,而是實例的集羣。

我們通過反向代理的配置,來讓這些請求平均的發送到每一個實例上來實現負載均衡。

另外我們也可以讓請求首先指向一個安全服務器來進行安全的配置。

總結起來,我認爲反向代理服務器是與內容服務器融爲一體的。因爲他對用戶機完全透明。

 

這就是我對代理的粗略理解,歡迎批評指正

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章