温馨提示×

linux apache如何启用缓存

小樊
47
2026-10-29 04:19:32
栏目: 智能运维

在 Linux 上的 Apache(通常是 httpd 或 apache2)启用缓存,常见有几种方式,下面按使用场景给你说明,最常用的是 mod_cache(服务端缓存) 和 浏览器缓存(Expires / Cache-Control)。


一、启用 Apache 自带缓存(mod_cache)

1. 启用相关模块

# CentOS / RHEL
sudo yum install mod_cache mod_cache_disk
sudo httpd -M | grep cache

# Ubuntu / Debian
sudo a2enmod cache
sudo a2enmod cache_disk
sudo systemctl restart apache2

2. 配置磁盘缓存(最常用)

编辑配置文件(如 /etc/httpd/conf.d/cache.conf 或 /etc/apache2/conf-available/cache.conf):

<IfModule mod_cache.c>
    CacheEnable disk /
    CacheRoot /var/cache/apache2
    CacheDirLevels 2
    CacheDirLength 1
    CacheDefaultExpire 3600
    CacheMaxExpire 86400
    CacheIgnoreHeaders Set-Cookie
</IfModule>

创建缓存目录:

sudo mkdir -p /var/cache/apache2
sudo chown -R apache:apache /var/cache/apache2   # CentOS
sudo chown -R www-data:www-data /var/cache/apache2  # Ubuntu

重启 Apache:

sudo systemctl restart apache2
# 或
sudo systemctl restart httpd

✅ 适合:动态页面、反向代理、API 缓存


二、启用浏览器缓存(Expires / Cache-Control)

1. 启用模块

# Ubuntu
sudo a2enmod expires
sudo a2enmod headers

# CentOS
sudo yum install mod_expires mod_headers

2. 配置静态资源缓存

<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresByType text/css "access plus 7 days"
    ExpiresByType image/jpeg "access plus 30 days"
    ExpiresByType image/png "access plus 30 days"
    ExpiresByType application/javascript "access plus 7 days"
</IfModule>

<IfModule mod_headers.c>
    Header set Cache-Control "max-age=604800, public"
</IfModule>

✅ 适合:图片、CSS、JS 等静态资源


三、反向代理缓存(mod_proxy + cache)

CacheEnable disk /
ProxyPass / http://backend/
ProxyPassReverse / http://backend/

四、验证缓存是否生效

curl -I http://localhost/

看是否有:

Age:
X-Cache: HIT
Cache-Control:

五、常见问题

  • 登录页面、含 Cookie 的页面不要缓存
  • 使用 CacheIgnoreURLSessionIdentifiers
  • 开发环境建议关闭缓存

如果你能告诉我:

  • 用的是 CentOS 还是 Ubuntu
  • 是 网站加速 / API / 反向代理
  • 动态(PHP)还是静态网站

我可以给你一份精准可用的配置。

0 踩