nginx: definir cabeçalho personalizado na diretiva location

1

Gostaria de definir um cabeçalho "X-Cache-Status" personalizado quando o primeiro arquivo em try_files for encontrado, mas não quando algum dos outros corresponder. Qual é a melhor abordagem para fazer isso?

server {
    location / {
        try_files /cache/${host}${cache_uri}_index.html $uri $uri/ /index.php?q=$uri&$args;
    }
}
    
por Till 07.10.2014 / 01:56

2 respostas

4

Resposta alternativa, sem se:

server {

    location / {
        add_header X-Cache-Status "foo";
        try_files /cache/${host}${cache_uri}_index.html @fallback;
    }

    location @fallback {
        try_files $uri $uri/ /index.php?q=$uri&$args;
    }

}
    
por 07.10.2014 / 11:19
0

Acho que você não tem outra opção senão duplicar parcialmente a funcionalidade try_files:

server {
    location / {
        if ( -f "$document_root/cache/${host}${cache_uri}_index.html" ) {
                add_header X-Cache-Status "value";
                break;
        }
        try_files $uri $uri/ /index.php?q=$uri&$args;
    }
}
    
por 07.10.2014 / 09:30

Tags