系統設計入門: Proxies

ChunJen Wang
jimmy-wang
Published in
Apr 10, 2022

每次聽到名子特別的proxy,其實是網路結構中client-server中間傳遞訊息與紀錄log的server。

「有個不明駭客(躲在proxy)正在破壞我們的server。」

「我們無法查到他的(IP)位置。」

如電影場景的對話,最早是如透過proxy隱藏IP位置,對伺服器進行破壞,我們就來瞭解一下proxy的定位與功能吧!

(Forward) Proxy

經常直接稱呼為proxies。

當Client要與Server溝通時,例如發request過去,就會先透過forward proxy去提出請求。同時,當Server當收到請求時要回覆也會透過此方式回應。

而VPN的基礎結構也如上圖運作方式進行。因為透過Proxy提出,IP位置會被替代為 P,而非顯示原始IP位置(source ip)。

但實質上的VPN與proxy定位差異與功能仍有所不同,可以參考該篇文章:https://vpnreview.com.tw/vpn-tutorial/what-is-proxy/

Proxy的存在也讓內外網結構得以被區隔出來:

Source: https://www.lccnet.com.tw/commercial/e-paper/200803/new-5.html

如上右圖架構,因為中間夾層多了proxy server內網無法直接連上外部網路。

Proxy好處:

  1. 確保匿名機制:因透過proxy收到請求,server端將不知道由誰發問。
  2. 過濾請求:可以透過proxy server就將部分請求篩掉。(也可以協助修正request,像是改變header或進行加解密等服務)
  3. 過濾回應:同理過濾請求,回應的內容也可由proxy設立篩選。
  4. 可以設計caching在proxy server上,降低原server loading。

Reverse Proxy

但特殊情境時,對於Client來說還是發出request,但對client端來說並不知道背後有幾台server提供服務,此時,Reverse Proxy相當於扮演load balancer角色。

最常被用來作為reverse proxy的server叫做nginx(唸做 engine X)

Reverse Proxy好處:

  1. 可以用作load balancer,不管client有多少,由中間reverse proxy分配request給實際執行的server。
  2. 確保server端匿名性。
  3. 可以進行過濾請求/回應。(同proxy機制)
  4. 可以設計caching。(同proxy機制)

--

--

jimmy-wang
jimmy-wang

Published in jimmy-wang

一位經過400日金融業商業分析師的洗禮,決心出走,再次朝向資料分析路前行,希望有天能和它成為好朋友。

ChunJen Wang
ChunJen Wang

Written by ChunJen Wang

嗨,歡迎你的到來,我目前在銀行擔任DS。過去曾做過銀行大型專案BA,也曾在轉職科技業DE中踢了鐵板,相信每一個人都有自己要走的路,而努力的過程,可以讓我們離心中理想更接近,如果我的文章能帶給你一些啟發與幫助,別忘了幫我在文章底下按下拍手~^^