正向代理
目前國內無法訪問google,但是我們有時說掛個代理,然後就能順利訪問,而這種代理模式就是正向代理。假如我們在香港有一臺伺服器,這臺伺服器是能訪問google的,而國內無法直接訪問谷歌,但是可以訪問香港的伺服器。每次我們請求香港伺服器,香港伺服器拿到我們請求以後,再去訪問google伺服器,google伺服器把響應返回給香港伺服器,香港伺服器再把響應返回給我們。這樣我們就能順利的訪問google了。
正向代理最大的特點是伺服器只清楚請求來自哪個代理伺服器,而不清楚來自哪個具體的客戶端,正向代理模式遮蔽或者隱藏了真實客戶端資訊。
但是如果過多的客戶端使用代理,導致代理伺服器頻繁請求google,而google可能認為代理伺服器是爬蟲,會做一些反扒機制,這樣客戶端就無法正常訪問,所以有時候代理伺服器會告訴google我是一臺代理伺服器。
一般來說代理分為三種,即透明代理,匿名代理和高匿名代理。
- 透明代理,代理伺服器暴露了客戶端真實的資訊。
- 匿名代理,隱藏了客戶端資訊,但是會宣告自己是代理伺服器。
- 高匿名代理,隱藏了客戶端資訊,也不會宣告自己是代理伺服器,目標伺服器不知道是否使用了代理,更不知道客戶端真實資訊
反向代理
例如淘寶,每天訪問量很大,不可能只用單個伺服器處理所有業務,於是出現了分散式部署。也就是通過部署多臺伺服器來解決訪問人數限制的問題。
客戶端請求taobao.com,DNS伺服器把域名解析到nginx伺服器上(簡單的這麼理解),nginx伺服器接收到之後,按照一定的規則分發給了後端的業務處理伺服器進行處理了。
反向請求的來源也就是客戶端是明確的,但是請求的具體由哪臺伺服器處理並不明確,nginx扮演的就是一個反向代理角色。
反向代理隱藏了具體處理業務的伺服器資訊。
總結
正向代理,相對來說,目標伺服器不清楚客戶端資訊,請求是由代理伺服器發起。
反向代理,客戶端不清楚具體是由哪臺伺服器處理業務的。比如我們訪問淘寶,並不關心是具體哪臺伺服器處理了我們業務,我們只知道訪問了taobao.com