/ 中存储网

配置Apache实现proxy代理功能

2013-09-21 11:49:01 来源:itjs.cn

apahce可以配置为proxy使用,涉及的模块为mod_proxy.so,mod_proxy_connect.so,

mod_proxy_http.so和mod_proxy_ftp.so.其中mod_proxy.so是开启后面三个功能的基本模块,如果需要开通proxy功能,则mod_proxy.so必须加入到apache的运行空间中。

在win平台下,对apache一般都是采用二进制文件进行的直接安装,此时这些.so模块都已经编译完成,并安装在apache主目录的modules文件夹中。

在linux/unix中,一般采用代码包编译的方式进行安装,在进行configure配置的时候需要把上述模块编译进apache的核心模块中,或者编译成DSO的形式动态调用。

基本配置步骤:

在完成上述步骤后,主要的工作就是修改apache的http.conf这个配置文件了。

在http.conf中删除下面四条语句的#,apache启动时进行dso模块的加载:

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

mod_proxy.so必须有效.根据不同的使用目的,可以有选择性的使用后面三个dso的功能。

connect.so 提供对 HTTP 的 CONNECT 方法的支持,主要用于处理 通过代理服务器的隧道 SSL 请求。

http.so 提供代理HTTP请求的功能。但不提供任何缓存的能力,缓存功能需要mod_cache模块提供。

ftp.so 提供代理ftp请求的功能。

然后在http.conf中加入 ProxyRequest On 这么一句话,启动apache,此时的apache就可以具有proxy的功能了。

访问控制配置:

对proxy的访问控制是通过<proxy>和ProxyBlock两个指令来实现的.<proxy>指令对特定的用户进行限定,ProxyBlock则是全局设置,对所有用户都起作用。例子如下。

<Proxy *>

Order allow,deny

Allow from all

Deny from 127.0.0.1

</Proxy>

此配置的意思是,允许除本地计算机之外的所有计算机访问代理。

<Proxy http://www.google.com/>

Order deny,allow

Deny from all

Allow from 127.0.0.1

</Proxy> <Proxy http://www.yahoo.co.jp/r/*>

Order allow,deny

Allow from all

Deny from 127.0.0.1

</Proxy> 组织所有用户通过proxy访问具有microsoft, co.jp, www.google.com特征的网址。