Este é o comportamento pretendido :
Syntax: add_header name value [always];
Default: — Context: http, server, location, if in location
Adds the specified field to a response header provided that the response code equals 200, 201 (1.3.10), 204, 206, 301, 302, 303, 304, 307 (1.1.16, 1.0.13), or 308 (1.13.0). The value can contain variables.
There could be several
add_headerdirectives. These directives are inherited from the previous level if and only if there are noadd_headerdirectives defined on the current level.If the
alwaysparameter is specified (1.7.5), the header field will be added regardless of the response code.
Você precisa da palavra-chave sempre na diretiva add_header .