我使用NGINX作为反向代理,并使用以下设置将所有请求重定向到我的SPA容器
location / {
proxy_pass http://172.x.x.x;
proxy_intercept_errors on;
error_page 404 = /index.html;
}
这是有效的,但所有图像的过期时间都设置为默认值(max-age=3600
(。当我添加下面的块,该块应该设置所有图像类型的过期时间时,则没有任何图像再工作(404 NOT FOUND
(。
location ~* .(jpg|png)$ {
add_header Cache-Control public;
expires 1M;
}
我试着将这个块嵌套在第一个块中,但后来我也得到了404
响应。
为什么这不起作用?我应该更改什么,以便所有图像都有一个扩展的max-age
?
Nginx选择一个location
来处理请求。它使用位置块中的指令或从周围块继承的指令。
如果要向上游传递对.jpg
和.png
URI的请求,则location
还需要包含proxy_pass
语句。
或者,使用map
设置expires
值。有关详细信息,请参阅本文档。
例如:
map $request_uri $expires {
default off;
~*.(jpg|png)(?|$) 1M;
}
server {
...
expires $expires;
location / {
...
}
}
我认为expires
已经设置了缓存控制头,但您也可以使用另一个map
来设置add_header
指令的值。