Nginx反向代理缓存配置
前言
反向代理使用Nginx,当客户端向Nginx服务器发送请求时,Nginx转发给集群,当请求到达Nginx时可以加一层缓存,可存储动态页面,当缓存存在时Nginx直接将缓存返回给客户端,而不请求服务器,这样可以将一大部分请求拦截到直接返回缓存,使服务器压力降低。
缓存配置
无缓存配置

worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 8080; server_name localhost; } location / { proxy_pass http://127.0.0.1:8878; } }
proxy_pass指令:用来设置被代理服务器的地址,可以是主机名称,IP地址加端口号等形式
现在加上缓存配置

worker_processes 1; events { worker_connections 1024; } http { proxy_cache_path ../data levels=1:2 keys_zone=cache_one:500m inactive=1d max_size=30g; include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 8080; server_name localhost; } location / { proxy_cache cache_one; proxy_cache_valid 200 304 302 1h; proxy_pass http://127.0.0.1:8878; proxy_cache_key $uri$is_args$args; } }
加了三行:
1 | proxy_cache_path ../data levels=1:2 keys_zone=cache_one:500m inactive=1d max_size=30g; |
proxy_cache_path:表示缓存文件存放的路径,该路径是预先就要创建好的 levels=1:2 : 设置在相对于path指定目录的第几级hash目录中缓存数据,levels=1,表示一级hash目录,levels=1:2,表示两级hash目录
1 | proxy_cache cache_one; |
表示这个server使用上面设置的那个cache
1 | proxy_cache_valid 200 304 302 24h; |
针对不同的HTTP响应状态设置不同的缓存时间,如果不设置,nginx服务器只为HTTP状态代码为200,301和302的响应数据做缓存 使用any可以表示缓存所有该指令中未设置的其他响应数据,如:
1 2 3 4 5 | proxy_cache_valid 200 302 10m; proxy_cache_valid 301 1h; proxy_cache_valid any 1m; |
表示的是对返回状态为200,302的响应数据缓存10分钟,对返回状态码为301的响应数据缓存1小时,非200,302,301返回状态的响应数据缓存1分钟
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现