Is this a bug?

hello,everyone:
I have the following questions about add_header
instruction.(version 1.1.8)

  This is my nginx.conf

        43 add_header Server ok;
        44 location / {
        45 add_header location ok;
        46 root html;
        47 index index.html index.htm;

  then construct a request

  [root@gitclubs conf]# curl -I http://localhost/
  HTTP/1.1 200 OK
  Server: nginx/1.0.12
  Date: Mon, 20 Feb 2012 08:13:02 GMT
  Content-Type: text/html
  Content-Length: 151
  Last-Modified: Mon, 13 Feb 2012 02:12:22 GMT
  Connection: keep-alive
  location: ok
  Accept-Ranges: bytes
  [root@gitclubs conf]#

  There is only location header.

  In ngx_http_headers_merge_conf() 

(ngx_http_headers_filter_module.c)
440 if (conf->headers == NULL) {
441 conf->headers = prev->headers;
442 }

  If I config add_header in location and server, then prev->headers 

can’t be merged to conf->headers.
Is this intended or a bug?
Thanks.

ֻ15011367065

Hello!

On Tue, Feb 21, 2012 at 12:47:37PM +0800, 马优生 wrote:

  location: ok
  If I config add_header in location and server, then prev->headers can't be 

merged to conf->headers.

  Is this intended or a bug?

This is intended. Array-type directives (all of them, not only
add_header) are inherited only if there are no corresponding
directives defined at particular level.

Maxim D.