31

I'm currently trying to get nginx to add a header to the response when it is sending some kind of 50* error. I already have an add_header directive on the http block, and that gets respected for all requests except it seems errors. I also tried the following in one of my vhosts:

location /mediocregopheristhecoolest {
    add_header X-Test "blahblahblah";
    return 502;                                                                                                    
}       

Going to that page gives me a 502, but no header. Is this simply something nginx doesn't do, or am I doing it wrong?

sysadmin1138
  • 135,853

2 Answers2

72

Since Nginx 1.7.5 you can use always to add a header irrespective of the response code:

add_header X-Test "blahblahblah" always;
marat
  • 821
23

The documentation states that add_header "Adds the specified field to a response header provided that the response code equals 200, 204, 206, 301, 302, 303, 304, or 307. A value can contain variables." So it doesn't work with a 502.

I forgot to add that you can use the third party headers more module to add headers to other codes. You'll probably have to recompile to add it, though.

kolbyjack
  • 8,287
  • 2
  • 39
  • 31