最新更新的文章列表
配置Apache为proxy
2008-01-17 10:29:24.0
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
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>
Order allow,deny
Allow from all
Deny 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>
Order allow,deny
Allow from all
Deny from 127.0.0.1
</Proxy>
的意思是,仅允许本地计算机访问http://www.google.com/,并且禁止本地计算机对于http://www.yahoo.co.jp/r/下的资源的访问。
ProxyBlock的作用是设置对所有使用者都起作用,如
ProxyBlock的作用是设置对所有使用者都起作用,如
ProxyBlock microsoft co.jp www.google.com
组织所有用户通过proxy访问具有microsoft, co.jp, www.google.com特征的网址。
Apache作为WWW服务器软件,在内部提供了HTFP代理功能。下面我们将介绍Apache代理的配置方法:
(1)修改文件/etc/httpd/conf/httpd.conf,在其中添加与代理和缓存相关的功能。与代理缓存有关的关键字如下所示。
httpa.conf文件中与代理缓存有关的关键字
ProxyRequests On/Off 启用或者禁用Apache代理功能
Proxyremote path URL remote server 定义此代理服务器的远程代理。当用户请求与URL匹配时,就使用remote server作为远程代理服务器。
其中remote server的格式是: protocol://hostname[ort],由于Apache只能代理HTTP服务,所以protocol值恒为HTTP
ProxyPass path URL允许把远程服务器镜像到本地服务器中。这时,本地代理服务器好像是远程代理服务器的一个镜像
ProxyBlock word/hostname/domain 代理服务器过滤功能。在ProxyBlock关键字以后定义了一组词语、节点名称和域名。如果用户的HTYP请求中包含了这里的词语、节点名称或者域名,请求将被过滤掉
CacheRoot directory 代理缓存的根目录
CacheSize size代理缓存大小,以KB为单位
CacheGcInterval time每隔time小时检查缓存区,如果缓存占用空间超过CacheSize设置的上限,就删除文件缓存中的文件最多保存time小时,这里定义了文件的过期时间
CacheLastModifiedFactor factor如果没有定义文件过期时间,就按照下面的公式计算:过期时间=最近一次修改的时间间隔*factor
CacheDirLevels levels缓存中子目录的层数
CacheDirLenSth lenSth代理缓存子目录名的字母数
CacheDefauhExpire time 如果文件是通过一个不支持过期时间的协议获取的,则使用time作为过期时间
NoCache word/hostname/domain 在NoCache关键字以后定义了一组词语、节点名称和域名。包含这些词语、节点名称或者域名的HTFP文件将不被缓存
(1)修改文件/etc/httpd/conf/httpd.conf,在其中添加与代理和缓存相关的功能。与代理缓存有关的关键字如下所示。
httpa.conf文件中与代理缓存有关的关键字
ProxyRequests On/Off 启用或者禁用Apache代理功能
Proxyremote path URL remote server 定义此代理服务器的远程代理。当用户请求与URL匹配时,就使用remote server作为远程代理服务器。
其中remote server的格式是: protocol://hostname[ort],由于Apache只能代理HTTP服务,所以protocol值恒为HTTP
ProxyPass path URL允许把远程服务器镜像到本地服务器中。这时,本地代理服务器好像是远程代理服务器的一个镜像
ProxyBlock word/hostname/domain 代理服务器过滤功能。在ProxyBlock关键字以后定义了一组词语、节点名称和域名。如果用户的HTYP请求中包含了这里的词语、节点名称或者域名,请求将被过滤掉
CacheRoot directory 代理缓存的根目录
CacheSize size代理缓存大小,以KB为单位
CacheGcInterval time每隔time小时检查缓存区,如果缓存占用空间超过CacheSize设置的上限,就删除文件缓存中的文件最多保存time小时,这里定义了文件的过期时间
CacheLastModifiedFactor factor如果没有定义文件过期时间,就按照下面的公式计算:过期时间=最近一次修改的时间间隔*factor
CacheDirLevels levels缓存中子目录的层数
CacheDirLenSth lenSth代理缓存子目录名的字母数
CacheDefauhExpire time 如果文件是通过一个不支持过期时间的协议获取的,则使用time作为过期时间
NoCache word/hostname/domain 在NoCache关键字以后定义了一组词语、节点名称和域名。包含这些词语、节点名称或者域名的HTFP文件将不被缓存
文章评论
[以下网友留言只代表其个人观点,不代表中华网的观点或立场]