Proxy:正向及反向代理 === 因為最近工作上常看到資深同事跟主管,在群裡老是proxy來proxy去的,雖然對這些詞彙早已感到不陌生,但具體要我說出個所以然,還真的有點強人所難。因此,這週日下午花點時間上網認識了關於proxy的一些基本概念,在這邊記錄一下,希望有助於提升自己身為軟體工程師的Common Sense。 共通點 --- 在深入理解proxy的知識前,我一直以為proxy講的就是所謂的「反向代理 (reverse proxy) 」,但事實上反向代理只是proxy的其中一個形式,除此之外還有與之相反的「正向代理 (forward proxy) 」。雖然從名稱上來看,這兩者似乎是完全相反的概念,但其實核心的功能十分相似,大致可以區分為下列幾種用途: 1. 提高客戶端訪問資源的速度(緩存靜態資源)。 2. 保護真實的IP資訊。 3. 控制請求訪問的權限。 正向代理 --- 而它兩個最大的差異點在於代理方向的不同,正向代理是用於保護、代理客戶端的資訊,使用者在瀏覽器訪問特定網站時,透過代理伺服器一來可以突破某些網路限制(如防火牆、境外資源等等),進而有辦法連到原本無法訪問的資源,二來也可以在訪問時隱藏自己真實的IP以及瀏覽的足跡。 反向代理 --- 反向代理的運作方式則是用來服務伺服器端的需求。首先,部署一個反向代理的伺服器作為後端服務的單一入口,可以確保來自客戶端的請求無法取得後端伺服器真實的IP資訊,以避免受到外部的惡意攻擊,其後很重要的是,反向代理在分布式架構中非常好地實現了負載均衡的職責,面對數以億計的大量請求,代理伺服器會適當地將請求分配到後端配置的伺服器叢集,使得每台伺服器都可以獲得合理的工作量,不會造成某台機器過勞死的現象。 總之 --- 其他更深入的概念還不算太熟悉,尤其對於實務上該如何配置和部署反向代理伺服器,這點是完全毫無著墨,期待不久後可以透過Side Project來實作。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up