商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > 如何配置Apache2的缓存机制

如何配置Apache2的缓存机制

  发布于2026-07-14 阅读(0)

扫一扫,手机访问

说真的,Apache2的缓存机制一旦配置好,效果立竿见影。它主要靠mod_cachemod_cache_disk这两个模块来完成,能让动态内容被稳稳地缓存下来,网站性能自然就上去了。这里整理了一份实操指南,照着走就行。

如何配置Apache2的缓存机制

1. 启用必要的模块

首先,得把mod_cachemod_cache_disk这两个模块激活。命令很简单,直接运行下面这几行:

sudo a2enmod cache
sudo a2enmod cache_disk
sudo systemctl restart apache2

这一步是基础,不启用后面什么都玩不转。

2. 配置缓存

模块启用后,就该在Apache配置里设置缓存参数了。通常,你可以在 /etc/apache2/conf-a vailable/cache.conf 这个文件里操作。如果没有这个文件,自己新建一个就行。

创建或编辑缓存配置文件

sudo nano /etc/apache2/conf-a vailable/cache.conf

添加缓存配置

在文件里把下面这段代码贴进去:


    
        CacheEnable disk /my-cache
        CacheRoot "/var/cache/apache2/mod_cache_disk"
        CacheDirLevels 2
        CacheDirLength 1
        CacheDefaultExpire 3600
    



    ExpiresActive On
    ExpiresByType text/html "access plus 1 hour"
    ExpiresByType text/css "access plus 1 week"
    ExpiresByType application/ja vascript "access plus 1 week"
    ExpiresByType image/jpeg "access plus 1 month"
    ExpiresByType image/png "access plus 1 month"
    ExpiresByType image/gif "access plus 1 month"

配置说明

  • CacheEnable disk /my-cache:开启磁盘缓存,这里给缓存起了个名字叫 /my-cache
  • CacheRoot:指定缓存文件存到哪个目录。
  • CacheDirLevelsCacheDirLength:这两个参数决定了缓存目录的层级结构,简单说就是怎么在硬盘上组织这些缓存文件。
  • CacheDefaultExpire 3600:默认缓存过期时间设为1小时,如果文件没特别指定,就按这个来。
  • 后面的 ExpiresByType 部分,则是针对不同类型的文件(比如HTML、CSS、图片)分别设置过期时间,这样更精细。

3. 应用缓存配置

配置写好了,保存并关闭文件。然后运行下面命令,让配置生效:

sudo a2enconf cache
sudo systemctl restart apache2

别急着收工,重启一下Apache,配置才算真正加载进去。

4. 配置特定目录的缓存

如果只想对站点的某个特定目录开启缓存,可以在该目录的 .htaccess 文件里,或者直接在虚拟主机配置里加点缓存指令。

.htaccess文件中添加缓存指令


    
        CacheEnable disk /my-cache
        CacheIgnoreHeaders Set-Cookie
        CacheIgnoreNoLastMod On
        CacheMaxExpire 86400
        CacheMinExpire 600
        CacheLastModifiedFactor 0.5
        CacheDefaultExpire 3600
    

在虚拟主机配置文件中添加缓存指令

编辑你的虚拟主机配置文件(通常在 /etc/apache2/sites-a vailable/ 目录下),然后加入类似这样的内容:


    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html

    
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted

        
            
                CacheEnable disk /my-cache
                CacheIgnoreHeaders Set-Cookie
                CacheIgnoreNoLastMod On
                CacheMaxExpire 86400
                CacheMinExpire 600
                CacheLastModifiedFactor 0.5
                CacheDefaultExpire 3600
            
        
    

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

相比之前的全局配置,这部分多了几个参数,比如 CacheIgnoreHeaders Set-Cookie 意思是忽略掉Set-Cookie头,避免缓存带cookie的响应;CacheMaxExpireCacheMinExpire 则分别设定了缓存过期时间的上限和下限,让缓存策略更灵活。

5. 测试缓存

配置都搞定了,总得验证一下效果。最简单的方式,是用浏览器的开发者工具,或者直接命令行里用 curl 查看响应头:

curl -I http://yourwebsite.com

如果配置成功,你应该会看到类似下面的响应头信息:

HTTP/1.1 200 OK
Date: Wed, 21 Oct 2023 07:28:00 GMT
Server: Apache/2.4.41 (Ubuntu)
Cache-Control: max-age=3600, public
Expires: Wed, 21 Oct 2023 08:28:00 GMT
...

看到 Cache-ControlExpires 头出现了,就说明缓存已经生效,静态资源被稳稳地缓存起来了。

这套流程走下来,Apache2的缓存机制基本就配置好了,网站性能提升是肉眼可见的。

本文转载于:https://www.yisu.com/ask/2343193.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注