推荐答案
proxy_cache_valid
指令用于设置 Nginx 缓存的有效时间。它定义了特定响应状态码的缓存时间,允许你为不同的 HTTP 状态码设置不同的缓存时间。通过这个指令,你可以控制缓存的内容在多长时间内被认为是有效的。
本题详细解读
1. 指令语法
proxy_cache_valid [code ...] time;
code
:HTTP 状态码,如 200、301、404 等。可以指定多个状态码,用空格分隔。time
:缓存的有效时间,可以是秒(s)、分钟(m)、小时(h)、天(d)等单位。
2. 使用场景
proxy_cache_valid
通常用于优化缓存策略,确保缓存的内容在合理的时间内有效。例如:
- 对于 200 状态码的响应,缓存 10 分钟。
- 对于 404 状态码的响应,缓存 1 分钟。
3. 示例配置
proxy_cache_valid 200 302 10m; proxy_cache_valid 404 1m; proxy_cache_valid any 5m;
- 第一行表示对于 200 和 302 状态码的响应,缓存 10 分钟。
- 第二行表示对于 404 状态码的响应,缓存 1 分钟。
- 第三行表示对于所有其他状态码的响应,缓存 5 分钟。
4. 注意事项
- 如果没有为某个状态码指定缓存时间,Nginx 将不会缓存该状态码的响应。
- 使用
any
关键字可以为所有未明确指定的状态码设置默认缓存时间。 - 缓存时间的设置应根据实际业务需求进行调整,避免缓存时间过长或过短导致的问题。