大家一定遇到在某些场景下 需要对特定某些文件进行缓存控制, 在使用了nginx作为代理的情况下使用nginx来控制缓存比应用服务器自己控制更加活动, 也没有在应用中去修改的侵入性
需要使用到nginx的 ngx_http_headers_module:
http://nginx.org/en/docs/http/ngx_http_headers_module.html
Syntax: | add_header name value [always]; |
Default: | — |
Context: | http, server, location, if in location |
如下配置, download目录下所以以 config.js结尾的路径, 加上缓存
location /download/ {
proxy_read_timeout 20;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
if ($request_uri ~ ".*config\.js$") {
add_header Cache-Control no-store,no-cache;
}
proxy_pass http://$front:9002$request_uri;
}