正向代理:如果把局域網外的 Internet 想象成一個巨大的資源庫,則局域網中的客戶端要訪問 Internet,則需要通過代理服務器來訪問,這種代理服務就稱為正向代理。
反向代理
反向代理中客戶端對代理是無感知的,因為客戶端不需要任何配置就可以訪問,我們只需要將請求發送到反向代理服務器,由反向代理服務器去選擇目標服務器獲取數據后,在返回給客戶端。
此時反向代理服務器和目標服務器對外就是一個服務器,暴露的是代理服務器地址,隱藏了真實服務器 IP 地址。
為什么需要一個反向代理服務器作為一個橋梁呢?考慮這種情況:出於安全的考慮,我們不想把 Server 直接暴露出來,而是放在內網中。這時 Client 在外網無法就無法 Server 了。因此,我們就可以添加一台中間服務器,連接內外網,這樣就可以允許外網用戶訪問,同時可作為防火牆對外部請求進行限制,提高內部服務器的安全性。
除了防火牆外,反向代理服務器還有一個典型的用途就是作為負載均衡服務器,根據目標服務器的工作負荷情況,將請求分發到合適的服務器。
總結
正向代理和反向代理區別總結如下:
- 正向代理是對客戶端的代理,由客戶端設立,客戶端了解代理服務器和目標服務器,但目標服務器不了解真正的客戶端是誰;使用正向代理可達到 突破訪問限制、提高訪問速度、對服務器隱藏客戶端IP等目的;
- 反向代理是對服務器的代理,由服務器設立,客戶端不了解真正的服務器是誰,使用反向代理可達到負載均衡、保障服務端安全、對客戶端隱藏服務器IP等目的。