使用apache代理及缓存的目的:
将远程服务器(没有任何控制访问权限)上发布的服务,利用代理映射到本地服务器(可自由控制)。有效解决跨域问题。
利用缓存可以有效解决远程服务器的部分GET请求,如图片,JS等静态文件响应慢的问题。
配置步骤:
编辑httpd.conf,打开相关模块
# 硬盘缓存模块 LoadModule cache_module modules/mod_cache.so # 内存缓存模块 LoadModule mem_cache_module modules/mod_mem_cache.so # 代理模块 LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_ajp_module modules/mod_proxy_ajp.so LoadModule proxy_balancer_module modules/mod_proxy_balancer.so LoadModule proxy_connect_module modules/mod_proxy_connect.so LoadModule proxy_ftp_module modules/mod_proxy_ftp.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule proxy_scgi_module modules/mod_proxy_scgi.so # 虚拟主机模块 LoadModule vhost_alias_module modules/mod_vhost_alias.so
2.编辑httpd.conf,打开引入虚拟主机配置,也可以直接将虚拟主机配置在httpd.conf,使用include的目的是为了提高虚拟主机配置的可读性方便后期维护。
# Virtual hosts Include conf/extra/httpd-vhosts.conf
3.编辑上一步中的extra/httpd-vhosts.conf,默认的那几个虚拟主机可以删掉,添加新的虚拟主机
<VirtualHost *:80> # 浏览器中输入此服务名,才会访问到此虚拟机 ServerName 127.0.0.1 ErrorLog "logs/dummy-host3.cc.com-error.log" CustomLog "logs/dummy-host3.cc.com-access.log" common # 代理配置 ProxyPass / http://www.baidu.com/ # 反向代理配置,用于处理地址重定向 ProxyPassReverse / http://www.baidu.com/ # 将根路径下的所有请求缓存到服务器硬盘中,也可以配置其它路径 CacheEnable disk / # 设置缓存文件的保存位置 CacheRoot E:/cc/www/proxy # 默认的缓存过期时间,单位:秒 CacheDefaultExpire 86400 # 更多配置项可以参考 http://www.php100.com/manual/apache2/mod/mod_disk_cache.html </VirtualHost>
4.测试,在浏览器中输入http://127.0.0.1看看是否能够打开百度主页了。
提示:当被代理的服务器地址上找不到文件时,apache会在本地服务路径中查找文件,所以只要在本地服务器DocumentRoot下有crossdomain.xml,就不用担心flash在做跨域请求时出错的情况。