日期:2014-05-16  浏览次数:20847 次

Apache配置正向代理与反向代理

1. 正向代理

配置正向代理很简单,只需要在浏览器的Proxy选项里加入你的Apache配置的vHost主机即可

?

1.1?Apache配置 httpd-vhosts.conf(以Windows下为例)

复制代码
<
VirtualHost 
*:80
>

    ServerAdmin prograsliu@gmail.com
    DocumentRoot "D:/www/test"
    ServerName www.test.com
    ServerAlias test.com
    ErrorLog "logs/test.com-error.log"
    CustomLog "logs/test.com-access.log" common    
    Alias /sublook "D:/www/test/look/sublook/"
    
<
Directory 
"D:/www/test"
>

        Options FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
    
</
Directory
>

    
    #正向代理设置
    ProxyRequests On
    ProxyVia On

    
<
Proxy 
*
>

        Order deny,allow
        Deny from all
        Allow from 127.0.0.1
    
</
Proxy
>

</
VirtualHost
>
复制代码

?

?

现在看正向代理设置那一段

  • ProxyRequests On:开启Apache正向代理
  • ProxyVia On:控制位于代理服务器链中的代理请求的流向

  引用Apache2.2官方文档中对ProxyVia的解释如下:

    1. 如果设置为默认值Off ?,将不会采取特殊的处理。如果一个请求或应答包含"Via: "头,将不进行任何修改而直接通过。
    2. 如果设置为On 每个请求和应答都会对应当前主机得到一个"Via: "头。
    3. 如果设置为Full ?,每个产生的"Via: "头中都会额外加入Apache服务器的版本,以"Via: "注释域出现。
    4. 如果设置为Block ?,每个代理请求中的所有"Via: "头行都将被删除。且不会产生新的"Via: "头。
  • <Proxy *>...</Proxy>:用来控制谁可以访问你的代理
1
 <
Proxy 
*
>

2
     Order deny,allow

3
     Deny from all

4
     Allow from 127.0.0.1

5
 </
Proxy
>

?    此处设置为本机可以使用代理,真正使用的时候就自己设置了

?

1.2 浏览器设置(以FireFox为例)

?

1.3 访问效果

访问 www.sina.com,观察HTTP请求Response:

可以看到,Via:www.test.com,正向代理成功了。

?

2. 反向代理

2.1 Apache设置