add_header 'Cache-Control' 仅在没有位置上下文的情况下有效

add_header 'Cache-Control' 仅在没有位置上下文的情况下有效

我已经安装了 nginx/1.10.3 (Ubuntu) 并更改了原始配置文件,使得它在 http 上下文的顶部只有稍许不同:

http {
    add_header 'Cache-Control' 'no-cache';

并且这是有效的。当我访问 index.html 时,我将在响应标头中看到“no-cache”(使用 / 和 /index.html 测试)。我可以添加更多属性,如“no-store”,这也会起作用,它在这里确实有效。

但我想将无缓存限制为仅 index.html,但我无法让它工作。

http {
    server {
        location = /index.html {
            add_header 'Cache-Control' 'no-cache';
        }
    }

不起作用,响应标头中没有出现“no-cache”(使用 / 和 /index.html 测试)。同样不起作用的是location / { ...、 和location ~以及location ~*使用正则表达式。

我迷路了。我将重新安装 nginx 并检查是否有拼写错误。我这样做对吗?

编辑:我清除并重新安装了 nginx,再次执行了同样的事情,得到了同样的结果。

答案1

我现在已经把这些行放进去了/etc/nginx/sites-available/default,它起作用了。之前我把位置上下文放进去了/etc/nginx/nginx.conf,但那似乎是错的。

相关内容