轉自:http://blog.csdn.net/panyongcsd/article/details/52403286
一、正向代理
先不說正向代理的概念,舉個栗子:VPN中的代理服務器。
我們作爲客戶端,首先要設置一個代理服務器,指定代理服務器的IP和端口(用戶名密碼),這時就可以訪問本來訪問不了的Google就可以訪問了,這是什麼原理呢?
看圖:
圖1.1
用戶A不能直接訪問服務器B,有可能是DNS解析不了,也有可能是被牆了。這時用戶A想了個辦法,它去聯繫代理服務Z,告訴Z,我想訪問服務器B,Z說好;然後Z去請求了B,拿到了響應,然後把響應返回給了A。
概念:正向代理就是代理服務器替代訪問方去訪問目標服務器,並將目標服務器的響應返回給訪問方
正向代理的作用:
- 翻牆
圖1.2 - 加速訪問
- Cache作用
- 客戶端授權訪問
圖1.3 - 隱藏訪問者的行蹤,肉雞
總結
正向代理是一個位於客戶端和原始服務器直接的服務器,代理服務器對於客戶端是可見的,爲了從原始服務器取得內容,客戶端需要先進行代理配置,然後向代理服務器發送請求並制定目標,之後代理服務器其訪問指定的目標服務器並把響應內容返回給客戶端。
二、反向代理(Reverse Proxy)
反向代理中,客戶端是不知道反向代理服務器的存在的,也不需要進行特別的設置,因爲反向代理服務器對於客戶端而已就像原始服務器一般。
客戶端向反向代理的命名空間(name-space)中的內容發生普通請求,然後反向代理服務器將判斷向哪一個原始服務器轉交(非轉發)請求,並將獲得你 內容返回給客戶端。
反向代理的作用:
- 保護和隱藏原始服務器
圖2.1 - 負載均衡
圖2.2
這時反向代理服務器就是一個前置機,根據流量和原始服務器的負載壓力對請求進行動態調整。