正向代理和反向代理

一、概念:

1、正向代理:

首先舉例說明:如果我有兩臺機器,一臺是內網IP不能訪問某網站(如www.qq.com),另外一臺是可以訪問這個網站,那麼我就可以將能訪問騰訊的機器作爲代理服務器,讓不能上網的機器通過這個代理服務器去連接騰訊網站。

原理:正向代理是針對用戶和後端真實服務器的,用戶要真正訪問的是後端服務器,但後端的服務器是不知道用戶要訪問它的,而代理服務器就作用於用戶和後端服務器之間。當用戶訪問代理服務器的時候,代理服務器收到用戶的請求,就會往後臺服務器發送數據請求,後端的真正服務器收到後進行處理,並返回給代理服務器,代理服務器再把請求結果傳給用戶。

2、反向代理:

還是舉例說明:如我有兩臺服務器,一臺是內網服務器裝有自己公司的網站,另外一臺服務器是外網,其他用戶是可以和外網服務器聯通的。那麼就可以將外網服務器作爲內網服務器的反向代理。當用戶去訪問外網服務器時,實際訪問的是內網服務器發送的資源。

工作原理:反向代理是針對代理服務器和後端真實服務器的。用戶其實是不知道後端還有真實服務器存在,只知道自己訪問的網站是就是自己想要的服務器網站(代理服務器)。當用戶訪問代理服務器時,反向代理服務器就會向後端真實服務器發送請求,真實服務器收到請求後會返回給反向代理服務器,反代器在返回給用戶。這個過程防火牆是不允許後端的服務器向外端發送資源,只能通過反向代理服務器。


二、軟件

說到了代理,就不得不說明一下代理軟件。

常使用的就是nginx和squid。

nginx:

1、nginx不存在正向代理一說,即可以做反向代理,讓外面的用戶通過一個外網服務器去訪問某個不能訪問的網站,或者也可以理解爲:外面的用戶訪問外網服務器,外網服務器不能提供請求結果,便將請求分給自己的內網服務器去處理。

需在vhosts虛擬主機下配置proxy.conf代理。

server 
{ listen 80;
   server_name www.qq.com;
   location /
   { proxy_pass http://123.151.148.111;
   }
}

2、nginx功能很多,還可以做負載均衡。即和lvs、keepalived具有同等作用。

3、nginx可以設置用戶認證、301跳轉、日誌切割、指定不記錄某些靜態文件、訪問控制、user_agent等

4、nginx處理靜態文件能力很強,很多時候使用tomcat+nginx結合,因爲tomcat處理靜態資源很慢。也可以使用Apache+nginx,但這倆的網站都是針對php的,tomcat是針對java而研發的。

http://biancheng.dnbcw.info/linux/387684.html


2、squid

另一款代理軟件就是squid了,squid既可以做正向又可以做反向代理。

還擁有緩存功能進行CDN加速,減小帶寬的使用,減小cpu的使用壓力。

具體請參考:http://blog.csdn.net/wzqzhq/article/details/53426442


正向反向代理其他理解:http://blog.csdn.net/m13666368773/article/details/8060481


發佈了45 篇原創文章 · 獲贊 23 · 訪問量 24萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章