温馨提示×

ubuntu apache2怎样启用缓存

小樊
40
2026-09-05 07:55:58
栏目: 智能运维

在 Ubuntu 上通过 Apache2 启用缓存,通常有几种常见方式,取决于你想做哪种缓存


一、启用浏览器端缓存(客户端缓存)

通过 mod_expiresmod_headers 控制静态资源缓存时间。

1. 启用模块

sudo a2enmod expires
sudo a2enmod headers
sudo systemctl restart apache2

2. 配置缓存规则

编辑站点配置(如 /etc/apache2/sites-available/000-default.conf)或 .htaccess

<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresByType image/jpg "access plus 1 month"
    ExpiresByType image/png "access plus 1 month"
    ExpiresByType text/css "access plus 1 week"
    ExpiresByType application/javascript "access plus 1 week"
</IfModule>

二、启用 Apache 文件缓存(服务器端缓存)

适合缓存静态文件,减少磁盘 IO。

1. 启用模块

sudo a2enmod cache
sudo a2enmod cache_disk
sudo systemctl restart apache2

2. 配置磁盘缓存

在 Apache 配置中添加:

<IfModule mod_cache.c>
    CacheEnable disk /
    CacheRoot /var/cache/apache2/mod_cache_disk
    CacheDirLevels 2
    CacheDirLength 1
    CacheMaxFileSize 1048576
</IfModule>

创建缓存目录:

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

三、启用反向代理缓存(Cache 代理)

如果你用 Apache 做反向代理(如代理后端 API / 网站):

sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod cache
sudo a2enmod cache_disk

示例配置:

ProxyPass / http://127.0.0.1:8080/
ProxyPassReverse / http://127.0.0.1:8080/

CacheEnable disk /
CacheRoot /var/cache/apache2/mod_cache_disk

四、检查是否生效

apachectl -M | grep cache
curl -I http://your-site.com

看是否有:

Cache-Control
Expires
Age

五、常用建议

  • 静态资源:用 expires + headers
  • 高并发静态站:用 cache_disk
  • 动态后端:谨慎缓存,避免缓存用户数据

如果你能说明是 静态网站 / 动态网站 / 反向代理 / API 缓存,我可以给你更精确配置。

0