首页主机资讯centos apache2缓存配置技巧

centos apache2缓存配置技巧

时间2025-10-02 17:32:03发布访客分类主机资讯浏览1046
导读:1. 启用必要缓存模块 在CentOS上,Apache2的缓存功能依赖mod_cache(核心缓存框架)、mod_cache_disk(磁盘缓存后端)和mod_expires(过期时间控制)模块。首先通过YUM安装这些模块: sudo yu...

1. 启用必要缓存模块
在CentOS上,Apache2的缓存功能依赖mod_cache(核心缓存框架)、mod_cache_disk(磁盘缓存后端)和mod_expires(过期时间控制)模块。首先通过YUM安装这些模块:

sudo yum install mod_cache mod_cache_disk mod_expires

安装完成后,在Apache配置文件(如/etc/httpd/conf/httpd.conf/etc/httpd/conf.d/cache.conf)中启用模块(CentOS 7及以上版本模块通常通过conf.modules.d目录下的.conf文件启用,无需手动编辑主配置文件):

LoadModule cache_module modules/mod_cache.so
LoadModule cache_disk_module modules/mod_cache_disk.so
LoadModule expires_module modules/mod_expires.so

重启Apache使模块生效:

sudo systemctl restart httpd

2. 配置磁盘缓存(核心静态内容缓存)
磁盘缓存是Apache2最常用的缓存方式,适用于静态资源(如CSS、JS、图片)。在配置文件中添加以下内容:

<
    IfModule mod_cache.c>
    
    <
    IfModule mod_cache_disk.c>
    
        # 启用磁盘缓存,指定缓存路径(可自定义)
        CacheEnable disk /static
        # 缓存根目录(需确保Apache有读写权限)
        CacheRoot "/var/cache/apache2/mod_cache_disk"
        # 缓存目录结构:2级子目录,每级目录名长度为1(优化IO性能)
        CacheDirLevels 2
        CacheDirLength 1
        # 默认过期时间(1小时)
        CacheDefaultExpire 3600
        # 最大过期时间(1天,避免长期不更新)
        CacheMaxExpire 86400
        # 忽略Set-Cookie头(防止缓存带会话信息的页面)
        CacheIgnoreHeaders Set-Cookie
        # 即使资源未修改,也允许缓存(减少回源请求)
        CacheIgnoreNoLastMod On
    <
    /IfModule>
    
<
    /IfModule>
    

注意/static是缓存路径前缀,可根据需求修改(如/images/js);CacheRoot目录需手动创建并赋予权限:

sudo mkdir -p /var/cache/apache2/mod_cache_disk
sudo chown -R apache:apache /var/cache/apache2/mod_cache_disk

3. 设置过期时间(精准控制缓存策略)
通过mod_expires模块为不同文件类型设置过期时间,让浏览器主动缓存资源,减少服务器请求。在配置文件中添加:

<
    IfModule mod_expires.c>
    
    # 启用过期时间控制
    ExpiresActive On
    # 默认过期时间(1年,适用于长期不变的静态资源)
    ExpiresDefault "access plus 1 year"
    # HTML文件(1小时,适合频繁更新的页面)
    ExpiresByType text/html "access plus 1 hour"
    # CSS/JS文件(1周)
    ExpiresByType text/css "access plus 1 week"
    ExpiresByType application/javascript "access plus 1 week"
    # 图片文件(1个月)
    ExpiresByType image/jpeg "access plus 1 month"
    ExpiresByType image/png "access plus 1 month"
    ExpiresByType image/gif "access plus 1 month"
<
    /IfModule>
    

配置后,Apache会在响应头中添加ExpiresCache-Control字段,告知浏览器资源的过期时间。

4. 启用压缩(减少传输体积)
使用mod_deflate模块压缩文本内容(HTML、CSS、JS),降低带宽占用,提升加载速度。在配置文件中添加:

<
    IfModule mod_deflate.c>
    
    # 压缩以下类型的文件
    AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript application/json
    # 排除IE6(兼容性问题)
    BrowserMatch ^Mozilla/4 gzip-only-text/html
    BrowserMatch ^Mozilla/4\.0[678] no-gzip
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
<
    /IfModule>
    

重启Apache后,响应头中会出现Content-Encoding: gzip,表示内容已压缩。

5. 优化KeepAlive(减少连接开销)
KeepAlive允许客户端在一个TCP连接上发送多个请求,减少连接建立和关闭的时间。在配置文件中调整:

# 启用KeepAlive
KeepAlive On
# 每个连接最大请求数(避免单个连接占用过多资源)
MaxKeepAliveRequests 100
# 连接超时时间(5秒,平衡响应速度和资源占用)
KeepAliveTimeout 5

此配置能显著提升并发请求的处理效率,尤其适合静态资源较多的网站。

6. 验证缓存配置
使用curl命令检查响应头,确认缓存是否生效:

curl -I http://yourdomain.com/static/image.jpg

若看到以下头部信息,说明缓存配置成功:

HTTP/1.1 200 OK
Cache-Control: max-age=31536000, public
Expires: Thu, 21 Oct 2026 07:28:00 GMT
Content-Encoding: gzip

其中Cache-ControlExpires字段表示浏览器缓存策略,Content-Encoding: gzip表示内容已压缩。

注意事项

  • 缓存目录权限:确保CacheRoot目录(如/var/cache/apache2/mod_cache_disk)的属主为apache,且具备读写权限(chmod -R 755 /var/cache/apache2/mod_cache_disk)。
  • 敏感内容排除:避免缓存包含Set-CookieAuthorization头的页面(如登录页面),可通过CacheIgnoreHeaders指令设置。
  • 动态内容缓存:若需缓存动态内容(如PHP页面),需结合mod_cache_socache模块和Memcached等后端缓存,但需谨慎配置以避免数据不一致。
  • 定期清理缓存:可通过cron任务定期清理CacheRoot目录(如每月1号凌晨清理):
    0 0 1 * * /bin/rm -rf /var/cache/apache2/mod_cache_disk/*
    

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: centos apache2缓存配置技巧
本文地址: https://pptw.com/jishu/717456.html
centos中tomcat如何监控 centos上如何升级tomcat

游客 回复需填写必要信息