1、標準代理服務器(Standard Proxy Cache)
一個標準的代理緩存通常是用來在本地網絡的一台機器上存儲靜態的Web頁面的(html ,image)。當這個頁面被再次請求時,瀏覽器將從本地的代理緩存(Proxy Cache)直接得到它,而不是從源Web Server。瀏覽器明確的被配置使用代理服務器,所有的HTTP請求都直接指向代理服務器的緩存,而不是Web Server。緩存將直接滿足請求(當請求再緩存中有存儲時)或者將請求轉發到目標服務器。
2、透明代理服務器(Transparent Cache)
一個透明的代理所要實現的功能和一個標準代理是一樣的,但是它對於瀏覽器的操作是透明的。瀏覽器不需要明確的配置使用代理服務器。取而代之的是透明代理將截獲網絡通訊,並且將在80斷口的HTTP通訊過濾出來。如果被過濾出來的請求存在於透明代理服務器的緩存中,那麼它將直接被緩存所響應;如果緩存中沒有,那麼這個包將發給目標服務器。在Linux下透明代理是通過iptables和ipchains來截獲網絡通訊的。透明代理被ISPs (Internet 服務提供者)大量的使用,這是因為他們需要無瀏覽器設置的模式。同時,透明代理服務器也是為局域網內建立緩存的一個簡單途徑,因為他不需要外在的同等緩存。
3、反向代理服務器(Reverse Proxy Cache)
反向代理服務器不同於標準的代理服務器和透明代理服務器,它主要是用來減輕Web Server的負載,而不是用來減輕客户端網絡帶寬流量的負載。反向代理服務器可以通過緩存Web Server的靜態內容來保護服務器不出現意想不到的過載現象。反向代理服務器處於internet與Web Server之間並且控制所有要到達Web Server的請求。反向代理服務器截獲所有對Web Server的請求,並對進行了緩存的內容進行響應。這種方法通過減少大量的Web Server所作的實際響應,來提高Web的效率。
以下文章介紹瞭如何使用apache配置反向代理服務器
Apache是世界使用排名第一的Web服務器軟件。它可以運行在幾乎所有廣泛使用的計算機平台上,由於其跨平台和安全性被廣泛使用,是最流行的Web服務器端軟件之一。Apache作為一個反向代理服務器(R-Proxy),可以和WAS、WLS等集成,但不能和IIS集成。
一般來説,要在外網訪問內網的服務器需要在路由上做端口映射。比如路由的 IP 為 192.168.0.1 內網服務器A 的 IP 為 192.168.0.2。
要讓外網通過路由訪問服務器A 的 WEB 頁面,就必須在路由上設置 TCP 80 端口映射。即將外網對路由公網 IP TCP 80 訪問轉移到服務器A 的 192.168.0.2 的 TCP 80 端口上。 這樣,在外網(也就是公網)訪問本局域網的公網 IP http 80 WEB 頁面就是訪問服務器 A 192.168.0.2 的 TCP 80 http WEB 服務。
如果有第二台服務器 B, 或者 A 要開放另外的端口,都必須在路由上再分配一個不同的端口映射到相應的機器的相應端口上。
那麼,如果局域網有兩台以上的服務器呢,對於服務器 A 安裝 Apache 做 WEB 服務(不論是 Win32 還是 UNIX 系統),設置路由將 80 端口映射到 A。對於其他的服務器B、服務器C 可以安裝 Apache 或者 IIS 或者其他可能的 http 服務軟件,並不需要在路由上做端口映射,也不需要 WEB 服務使用特定端口。
甚至也可以服務器A 上另外安裝一個 WEB 服務軟件使用 80 以外的端口。 那麼,關鍵的內容在於對服務器A 上的 Apache 進行設置,做一個反向代理,讓外網可以通過服務器 A 的 Apache 提供的 WEB 代理來訪問和 A 在一個局域網的其他服務器 WEB 頁面。
我使用的是apache2.2.17
首先是Apache的安裝。從http://www.apache.org上下載Apache的安裝程序,雙擊安裝程序進行安裝。安裝好之後屏幕右下方系統托盤處會出現一個紅色的羽毛狀圖標,那就是Apache的控制程序。單擊此圖標以啓動Apache服務器。這時打開IE並在IE的地址欄輸入http://localhost/應當能夠看到Apache的歡迎畫面。
當apache正常啓動後就可以進行配置了。
接下來我們修改Apache的配置文件使其支持HTTP代理服務器功能。用文本編輯器打開httpd.conf文件。該文件位於Apache安裝目錄的 conf目錄下。如果你在安裝Apache的時候沒有改變安裝路徑,那麼它應當位於C:\Program Files\Apache Group\Apache\conf\httpd.conf 。
首先要添加代理服務器模塊。找到下面這幾行:
#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
去掉前面的#號使相應的模塊生效。
然後對於要代理的局域網內每個服務器設置一項:
<VirtualHost 192.168.0.2>
ServerName www.xxx.com
ProxyPass / http://192.168.0.3:88/
ProxyPassReverse / http://192.168.0.3:88/
</VirtualHost>
這部分內容只要加在httpd.conf這個文件下邊即可。
然後在最後加上一句:
ProxyRequests On
192.168.0.2 是服務器 A 的 IP,就是做 Apache 代理的服務器。www.xxx.com 是域名,這個必須能解析到路由公網 IP 的域名。而 http://192.168.0.3:88 是服務器 A 能訪問到的內網 WEB 服務地址。IP 和端口都可以任意指定。
配置完成以後重新啓動apache,就可以起到反向代理服務的作用了。
參考鏈接:維基百科-代理服務器