50* 页面的 Nginx add_header

Med*_*her 29 nginx http-headers 500-error

我目前正在尝试让 nginx 在发送某种 50* 错误时向响应添加标头。我已经在 http 块上有一个 add_header 指令,除了它似乎是错误之外,所有请求都会得到尊重。我还在其中一个 vhost 中尝试了以下操作:

location /mediocregopheristhecoolest {
    add_header X-Test "blahblahblah";
    return 502;                                                                                                    
}       
Run Code Online (Sandbox Code Playgroud)

转到该页面会给我一个 502,但没有标题。这只是 nginx 不做的事情,还是我做错了?

小智 56

从 Nginx 1.7.5 开始,always无论响应代码如何,您都可以使用添加标头:

add_header X-Test "blahblahblah" always;
Run Code Online (Sandbox Code Playgroud)


kol*_*ack 22

文档指出 add_header “将指定的字段添加到响应头,前提是响应代码等于 200、204、206、301、302、303、304 或 307。值可以包含变量。” 所以它不适用于 502。

我忘了补充一点,您可以使用第三方标头更多模块将标头添加到其他代码中。不过,您可能必须重新编译才能添加它。