Nginx配置CACHE-CONTROL


https://www.cnblogs.com/sfnz/p/5383647.html

Nginx配置CACHE-CONTROL

HTTP协议的Cache-Control指定请求和响应遵循的缓存机制

请求时的缓存指令包括no-cache、no-store、max-age、 max-stale、min-fresh、only-if-cached等

响应消息中的指令包括public、private、no-cache、no-store、no-transform、must-revalidate、proxy-revalidate、max-age

max-age指明以秒为单位的缓存时间

  • Http协议的cache-control的常见取值及其组合释义:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
no-cache: 数据内容不能被缓存, 每次请求都重新访问服务器, 若有max-age, 则缓存期间不访问服务器.

no-store: 不仅不能缓存, 连暂存也不可以(即: 临时文件夹中不能暂存该资源)

private(默认): 只能在浏览器中缓存, 只有在第一次请求的时候才访问服务器, 若有max-age, 则缓存期间不访问服务器.

public: 可以被任何缓存区缓存, 如: 浏览器、服务器、代理服务器等

max-age: 相对过期时间, 即以秒为单位的缓存时间.

no-cache, private: 打开新窗口时候重新访问服务器, 若设置max-age, 则缓存期间不访问服务器.

private, 正数的max-age: 后退时候不会访问服务器

no-cache, 正数的max-age: 后退时会访问服务器

例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 相关页面设置Cache-Control头信息
例一:
if ($request_uri ~* "^/$|^/search/.+/|^/company/.+/") {
add_header Cache-Control max-age=3600;
}

例二:
location ~ .*\.(css|js|swf|php|htm|html)$ {
add_header Cache-Control no-store;
}

例三:
location ~ .*\.(js|css)$ {
expires 10d;
}