一、正向代理
先说一正向代理(Forward Proxy),通常普通用户使用的比较多的,是正向代理。也就是在浏览器的网络连接属性框中,填写上一个代理服务器的ip和端口,即可通过代理服务器中转,去浏览网页。有时候网站对单个 IP 某些操作进行了次数限制,设置代理 IP 访问,不断的更改代理 IP 来突破网站限制,也是正向代理。
配置这种代理非常简单:
1、打开apache的conf,启用好 proxy 模块后,加入如下几行:(全局配置)
ProxyRequests On
ProxyVia On <Proxy *>
Order deny,allow
Deny from all
Allow from 192.168.50.80/
</Proxy>
2、当然也可以把在虚拟主机中进行设置,如下:
开启虚拟主机,具体方法见上篇博客。再编辑虚拟主机配置文件:
<VirtualHost *:>
ServerAdmin test@test.com
DocumentRoot /var/www/test
ServerName www.test.com
ErrorLog logs/dummy-host.example.com-error_log
CustomLog logs/dummy-host.example.com-access_log common
<Directory "/var/www/test">
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory> ProxyRequests On
ProxyVia On <Proxy *>
Order deny,allow
Deny from all
Allow from 192.168.50.80/
</Proxy>
</VirtualHost>
然后保存退出,重启加载 Apache 服务,现在即可在浏览器的网络连接属性框中或 QQ 登录配置中,填写上 your_apache_server_ip 的 ip 地址,端口是 80,开始用代理了。使用 Apache 提供的代理,也可以加身份验证,或者设置 ACL 来限制客户端来源等。这些配置就和普通的 Apache 站点配置一样。其实关键就是要有 ProxyRequests 开启,功能就已经可以使用了。
二、反向代理
反向代理也是个非常有用的功能。反向代理(Reverse Proxy)方式是指以代理服务器来接受 Internet 上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给 Internet 上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。常用做网站服务器配置,可以提供从防火墙外部代理服务器到防火墙内部安全内容服务器的加密连接,隐藏后端真实服务器,更加安全。如 负载均衡 ,CDN 缓存都是反向代理。配置方法如下:
1、启用好 proxy 模块后,加入下边一内容:(全局配置)
ProxyRequests off <Proxy /test>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /test http://www.reverse.com/proxy
ProxyPassReverse /test http://www.reverse.com/proxy
2、在虚拟主机中进行设置,如下:
类似上面,先开启虚拟主机设置,在编辑配置文件
<VirtualHost *:>
ServerAdmin test@test.com
ServerName www.test.com
ErrorLog logs/dummy-host.example.com-error_log
CustomLog logs/dummy-host.example.com-access_log common ProxyRequests Off <Proxy /test>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /test http://www.reverse.com/proxy
ProxyPassReverse /test http://www.reverse.com/proxy
</VirtualHost>
三、正向代理和反向代理对比
首先可以明确的是apache在开启代理的同时,对于同一虚拟主机,只能正向、反向二选一,不能同时开启正向代理与反向代理。正向代理与反向代理水火不相容。
其次,正向代理是替客户端做代理,隐藏客户端在网络中的位置,反向代理是替应用服务器做代理,隐藏真实服务器在网络中的位置,进而避免受到攻击。正向代理隐藏客户端,保护客户端信息,反向代理隐藏真实服务器,保护服务器信息。
正向代理的应用
1. 访问原来无法访问的资源
2. 用作缓存,加速访问速度
3. 对客户端访问授权,上网进行认证
4. 代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息
反向代理的应用
1. 保护内网安全
2. 负载均衡
3. 缓存,减少服务器的压力