正向代理 與 反向代理 這兩個滿常用,但因為只差一個字所以也滿常搞混,這次就特別筆記下來,除了自已看也分享給有需要的人參考。
正向代理(客戶端的代理) Proxy Server
Client -> Proxy -> Server
Server 不會知道 Client端的資訊
可提供訪問限制,有點類及VPN的概念,某主機限定日本IP瀏覽,如果有人在日本奇一台正向代服的主機,且允許台灣IP連線該主機,Client 端就可以透過該主機瀏覽日本的網站。
另一個例子是由於學術網路的IP有限,學生宿舍有上百台電腦不可能每台電腦都設定一個獨立的外網IP,這個時候學校就會架一台 Porxy Server 所有的學生電腦都先用內網的IP先連進Porxy Server後再連到外網主機;這時候校方可以很方便的限制你能瀏覽的網站。
反向代理(主機端的代理) Reverse Proxy
Server -> Reverse Proxy -> Client
Client 不會知道 真實服務的主機資訊
可以做主機端的負載平衡
當有Clinet 連到反向代理主機時 可以依隨機(輪詢) / IP hash / 最少連線(loadding) 來分配連線到兩一台Server來服務該Client
當Client不知道最終服務的主機的真實IP時,就會大大的降低主機被攻擊的機率;此時反向代理的主機防護就變的很重要,因為會變成攻擊的主要目標,不幸被攻擊的話就會造成無法提供正常的主機服務。
另一個例子是 當你打電話給大公司時,通常會有一個總機小姐接聽你的電話,當總機了解到您的需求時會幫你再轉接到相關人士,這個時候總機小姐就是反向代理這個角色,且你也不會知道最後跟您通話的人的真實電話除非他有提供給你(以企業來說通常電話會是固定的號碼 員工有的只有分機號碼)。