Altera nginx proxy_cache_key se um cabeçalho particular presente

1

Estou tentando armazenar em cache o pedido ajax com proxy_key diferente.

Minha chave de proxy comum:

 proxy_cache_key "$host$request_uri";

Eu quero usar proxy_cache_key diferente para solicitações ajax (que vêm com o cabeçalho X-Requested-With).

Algo parecido com isto

if ($http_x_requested_with) {
    proxy_cache_key "$host$request_uri$cookie_SID";
}

Como posso fazer isso?

    
por Prosto Trader 23.09.2014 / 11:04

1 resposta

3

Talvez algo parecido com isto

Primeiro, salve "$host$request_uri" em uma variável com definido . Em seguida, dentro de if , altere o valor da variável. Por fim, defina seu proxy_cache_key com essa variável personalizada.

Sidenote : nunca use if dentro da localização se não quiser obter resultados inesperados. Veja IfIsEvil .

Aqui o exemplo:

http {
    ...
    server {
        ...
        set $cache_key "$host$request_uri";

        if ($http_x_requested_with) {
            set $cache_key "$host$request_uri$cookie_SID";
        }

        proxy_cache_key $cache_key;

        location / {
            ....
        }

        location /others {
            .....
        }
    }
}
    
por 23.09.2014 / 11:39

Tags