哪些Nginx配置可以帮助优化CDN缓存性能?
时间: 2024-11-03 16:19:58 浏览: 28
PHP文件生成的图片无法使用CDN缓存的解决方法
Nginx通过一些特定的配置可以有效优化CDN缓存性能,提高网站内容的访问速度。以下是几个关键配置建议:
1. **Cache-Control头部设置**:设置合理的Cache-Control头信息,如`max-age`、`public`或`private`等,告诉浏览器多久内可以从缓存中获取数据。
```nginx
location ~* \.(js|css|img|font)$ {
add_header Cache-Control "public, max-age=3600";
}
```
2. **ETag支持**:启用ETag(实体标签),可以根据文件内容生成唯一的标识符,当内容未改变时,浏览器会利用缓存而不需请求服务器。
```nginx
add_header ETag $file.etag;
if_modified_since on;
```
3. ** expires指令**:设定静态资源的过期时间,告诉客户端资源何时不再需要从服务器刷新。
```nginx
location ~* \.(ico|jpg|jpeg|png|gif|webp|svg|woff|ttf)\??.*$ {
expires 1y; # 设置一年有效期
}
```
4. **缓存区域和分发**:使用`proxy_cache_path`配置指定缓存存储位置,并设置适当的缓存大小和清理策略。
```nginx
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m;
```
5. **If-None-Match和Last-Modified检查**:启用HTTP头的条件检查,避免不必要的请求。
```nginx
if ($http_if_none_match = "W/\"$(etag)\"") {
return 304; # 返回304 Not Modified
}
```
6. **错误页面处理**:对于常见的404错误,可以设置为从缓存返回,而不是直接由源站提供。
```nginx
error_page 404 = @error404;
location @error404 {
proxy_pass http://your-cache-domain.com;
}
```
阅读全文