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

在Windows下使用Apache搭建反向代理+缓存服务器

由于SquidNT,一直到STABLE.27也没把HTTP加速的几个属性移植过来,

导致windows下squid功能缺失。

其实Apache也有类似的功能,2.X中已经作为正式版发布。

用了一下午,研究出Apache的几个代替Squid的方法,供读者参考:

一、软件环境

???????? Apache 2.X + Windows Server 2003或更高版本

二、搭建步骤

???????? 1、安装Apache,并使其能正常运行(如果不会安装,请在BAIDU搜索相关文章)

???????? 2、打开httpd.conf,找到以下几个Module并将其启用(如果没有,可以自行添加)

????????????? mod_proxy.so(module_proxy)

????????????? mod_proxy_http.so(module_proxy_http)

????????????? mod_cache.so(module_cache)

????????????? mod_disk_cache.so(module_disk_cache)

???????? 3、参考以下VirtualHost段,进行设置:

?????????????? <VirtualHost *:80>
????????????????? ServerName bbs.91d2.cn
????????????????? ProxyPass / http://bbs.91d2.cn/
????????????????? ProxyPassReverse / http://bbs.91d2.cn/
????????????????? CacheRoot "d:/apache_cache/"
????????????????? CacheEnable disk /images/
????????????????? CacheDirLevels 2
????????????????? CacheDirLength 1
?????????????? </VirtualHost>

???????????? 其中,ProxyPass和ProxyPassReverse代表原始地址,CacheRoot为缓存目录,需要自行建立,并给Apache进程所在的用户分配NTFS权限,CacheEnable后的第一个参数disk表示用磁盘进行缓存,/images/ 表示需要缓存的目录,如果直接设置为/,可能导致动态脚本被缓存,那就失去了本身的意义。可以添加多个CacheEnable以缓存多个目录。CacheDirLevels和CacheDirLength一般不需要修改,这个表示缓存目录中数据目录的级数和目录名长度。

如果你使用智能解析,需要修改服务器的hosts文件,让目标网站的域名解析到正确的IP,不然可能会造成死循环。

至此,搭建完毕。