1. 程式人生 > >代理伺服器(理解篇)

代理伺服器(理解篇)

先舉個栗子,你想創業,沒有資金,然後你去找馬雲投資,可想而知,你一定碰壁了,後來你突然想到動用自己的關係,發現自己大學老師是馬雲的同學,之後進過一系列操作,你順利拿到了錢。這時候馬雲是不知道誰拿走錢的,老師就充當了代理的角色。

我們通常所說的代理,指的是正向代理,正向代理過程中,隱藏了真實的客戶端,服務端是不清楚具體那個客戶端請求的,客戶端的所有請求都是通過代理來執行的,某些上網工具就是扮演了很典型的正向代理的角色。在國內,我們如果訪問www.google.com時,大家都知道這是不行的,訪問不了,被殘忍的block,這時我們就可以在國外搭建一臺伺服器,讓他幫我們去訪問google,他得到結果後再返回給我們。

正向代理示意圖

關於反向代理:

再舉一個例子,我們給聯通總機10010打電話(我們要求接通人工客服),這時我們不知道對面是誰在跟我們對話,我們也不需要知道,也不關心,我們關心的只是他是否能夠給我們解決問題。這裡,10010總機就是代理角色。

反向代理隱藏了真實的服務端,當我們請求www.baidu.com時,web真實的伺服器有好幾十萬臺,具體是那一臺給我們提供服務,我們不清楚,也不需要了解,我們只需要知道代理伺服器是哪個就行了,而這裡代理伺服器就是www.baidu.com。Nginx就是很好的反向代理伺服器,用來做負載均衡。

反向代理示意圖

總結:

兩者的代理物件不同,正向代理代理的物件是客戶端,反向代理代理的是服務端。