深刻理解:反向代理服务器
很久以前,老王去飯店吃飯,需要先到飯店,七葷八素點好菜,坐等飯菜上桌,然后大快朵頤,不亦樂乎。
有了第三方訂餐外賣平臺(代理),老王懶得動身前往飯店,老王打個電話或用APP,先選好某個飯店,再點好菜,外賣小哥會送上門來。
由于某個品牌的飯店口碑特別好,食客絡繹不絕涌入,第三方訂餐電話也不絕于耳,但是限于飯店接待能力有限,無法提供及時服務,很多食客等得不耐煩了,紛紛鎩羽而歸,飯店老總看著煮熟的鴨子飛走了,心疼不已。
痛定思痛,老總又成立了幾個連鎖飯店,形成一個集群,對外提供統一標準的菜品服務,電話訂餐電話400-xxx-7777,當食客涌入飯店總臺,總臺將食客用大巴運到各個連鎖店,這樣食客既不需要排隊,各連鎖店都能高速運轉起來,一舉兩得,老總樂開了花,并為此種運作模式起名為“反向代理”(Reverse Proxy)。
反向代理
在計算機世界里,由于單個服務器的處理客戶端(用戶)請求能力有一個極限,當用戶的接入請求蜂擁而入時,會造成服務器忙不過來的局面,可以使用多個服務器來共同分擔成千上萬的用戶請求,這些服務器提供相同的服務,對于用戶來說,根本感覺不到任何差別。
反向代理的實現
1)需要有一個負載均衡設備來分發用戶請求,將用戶請求分發到空閑的服務器上
2)服務器返回自己的服務到負載均衡設備
3)負載均衡將服務器的服務返回用戶
以上的潛臺詞是:用戶和負載均衡設備直接通信,也意味著用戶做服務器域名解析時,解析得到的IP其實是負載均衡的IP,而不是服務器的IP,這樣有一個好處是,當新加入/移走服務器時,僅僅需要修改負載均衡的服務器列表,而不會影響現有的服務。
談完反向代理服務,再來談談終端用戶常用的代理服務。
代理
1)用戶希望代理服務器幫助自己,和要訪問服務器通信,為了實現此目標,需要以下工作:
a) 用戶IP報文的目的IP = 代理服務器IP
b) 用戶報文端口號 = 代理服務器監聽端口號
c) HTTP 消息里的URL要提供服務器的鏈接
2)代理服務器可以根據c)里的鏈接與服務器直接通信
3)服務器返回網頁
4)代理服務器打包3)中的網頁,返回用戶。
代理服務器應用場景
場景一
如果不采用代理,用戶的IP、端口號直接暴露在Internet(盡管地址轉換NAT),外部主機依然可以根據IP、端口號來開采主機安全漏洞,所以在企業網,一般都是采用代理服務器訪問互聯網。
那有同學會有疑問,那代理服務器就沒有安全漏洞嗎?
相比千千萬萬的用戶主機,代理服務器數量有限,修補安全漏洞更方便快捷。
場景二
在一個家庭局域網,家長覺得外部的世界是洪水猛獸,為了不讓小盆友們學壞,決定不讓小盆友們訪問一些網站,可小盆友們有強烈的逆反心理,儂越是不讓我看,我越是想看,于是小盆友們使用了代理服務器,這些代理服務器將禁止訪問的網頁打包好,然后再轉交給小盆友,僅此而已。
via:https://www.zhihu.com/question/24723688
總結
以上是生活随笔為你收集整理的深刻理解:反向代理服务器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IP协议详解之子网寻址、子网掩码、构造超
- 下一篇: 0666 | IPC_CREAT