使用apache代理及缓存的目的:

  1. 将远程服务器(没有任何控制访问权限)上发布的服务,利用代理映射到本地服务器(可自由控制)。有效解决跨域问题。

  2. 利用缓存可以有效解决远程服务器的部分GET请求,如图片,JS等静态文件响应慢的问题。


配置步骤:

  1. 编辑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在做跨域请求时出错的情况。