Como evitar a duplicação de diretivas add_header no nginx?

4

A documentação diz isto:

These directives are inherited from the previous level if and only if there are no add_header directives defined on the current level.

Meu problema é que eu tenho vários location blocos que eu quero armazenar em cache, como este:

add_header X-Frame-Options SAMEORIGIN;
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains;";

location ~ ^/img/(.*)\.(png|jpg|jpeg|gif|bmp)$ {
    expires 1w;
    add_header Cache-Control public;
}

Mas isso me fará perder todos os cabeçalhos declarados fora do bloco. Então, aparentemente, a única maneira é duplicar esses cabeçalhos em cada bloco de localização, por exemplo:

add_header X-Frame-Options SAMEORIGIN;
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains;";

location ~ ^/img/(.*)\.(png|jpg|jpeg|gif|bmp)$ {
    expires 1w;
    add_header Cache-Control public;
    add_header X-Frame-Options SAMEORIGIN;
    add_header Strict-Transport-Security "max-age=31536000; includeSubdomains;";
}

Não parece certo. Alguma idéia?

    
por ChocoDeveloper 23.02.2015 / 01:13

1 resposta

2

Você está seguindo o módulo ngx_headers_more: link

E sim, o comportamento do add_header é realmente irritante:)

    
por 23.02.2015 / 06:36