给反向代理站点配置缓存
1 反向代理站点配置缓存的意义
对反向代理站点配置缓存是提高 Web 应用性能和用户体验的重要手段,同时也能增强系统的稳定性和安全性:
- 提高性能:资源首次请求后进入缓存,后续请求直接命中缓存,减少对后端服务器的请求次数与响应时间;
- 减轻后端压力:静态资源(图片、CSS、JavaScript)被缓存后,应用服务器可以把更多资源投入动态请求处理;
- 节约带宽:相同资源的重复请求由代理直接返回,减少从源站传输数据所需的带宽;
- 提高用户体验:资源加载更快,页面浏览更流畅,等待时间更短;
- 增强系统稳定性:请求被缓存与分流后,不会因为单个服务器过载而影响整个系统;
- 支持热更新:缓存可设置不同的活跃程度,使更新后的内容能较快传递给用户;
- 安全性提升:为不常变动的资源设置较长过期时间,减少源站直接暴露在互联网上的机会。
2 Fast-Https 配置代理缓存
在反向代理站点的 location 中加入 proxy_cache:
{
"listen": 9090,
"server_name": "localhost",
"location": [
{
"url": "/",
"type": "proxy",
"proxy_pass": "http://xxxx.com",
"proxy_cache": {
"path": "cache",
"valid": ["200:1h", "304:1h", "any:30m"],
"key": "$request_method$host$request_uri"
}
}
]
}
proxy_cache 表示启用代理缓存服务:
| 配置项 | 说明 |
|---|---|
path | 缓存文件存放路径 |
valid | 不同响应状态对应的缓存时间,格式为 状态码:时长 |
key | 缓存文件名的生成规则,可用变量的不同组合 |
上例为 xxxx.com 这个上游服务器设置了缓存:path 是缓存位置,valid 指明各状态下文件的缓存时间(返回码为 200 的文件缓存 1 小时,any 兜底 30 分钟),key 是生成缓存文件名的规则。
3 使用建议
- 静态资源占比较高的站点收益最明显;
- 内容频繁变化的接口,建议缩短对应状态码的缓存时长,或单独配置为不缓存;
- 修改
proxy_cache配置后需 RELOAD 生效。