談到 Proxy 這個用字,一般人想到的就是 HTTP Proxy,也就是可以調整瀏覽器的代理設定指向某一台主機,後續存取任何站台時就會透過該 Proxy Server 代為連線抓取資料,最後回應給瀏覽器最終的資料。
不過傳統的 Proxy Server 架設已經很常見所以許多地方都可以找到這類架設的配置文件。本文將討論比較進階Proxy 代理設定,提供在某些環境下可以透過該配置達成特殊的目的 淺談 proxy 代理的功能
所謂的 Proxy Server,也就是提供給 client 端可以連線到該主機下達特定的命令,然後該 Proxy Server 會依據該命令再連線到指定主機進行資料傳輸溝通,最後把資料的內容再回應給 Client 端即完成了溝通操作。以 UNIX 環境來說,目前廣泛的 Server 服務環境會安裝squid proxy server 進而達成該需求。 就可以達成該需求,該連結存取的網路環境如下圖表示:
如上圖的網路環境來說,在 61.16.1.1 架設 Squid Proxy 服務可提供61.16.1.0/24 的 Client 端為代理伺服器,那後續存取 Internet 的 Web 站台的話就會透過該 Proxy Server 進行代理。傳統該 Proxy 架構來說,由於 Client 端存取 Internet 上的 Web 主機資料是該 Proxy Server 進行代理的,所以可以減少重複的資料抓取請求進而節省對外頻寬的耗費,進而讓網路頻寬能夠更有效益的使用。
在 Firewall 網路架構內常常也會搭配 Proxy Server 區隔網路環境架構,連結存取的網路架構如下表示:
上圖的網路架構來看,內部網路是獨立區隔開的,也就是內部網路無法直接連線到 Internet 上,在 Proxy Server 主機上安裝了 squid 程式之後即可提供 192.168.1.0/24 這些內部 Client 主機代理使用。這個架構來看好處就是除了傳統加速的代理功能外,亦可提供位於私有 IP 區段的內部網路可以獨立外,又能購有連結外部 Internet 存取 Web 站台的功能。 Reverse Proxy 架構
前面剛剛談的都是正向的 Proxy 功能,一般稱呼為 Forward Proxy,也就是 Client 端使用該 Proxy 的服務請求要連線到哪一台主機,該 Proxy Server 忠實的代外連結抓取資料後再傳回給 Client 使用。不過 Proxy Server 的架構有所謂的逆向代理,一般又稱呼為 Reverse Proxy,可以提供將特定的 Web 主機服務獨立區隔開,然後透過 Proxy Server 來連線到這些實際服務機器,達成資料價素與保護實際 Web Server 的功能。如下列的網路架構表示:
以上圖的網路架構來看,也就是有兩台提供 Web服務的機器,其 IP 分別是 192.168.1.1 與 192.168.1.2。由於該 IP 本身為 Private IP 所以外部 Internet 的來源都無法連結存取,所以可以透過 Proxy Server 當中繼代理功能進而對外提供服務,而這個架構一般就是稱呼為 Reverse Proxy。
Reverse Proxy 的好處?
那使用 Reverse Proxy 的好處在哪邊呢?
區隔內部與外部網路,外部主機無法直接連到該 Web Server,
保護內部 Web Server 不受到外部直接連結引起的問題
因為 Proxy 代理架構,所以瀏覽網站的資料都會透過 Proxy Server
進行代理與快取,所以若是要瀏覽抓取的資料已經存在於 Proxy Server
主機時時就不需要再次連結到實際的 Web Server,如此可以減少 Web
Server 的負擔 Reverse Proxy 網路架構配置
架設提供 Reverse Proxy 服務的軟體套件很多,比方傳統 UNIX 架設 proxy 軟體的 squid 程式就可以達成該需求。另外常見用於 Web Server 的 apache 也可以達成相同的功能。
先確認一下目前網路環境架構與 IP 組態配置: