Nginx可以通过配置文件来实现静态资源的缓存。以下是一些关键步骤和配置示例:
首先,你需要指定一个目录来存储缓存文件。
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off;
levels=1:2
:定义缓存目录的层级结构。keys_zone=my_cache:10m
:定义缓存区域的名称和大小。max_size=1g
:设置缓存的最大总大小。inactive=60m
:设置缓存文件在未被访问后多久被删除。use_temp_path=off
:关闭临时文件路径,直接使用指定的缓存目录。在server
块中配置静态资源的缓存规则。
server {
listen 80;
server_name example.com;
location /static/ {
alias /var/www/static/;
expires 30d;
add_header Cache-Control "public";
proxy_cache my_cache;
proxy_cache_valid 200 302 10m;
proxy_cache_valid 404 1m;
}
location / {
proxy_pass http://backend_server;
proxy_cache my_cache;
proxy_cache_valid 200 302 10m;
proxy_cache_valid 404 1m;
}
}
location /static/
:匹配静态资源请求。alias /var/www/static/
:指定静态资源的实际路径。expires 30d
:设置缓存过期时间为30天。add_header Cache-Control "public"
:添加缓存控制头。proxy_cache my_cache
:启用缓存。proxy_cache_valid 200 302 10m
:设置200和302状态码的缓存时间为10分钟。proxy_cache_valid 404 1m
:设置404状态码的缓存时间为1分钟。如果你也想缓存动态内容,可以类似地配置。
location / {
proxy_pass http://backend_server;
proxy_cache my_cache;
proxy_cache_valid 200 302 10m;
proxy_cache_valid 404 1m;
add_header X-Proxy-Cache $upstream_cache_status;
}
add_header X-Proxy-Cache $upstream_cache_status;
:添加一个自定义头部,显示缓存状态。你可以通过以下命令清除缓存:
nginx -s stop
rm -rf /var/cache/nginx/*
nginx -s start
或者使用Nginx的ngx_cache_purge
模块:
purge_cache.sh "http://example.com/static/image.png";
其中purge_cache.sh
是一个脚本,用于清除特定URL的缓存。
通过上述配置,你可以有效地利用Nginx来缓存静态资源,提高网站的加载速度和性能。根据实际需求调整缓存策略和参数。