一、正向代理
先說一正向代理(Forward Proxy),通常普通用戶使用的比較多的,是正向代理。也就是在瀏覽器的網絡連接屬性框中,填寫上一個代理服務器的ip和端口,即可通過代理服務器中轉,去瀏覽網頁。有時候網站對單個 IP 某些操作進行了次數限制,設置代理 IP 訪問,不斷的更改代理 IP 來突破網站限制,也是正向代理。
配置這種代理非常簡單:
1、打開apache的conf,啟用好 proxy 模塊后,加入如下幾行:(全局配置)
1 ProxyRequests On 2 ProxyVia On 3
4 <Proxy *>
5 Order deny,allow 6 Deny from all 7 Allow from 192.168.50.80/24
8 </Proxy>
2、當然也可以把在虛擬主機中進行設置,如下:
開啟虛擬主機,具體方法見上篇博客。再編輯虛擬主機配置文件:
1 <VirtualHost *:80>
2 ServerAdmin test@test.com 3 DocumentRoot /var/www/test 4 ServerName www.test.com 5 ErrorLog logs/dummy-host.example.com-error_log 6 CustomLog logs/dummy-host.example.com-access_log common 7 <Directory "/var/www/test">
8 Options FollowSymLinks 9 AllowOverride None 10 Order allow,deny 11 Allow from all 12 </Directory>
13
14 ProxyRequests On 15 ProxyVia On 16
17 <Proxy *>
18 Order deny,allow 19 Deny from all 20 Allow from 192.168.50.80/24
21 </Proxy>
22 </VirtualHost>
然后保存退出,重啟加載 Apache 服務,現在即可在瀏覽器的網絡連接屬性框中或 QQ 登錄配置中,填寫上 your_apache_server_ip 的 ip 地址,端口是 80,開始用代理了。使用 Apache 提供的代理,也可以加身份驗證,或者設置 ACL 來限制客戶端來源等。這些配置就和普通的 Apache 站點配置一樣。其實關鍵就是要有 ProxyRequests 開啟,功能就已經可以使用了。
二、反向代理
反向代理也是個非常有用的功能。反向代理(Reverse Proxy)方式是指以代理服務器來接受 Internet 上的連接請求,然后將請求轉發給內部網絡上的服務器,並將從服務器上得到的結果返回給 Internet 上請求連接的客戶端,此時代理服務器對外就表現為一個反向代理服務器。常用做網站服務器配置,可以提供從防火牆外部代理服務器到防火牆內部安全內容服務器的加密連接,隱藏后端真實服務器,更加安全。如 負載均衡 ,CDN 緩存都是反向代理。配置方法如下:
1、啟用好 proxy 模塊后,加入下邊一內容:(全局配置)
1 ProxyRequests off 2
3 <Proxy /test>
4 Order deny,allow 5 Allow from all 6 </Proxy>
7 ProxyPass /test http://www.reverse.com/proxy
8 ProxyPassReverse /test http://www.reverse.com/proxy
2、在虛擬主機中進行設置,如下:
類似上面,先開啟虛擬主機設置,在編輯配置文件
1 <VirtualHost *:80>
2 ServerAdmin test@test.com 3 ServerName www.test.com 4 ErrorLog logs/dummy-host.example.com-error_log 5 CustomLog logs/dummy-host.example.com-access_log common 6
7 ProxyRequests Off 8
9 <Proxy /test>
10 Order deny,allow 11 Allow from all 12 </Proxy>
13 ProxyPass /test http://www.reverse.com/proxy
14 ProxyPassReverse /test http://www.reverse.com/proxy
15 </VirtualHost>
三、正向代理和反向代理對比
首先可以明確的是apache在開啟代理的同時,對於同一虛擬主機,只能正向、反向二選一,不能同時開啟正向代理與反向代理。正向代理與反向代理水火不相容。
其次,正向代理是替客戶端做代理,隱藏客戶端在網絡中的位置,反向代理是替應用服務器做代理,隱藏真實服務器在網絡中的位置,進而避免受到攻擊。正向代理隱藏客戶端,保護客戶端信息,反向代理隱藏真實服務器,保護服務器信息。
正向代理的應用
1. 訪問原來無法訪問的資源
2. 用作緩存,加速訪問速度
3. 對客戶端訪問授權,上網進行認證
4. 代理可以記錄用戶訪問記錄(上網行為管理),對外隱藏用戶信息
反向代理的應用
1. 保護內網安全
2. 負載均衡
3. 緩存,減少服務器的壓力