当前位置: > Linux服务器 > apache >

将Apache配置为代理服务器的方法

时间:2015-08-03 00:35来源:linux.it.net.cn 作者:IT

设置代理

        假设apache 安装在/usr/local/apache2,设环境变量 $APACHE_HOME=/usr/local/apache2。 打开$APACHE_HOME/conf/httpd.conf,添加如下配置:

?
1
2
3
ProxyRequests on
ProxyRemote * http://proxy_ip:proxy_port
ProxyBlock <word/host/domain list>

ProxyRemote 定义此SERVER的远程代理,如果能直接连Internet,则不需要设置。 *表示对所有请求都使用远程。ProxyBlock定义哪些站点的请求被PROXY阻断,比如

?
1
ProxyBlock 123.com  www.ftt.net ffff

表示凡是在域名中出现ffff,123.com以及 域名是www.ftt.net的站点都会被Proxy阻断,导致无法访问。 

至此,Proxy设置完成

设置缓存

打开$APACHE_HOME/conf/httpd.conf 

1)CacheRoot <diretectory>定义缓存存放的位置 , 比如

?
1
CacheRoot /var/cache/httpd

就是说所有的缓存都会放在/var/cache/httpd目录下面。 

2)CacheSize <size> 定义缓存区大小,以KB为单位。 

 
3) CacheGcInterval <time> , 每隔<time>小时检查缓存区,如果已经超过CacheSize就删除文件。缺省是4 

 

4)   CacheMaxExpire <time>      HTTP文件最多被保持<time>小时。缺省是24 

5)CacheLastModifiedFactor <factor> 定义HTTP文件失效因子,缺省是0.1 

意思是说失效期=离最近一次修改的时间间隔 * <factor>,比如距离最近一次修改的时间是5小时, 那么5X0.1=0.5小时后缓存失效。 

6)  CacheDirLevels    定义缓存子目录层数,缺省是1 

7)  CacheDirlength    设置缓存子目录名字的长度,缺省是1(即所有子目录的名字都是由一个字母组成)

8)  NoCache <word/host/domain list> 定义哪些站点不要缓存。 

比如

?
1
NoCache 123.com  www.ftt.net ffff

 表示凡是在域名中出现ffff,123.com以及域名是www.ftt.net的站点都会不被PROXY缓存。 

下面是我在本地服务器上的部分配置, 仅供参考:
?
1
2
3
4
5
6
7
ProxyRequests on 
CacheRoot /var/cache/httpd 
CacheSize 5000 
CacheGcInterval 4 
CacheMaxExpire 24 
CacheLastModifiedFactor 0.1 
CacheDefaultExpire 1

规定哪些IP地址可以使用PROXY SERVER,哪些不可以 
?
1
2
3
4
5
6
7
<Directory proxy:*> 
    <limit GET PUT DELETE CONNECT OPTIONS> 
        order deny allow 
        deny  from [不可以使用Proxy Server的IP地址或者节点名] 
        allow from [可以使用Proxy Server的IP地址或者节点名] 
    </limit> 
</Directory>

 

设置用户的浏览器使用PROXY 
   略

如果需要给代理添加验证,请参考: http://stackoverflow.com/questions/724599/setting-up-an-apache-proxy-with-authentication (责任编辑:IT)
------分隔线----------------------------