日期:2014-05-17  浏览次数:20823 次

Apache代理配置小试
    blog迁移至:http://www.micmiu.com

      本文作者Michael,永久链接:http://sjsky.iteye.com/blog/1067119       

       Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。
       Apache是通过加载各个模块来提供相应的服务,本文主要详细介绍如何利用apache配置代理服务器。当然Apache可以被配置为正向(forward)和反向(reverse)代理,下面分别从这两方面重点介绍:

提供CHM版参考手册下载:Apache 2.2 简体中文参考手册.chm(金步国翻译)

示例环境为:windows vista+apache2.2.19,以下配置亲测均通过

一、正向代理forward proxy
   [1]、概念及用途
      正向代理是一个位于客户端和目标原始服务器之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标原始服务器,然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理,比如我们经常需要在浏览器中设置代理来访问一些网站。
      正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径。正向代理还可以使用缓冲特性(由mod_cache提供)减少网络使用率。
   [2]、配置及演示
    打开文件conf/httpd.conf,搜索到以下内容,去掉注释加载相应模块(去掉前面的“#”即可)
引用
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

    在文件httpd.conf的末尾加上如下内容:
引用
# module proxy config file
Include conf/extra/httpd-proxy.conf

    下一步,创建文件conf/extra/httpd-proxy.conf,内容如下:
#michale proxy config file
<IfModule mod_proxy.c>
	#Forward Proxy(正向代理)
	ProxyRequests On
	ProxyVia On
	
	#允许本机和以192.168.8前缀IP的主机访问该代理
	<Proxy *>
		#注意Deny,Allow之间不要有空格
		Order Deny,Allow
		Deny from all
		Allow from 127.0.0.1 192.168.8
	</Proxy>
	
	#下面的配置相当于一个二级代理,访问twitter.com的请求,再转给本地代理8580端口
	ProxyRemote http://twitter.com/ http://127.0.0.1:8580
	#ProxyRemoteMatch .*.youtube.com/|.*.twitter.com/ http://127.0.0.1:8580
</IfModule> 

[3]、缓存cache配置
    在文件httpd-proxy.conf中增加如下配置信息:
LoadModule cache_module modules/mod_cache.so

<IfModule mod_cache.c>

	LoadModule disk_cache_module modules/mod_disk_cache.so
	<IfModule mod_disk_cache.c>
		CacheRoot d:/proxycache/
		CacheDirLevels 5
		CacheDirLength 3
		CacheMaxFileSize 1000000
		CacheMinFileSize 64
	</IfModule> 
	CacheEnable disk /
	CacheDefaultExpire 3600
	CacheMaxExpire 86400
	
	# When acting as a proxy, don't cache the list of security updates
	#CacheDisable /local_files 
	
	CacheIgnoreCacheControl On
	CacheIgnoreHeaders Set-Cookie
	
</IfModule> 

     相关配置属性的详细信息请查阅参考手册,如果缓存配置成功,访问页面后会在目录d:/proxycache/ 下生成一系列文件夹和文件

二、反向代理reverse proxy
    [1]、概念及用途
      反向代理正好相反,对于客户端而言它就是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理的命名空间中的内容发送普通请求,接着反向代理将判断向原始服务器转交请求,并将获得的内容返回给客户端,就像这些内容原本就是它自己的一样。

      反向代理的典型用途是将防火墙后面的服务器提供给Internet用户访问。反向代理还可以为后端的多台服务器提供负载平衡,或为后端较慢的服务器提供缓冲服务。另外,还可以启用高级URL策略和管理技术,从而使处于不同web服务器系统的web页面同时存在于同一个URL空间下。
   [2]、配置及演示
    把上面正向代理中的配置文件:conf/extra/httpd-proxy.conf,修改成如下内容:
<IfModule mod_proxy.c>
	#Reve