代理缓存
Nginx能够有效地缓存指定的静态资源文件,提高网站的响应速度和性能
![]() |
![]() |
http { proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off; server { location ~* \.(js|jpg|jpeg|png|gif|ico|css|svg|woff|woff2)$ { proxy_pass http://100.64.0.21:7292; proxy_cache my_cache; proxy_cache_use_stale error timeout http_500 http_502 http_503 http_504; proxy_cache_valid 200 301 302 60m; proxy_cache_valid 404 1m; expires 1h; add_header Cache-Control "public, no-transform"; } } }
配置解释
/var/cache/nginx:指定缓存文件存储的路径为/var/cache/nginx
levels=1:2:设置缓存文件的目录层级结构为两级,第一级目录有1个字符,第二级目录有2个字符
keys_zone=my_cache:10m:定义缓存区域的名称为my_cache
,分配的内存大小为10MB,用于存储缓存的元数据
max_size=10g:设置缓存数据的最大磁盘空间占用量为10GB
inactive=60m:如果某个缓存数据在60分钟内没有被访问,则会被认为是非活动的,Nginx会将其从缓存中删除
use_temp_path=off:Nginx直接将缓存数据写入最终的缓存文件路径,不使用临时路径,以提高缓存的写入性能
proxy_cache_use_stale error timeout http_500 http_502 http_503 http_504;
在以下情况下,Nginx会使用过期的缓存数据来响应客户端请求:
- error:当与上游服务器通信出现错误时。
- timeout:当请求上游服务器超时时。
- http_500、http_502、http_503、http_504:当上游服务器返回500、502、503、504等错误状态码时。
proxy_cache_valid 200 301 302 60m:对于状态码为200、301、302的响应,缓存有效期为60分钟
proxy_cache_valid 404 1m:对于状态码为404的响应,缓存有效期为1分钟。
expires 1h; 设置响应头中的Expires
字段,告诉浏览器该资源的缓存有效期为1小时
add_header Cache-Control "public, no-transform"; 向响应头中添加Cache-Control
字段,值为public, no-transform
。public
表示该响应可以被任何缓存存储,包括浏览器缓存和中间缓存服务器;no-transform
表示缓存服务器不能转换响应的内容,必须原样返回给客户端
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
2024-01-23 审计日志