Nginx 如何设置图片缓存
时间: 2024-08-15 10:04:07 浏览: 181
Nginx服务器上搭建图片缓存服务的基本配置解析
Nginx 设置图片缓存是为了提高网站性能,减少服务器负载,当用户多次访问相同的图片时,可以从缓存直接读取,而不是每次都从服务器获取。以下是基本的配置步骤:
1. **开启缓存**:
在 Nginx 的 `http` 或者 `server` 模块下添加 `proxy_cache` 配置,例如:
```nginx
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_image_cache:10m inactive=60m;
```
这里创建了一个名为 `my_image_cache` 的缓存区域,路径是 `/var/cache/nginx`。
2. **启用缓存指令**:
对于图片资源,添加 `proxy_cache_bypass $arg_force_no_cache` 和 `proxy_cache_use_stale` 来指定哪些请求可以缓存以及缓存策略:
```nginx
location ~ \.(jpg|jpeg|png|gif)$ {
expires 30d; # 设置静态资源默认过期时间
add_header Cache-Control "public"; # 允许浏览器缓存
proxy_cache my_image_cache;
proxy_cache_valid 200 304 301 302 12h;
proxy_cache_key "$scheme$host$request_uri";
proxy_cache_bypass $arg_force_no_cache;
proxy_cache_use_stale error timeout invalid_header http_500 http_502 http_503 http_504;
}
```
使用 `$arg_force_no_cache` 变量可以绕过缓存,如果URL有此参数存在,则不会从缓存中读取。
3. **刷新缓存**:
如果需要手动清除特定文件或目录的缓存,可以使用 `nginx -s flush_cache` 命令,或者在配置中加入 `proxy_cache_revalidate on;` 来让缓存自动在内容变化时更新。
阅读全文