默认情况下,apache安装完以后,是不允许被cache的。如果外接了cache或squid服务器要求进行web加速的话,就需要在htttpd.conf里进行设置,当然前提是在安装apache的时候要激活mod_cache的模块。
以下简单介绍一下安装与配置的步骤:
1. apache版本:httpd-2.0.49.tar.gz
2. 安装httpd-2.0.49.tar.gz:
# tar –zxvf httpd-2.0.49.tar.gz
# cd httpd-2.0.49
#./configure --enable-cache --enable-disk-cache --enable-mem-cache
#mke
#make install
3. 检验是否安装了cache模块
/usr/local/apache2/bin/apachectl –l
如果有mod_cache.c
mod_disk_cache.c
mod_mem_cache.c
这3个模块,说明该apache可以支持cache了
4.更改httpd.conf的设置
vi /usr/local/apache2/conf/httpd.conf
在末尾添加上:
<IfModule mod_cache.c>
CacheForceCompletion 100
CacheDefaultExpire 3600
CacheMaxExpire 86400
CacheLastModifiedFactor 0.1
</IfModule>
5.设置虚拟目录
然后保存退出。启动apache
6.参数的解释:
mod_cache:
CacheEnable: 启动 mod_cache,其后接两个参数。第一个参数指定快取的种类,应设为 mem (记忆体快取) 或 disk (磁碟快取) 之其一;第二个参数指定使用快取的 URI 路径,如果对整个网站 (或虚拟主机) 进行快取,简单指定为根目录(/) 即可。
CacheForceCompletion: 这个值指定当 HTTP request 被取消时,内容的产生动作要完成的百分比;预设是 60(%)。
CacheDefaultExpire: 指定快取的预设过期秒数;预设值是一小时 (3600)。
CacheMaxExpire: 指定快取最大的过期秒数;预设值是一天 (86400)。
CacheLastModifiedFactor: 用来从回应里 Last Modified 资讯算出 expire date。
计算方式是:
expire period (过期时距) = 最后更新后至今的时间间距 * CacheLastModifiedFactor
而
expire date = 目前时间 + expire period
不过无论如何,过期时间不能超过 CacheMaxExpire 的设定值。
现在。如果用squid对该服务器进行反向代理的话,就可以通过cache 实现web的加速了
修改httpd.conf这个文件
#一个连接的最大请求数量
MaxKeepAliveRequests 10000
#NT环境,只能配置这个参数来提供性能
<IfModule mpm_winnt.c>
#每个进程的线程数,最大1920。NT只启动父子两个进程,不能设置启动多个进程
ThreadsPerChild 1900
每个子进程能够处理的最大请求数
MaxRequestsPerChild 10000
</IfModule>
LoadModule cache_module modules/mod_cache.so
LoadModule disk_cache_module modules/mod_disk_cache.so
LoadModule mem_cache_module modules/mod_mem_cache.so
<IfModule mod_cache.c>
CacheForceCompletion 100
CacheDefaultExpire 3600
CacheMaxExpire 86400
CacheLastModifiedFactor 0.1
<IfModule mod_disk_cache.c>
CacheEnable disk /
CacheRoot c:/cacheroot
CacheSize 327680
CacheDirLength 4
CacheDirLevels 5
CacheGcInterval 4
</IfModule>
<IfModule mod_mem_cache.c>
CacheEnable mem /
MCacheSize 8192
MCacheMaxObjectCount 10000
MCacheMinObjectSize 1
MCacheMaxObjectSize 51200
</IfModule>
</IfModule>
####################################################
參考資料
mod_cache:
CacheEnable: 啟動 mod_cache,其後接兩個參數。第一個參數指定快取的種類,
應設為 mem (記憶體快取) 或 disk (磁碟快取) 之其一;第二個參數指定使用快
取的 URI 路徑,如果對整個網站 (或虛擬主機) 進行快取,簡單指定為根目錄
(/) 即可。
CacheForceCompletion: 這個值指定當 HTTP request 被取消時,內容的產生動
作要完成的百分比;預設是 60(%)。
CacheDefaultExpire: 指定快取的預設過期秒數;預設值是一小時 (3600)。
CacheMaxExpire: 指定快取最大的過期秒數;預設值是一天 (86400)。
CacheLastModifiedFactor: 用來從回應裡 Last Modified 資訊算出 expire
date。計算方式是:
expire period (過期時距) = 最後更新後至今的時間間距 *
CacheLastModifiedFactor
而
expire date = 目前時間 + expire period
不過無論如何,過期時間不能超過 CacheMaxExpire 的設定值。
mod_disk_cache:
CacheRoot: 指定磁碟快取所使用的目錄。
CacheSize: 以 KByte 為單位指定快取使用的磁碟空間大小。
CacheDirLength: 指定各目錄 (的鍵值) 存在於快取階層 (hierarchy) 中所使用
的字元數。
CacheDirLevels: 指定快取的目錄層數; CacheDirLength 與此 CacheDirLevels
設定值相乘不能超過 20。
CacheGcInterval: 指定收垃圾 (Garbage Collection) 的動作間隔時間;單位是
小時。不過根據 Apache2 文件,這個指令還 沒有被實作 。
mod_mem_cache:
MCacheSize: 以 KByte 為單位指定快取使用的記憶體空間大小。
MCacheMaxObjectCount: 指定快取物件數目的最大值;預設值是 1009。
MCacheMaxObjectSize: 指定最大可快取物件的大小,單位是 Byte;預設值是
10000 (Bytes)。
MCacheMinObjectSize: 指定最小可快取物件的大小,單位是 Byte;預設值是 0
(Bytes)。