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,搜索到以下内容,去掉注释加载相应模块(去掉前面的“#”即可)
#michale proxy config file<IfModule mod_proxy.c>#Forward Proxy(正向代理)ProxyRequests OnProxyVia On#允许本机和以192.168.8前缀IP的主机访问该代理<Proxy *>#注意Deny,Allow之间不要有空格Order Deny,AllowDeny from allAllow 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 5CacheDirLength 3CacheMaxFileSize 1000000CacheMinFileSize 64</IfModule> CacheEnable disk /CacheDefaultExpire 3600CacheMaxExpire 86400# When acting as a proxy, don't cache the list of security updates#CacheDisable /local_files CacheIgnoreCacheControl OnCacheIgnoreHeaders Set-Cookie</IfModule>
<IfModule mod_proxy.c>#Reverse Proxy(反向代理)<Proxy *>Order Deny,AllowDeny from allAllow from 127.0.0.1 192.168.8</Proxy>ProxyRequests Off#proxy settingProxyPass /svnman http://192.168.8.49:8080/svnmanProxyPassReverse/svnman http://192.168.8.49:8080/svnman#此处项目名称/svnman代理时没有变化,session不会丢失,不需要配置下面的属性#ProxyPassReverseCookiePath /svnman /svnman#可以配置多反向代理,添加多对ProxyPass、ProxyPassReverse即可ProxyPass /log http://192.168.8.7:8550/logmanProxyPassReverse/log http://192.168.8.7:8550/logman#此处项目名称/logman代理时为/log,需要配置如下信息,否则session会丢失ProxyPassReverseCookiePath /logman /log#配置跟代理,必需放在最后面,否则其他二级访问的反向代理会失败ProxyPass / http://127.0.0.1:8082/webdemo/ProxyPassReverse/ http://127.0.0.1:8082/webdemo/#此处项目名称 /webdemo/ 代理为 / 跟目录访问,session会丢失,需要配置如下信息ProxyPassReverseCookiePath /webdemo /</IfModule>