Apache代理缓存系统(windows apache 2.2.15)

www.net130.com     日期:2010-7-23    浏览次数:
出处:双氧水地带

 

开启apache的(正向)代理功能,只需要下面几句即可,非常简单。
ProxyRequests on
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_module modules/mod_proxy.so


禁止所有人通过代理访问百度 (apache 代理规则)
<Proxy http://www.baidu.com/*>
Order allow,deny
Deny from all
</Proxy>

以下策略只允许192.168.10.1访问163.com ,其他所有的网站都不能访问 (注意:两个proxy的顺序不能反)
<Proxy http://*>
Order allow,deny
deny from all
</Proxy>

<Proxy http://*163.com/*>
Order allow,deny
allow from 192.168.10.1
</Proxy>


基于磁盘缓存的配置:
-------
编译的时候加上参数:–enable-cache、 –enable-disk-cache、–enable-file-cache、 –enable-mem-cache 即可。
如果是windows下则已经默认支持了。只需要把下面几句的注销去掉就好了。
-------
LoadModule cache_module modules/mod_cache.so
LoadModule disk_cache_module modules/mod_disk_cache.so
LoadModule file_cache_module modules/mod_file_cache.so
LoadModule mem_cache_module modules/mod_mem_cache.so

然后在httpd.conf后面加上下面语句即可
================================
CacheDefaultExpire 86400
CacheEnable disk /
CacheRoot "C:\Program Files\Apache Software Foundation\Apache2.2\cache"
CacheDirLevels 2
CacheDirLength 2
CacheMaxFileSize 1048576
CacheMinFileSize 10
================================
上面语句的含义如下:
CacheDefaultExpire: 设定缓存过期的时间(秒),默认是1小时,只有当缓存的文档没有设置过期时间或最后修改时间时这个指令才会生效
CacheEnable:启用缓存,第1个参数是缓存类弄,这里当然是 disk了,第2个参数是缓存路径,指的是 url 路径,这里是缓存所有的东西,直接写上“/”即可,如“/docs”则只缓存 /docs 下的所有文件
CacheRoot:缓存文件所在的目录,运行 Apache 的用户(如daemon 或 nobody)要能对其进行读写,如果不清楚的话可以直接设置成 777,请手动建立该目录并设置好访问权限
CacheDirLevels:缓存目录的深度,默认是3,这里设置为5
CacheDirLength:缓存目录名的字符长度,默认是4,这里设置为5
CacheMaxFileSize 和 CacheMaxFileSize:缓存文件的最大值和最小值(byte),当超过这个范围时将不再缓存,这里设置为 1M 和 10bytes
基于硬盘文件存储的文件基本上就这些内容,设置好后重启 Apache 应该就能使用了。一切正常的话,可以在缓存目录下看到 Apache 自动建立的一些目录和缓存的数据文件。


基于内存的缓存的配置:
在httpd.conf后面加上下面语句即可
=========================
CacheEnable mem /
MCacheMaxObjectCount 20000
MCacheMaxObjectSize 1048576
MCacheMaxStreamingBuffer 65536
MCacheMinObjectSize 10
MCacheRemovalAlgorithm GDSF
MCacheSize 131072
===========================
上面一些指令的意思:

CacheEnable:启用缓存,使用基于内存的方式存储
MCacheMaxObjectCount:在内存中最多能存储缓存对象的个数,默认是1009,这里设置为20000
MCacheMaxObjectSize:单个缓存对象最大为 1M,默认是10000bytes
MCacheMaxStreamingBuffer:在缓冲区最多能够放置多少的将要被缓存对象的尺寸,这里设置为 65536,该值通常小于100000或 MCacheMaxObjectSize 设置的值
MCacheMinObjectSize:单个缓存对象最小为10bytes,默认为1bytes
MCacheRemovalAlgorithm:清除缓存所使用的算法,默认是 GDSF,还有一个是LRU,可以查一下 Apache 的官方文档,上面有些介绍
MCacheSize:缓存数据最多能使用的内存,单位是 kb,默认是100kb,这里设置为128M
保存重启 Apache 基于内存的缓存系统应该就能生效了,根据需要可以使基于内存的存储或硬盘文件的存储方式一起使用,只要指明不同的URL路径即可。

分享道
相关新闻