理解正向代理与反向代理的区别
2019獨角獸企業重金招聘Python工程師標準>>>
我們介紹了Nginx主要用來做反向代理,可能有些朋友并不很清楚什么是反向代理,本篇文章會介紹下反向代理和正向代理的不同之處:
(一)正向代理
正向代理是一個位于客戶端和目標服務器之間的代理服務器(中間服務器)。為了從原始服務器取得內容,客戶端向代理服務器發送一個請求,并且指定目標服務器,之后代理向目標服務器轉交并且將獲得的內容返回給客戶端。正向代理的情況下客戶端必須要進行一些特別的設置才能使用。
圖示如下:
舉個例子:
小說里面有一些殺手組織,有錢人可以雇傭殺手幫其辦事,這里面的殺手就相當于是一個正向代理。
通常在下面的情況下會用正向代理:
(1)希望隱藏客戶端身份 (目標者不知道幕后操縱著是誰)
(2)客戶端無法訪問某些服務器,需要通過一些代理層間接訪問(操縱著有錢,但是武功沒有目標者高)
(二)反向代理
反向代理正好相反。對于客戶端來說,反向代理就好像目標服務器。并且客戶端不需要進行任何設置。客戶端向反向代理發送請求,接著反向代理判斷請求走向何處,并將請求轉交給客戶端,使得這些內容就好似他自己一樣,一次客戶端并不會感知到反向代理后面的服務,也因此不需要客戶端做任何設置,只需要把反向代理服務器當成真正的服務器就好了。
圖示如下:
舉個例子:
比如去醫院買藥,我們只說出藥的名字,然后由售貨員去指定分類的地方把藥拿回來再給我們,從頭到尾我們不知道這個藥到底放在哪個區域,而這里面售貨員的角色就類似一個反向代理。
通常在下面的情況下會用反向代理:
(1)保護和隱藏原始資源服務器 (不知道藥的位置)
(2)負載均衡 (買藥的人太多了,多增加幾個售貨員來負載均衡,避免一個人忙不過來)
(三)其他
透明代理:
比較類似正向代理的功能,差別在于客戶端根本不知道代理的存在,它改編你的request,并會傳送真實IP(使用場景就是公司限制網絡的訪問)。
比如為了工作效率或者安全,A公司屏蔽了QQ軟件的使用。A公司的員工接上了網絡,但發現無法使用qq。這就是透明代理搗的鬼。公司在內網和外網的中間插入一個透明代理,這個代理會根據規則抓取請求內容,遇到qq的請求我就把這個請求給屏蔽掉,這樣就完成了透明屏蔽。當然了,如果你明白原理,就可以自己搞個正向代理來繞過公司的屏蔽。
參考文章:
http://github.thinkingbar.com/reverseProxy/
http://blog.51cto.com/z00w00/1031287
轉載于:https://my.oschina.net/u/1027043/blog/1592859
總結
以上是生活随笔為你收集整理的理解正向代理与反向代理的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 12月20日学习内容整理:博客系统之me
- 下一篇: html固定table表头的实现思路