我正在尝试让 nginx 发送过期标头,我尝试了两种不同的方式:
location ~* ^.+\.(ico|css|js|gif|jpe?g|png)\?[0-9]+$ {
expires max;
}
和
location / {
if ($request_uri ~* "\.(ico|css|js|gif|jpe?g|png)\?[0-9]+$") {
expires max;
break;
}
#....
}
没有一个奏效。不会发送任何过期标头。任何想法如何调试这个问题?
位置应该只在路径上,没有查询字符串,所以这不应该工作。
尝试以下操作:
或者,至少,以下也应该起作用:
测试以确保通过在其中放置一个附加指令来调用位置块。类似于:
如果您在请求匹配文件时没有看到身份验证提示,那么您可以确定该块由于较早的中断或您有什么而没有被调用。
这些行确实有效,我只是在测试它们错误。这些行正确地尝试仅缓存带时间戳的资源(最后带有 ?id 的资源),而我正在查看非时间戳资源。
使用 nginx 作为缓存代理?如果是这样,请注意上游缓存指令受到尊重,但您仍然可以指示 nginx 不要使用 proxy_ignore_headers