缓存路径
网络缓存是一种通过存储已请求过的资源(如 HTML 文件、图片、 JavaScript 文件等)在客户端或服务器端,以加快网页加载速度和减少服务器负载的技术,以下是一些常见的网络缓存配置方法和建议:
Nginx 配置缓存
Nginx 是一个高性能的 HTTP 和反向代理服务器,支持缓存,以下是配置 Nginx 的缓存方法:
1 配置缓存路径
在 Nginx 的配置文件中(通常是 /etc/nginx/sites-enabled/ 目录下的文件),找到 server 块,并添加以下配置:
location / {
root /var/www/html;
index index.html index.htm;
# 缓存路径
proxy_cache_path /var/www/cache levels=1:2 keys_zone=cache:10m max_size=1g inactive=60m use_temp_path=off;
# 验证客户端是否支持缓存
add_header Cache-Control "public";
proxy_set_header Cache-Control "public";
# 缓存过期时间
proxy_set_header Expires "max-age=604800";
proxy_set_header X-Expiry-After "604800";
}
2 启用缓存
在 Nginx 配置完成后,重启服务:
sudo systemctl restart nginx
3 测试缓存
在浏览器中打开一个网页,检查 F12 开发者工具,查看缓存状态和缓存过期时间。
Apache 配置缓存
Apache 也支持缓存配置,以下是 Apache 的缓存配置示例:
1 配置缓存路径
在 Apache 的配置文件中(通常是 /etc/apache2/ports.conf 或 httpd.conf),添加以下配置:
CacheEnable proxies # 缓存级别 CacheLevel 1 # 缓存大小 CacheMaxSize 100M # 缓存过期时间 CacheDefaultExpire 604800 CachePerFileExpire 0
2 启用模块
确保 mod_cache 模块已加载:
LoadModule cache module_cache.c
3 重启服务
重启 Apache 服务:
sudo systemctl restart apache2
4 测试缓存
使用浏览器或命令行工具(如 curl)测试网页是否从缓存加载。
Squid 配置缓存
Squid 是一个广泛使用的代理缓存服务器,配置方法如下:
1 安装和配置
安装 Squid 并配置:
sudo apt-get install squid
在配置文件中(通常是 /etc/squid/squid.conf),添加以下内容:
# 缓存过期时间 max_expiry 604800 # 允许客户端缓存 access_log off
2 启用缓存
重启 Squid 服务:
sudo systemctl restart squid
3 测试缓存
使用浏览器或命令行工具测试网页是否从缓存加载。
缓存级别设置
缓存级别是根据需求进行调整的,常见的缓存级别设置包括:
- Level 1(默认):浏览器缓存(客户端缓存)
- Level 2:服务器缓存(Nginx、Apache、Squid 等)
- Level 3:集群缓存(多个服务器间共享缓存)
1 配置 Nginx 多级缓存
如果需要多级缓存,可以在 Nginx 配置中添加多个缓存级别:
proxy_cache_path /var/www/cache levels=2:3 keys_zone=cache:10m max_size=1g inactive=60m use_temp_path=off;
缓存过期时间
缓存过期时间是根据需求设置的,常见的设置包括:
- 默认 60 分钟:
max-age=604800(1 天) - 无缓存:
max-age= - 永不过期:
max-age=31536000(1 年)
在 Nginx 或 Apache 配置中添加 proxy_set_header Expires 或 CacheDefaultExpire 来设置过期时间。
缓存清理
定期清理缓存可以防止内存被占满或缓存变得过旧,可以手动或自动清理缓存:
1 手动清理
Nginx:
sudo rm -rf /var/www/cache/* sudo systemctl restart nginx
Apache:
sudo echo 'CacheRoot "/var/www/cache"' > /etc/apache2/ports.conf sudo systemctl restart apache2
2 自动清理
可以使用 cron 作业自动清理缓存:
@daily 0 0 * * * sudo rm -rf /var/www/cache/*
缓存测试与监控
- 使用浏览器开发者工具(
F12)检查缓存状态。 - 使用工具如
curl或wget测试网页是否从缓存加载。 - 监控缓存使用情况,可以使用
squid -M或其他监控工具。








