Eu estou tentando cache para o meu site usar o módulo Proxy Nginx e tem os seguintes requisitos:
Se a solicitação tiver um cookie (no cabeçalho da solicitação)
- A resposta usará o cache de Nginx
- Ocultar linha de cabeçalho do conjunto de cookies
Se a solicitação não tiver cookie (no cabeçalho da solicitação)
- Enviar pedido para backend
- Não esconda a linha de cabeçalho Set-Cookie
Eu uso o If (do módulo reescrito) e qualquer diretiva:
if (!-e $http_cookie)
{
set $not_cache_rq 0;
set $not_cache_rp 0;
}
if ($http_cookie) {
set $not_cache_rq 1;
set $not_cache_rp 1;
}
proxy_cache_bypass $not_cache_rq;
proxy_no_cache $not_cache_rp;
proxy_hide_header Set-Cookie;
Eu não sei como chamar a opção cookie proxy_hide_header quando houver cookie e nenhum cookie na linha de cabeçalho.
Por favor me ajude. Muito obrigado.
====
Oi poige
Eu gerencio o site de um cliente. Se os cookies estiverem definidos, todas as solicitações e respostas conterão a linha de cabeçalho Cookie.
Se uma resposta é armazenada em cache. O cache será Nginx retorna para todos os clientes e Set-Cookie header line fará com que todos os usuários compartilhem um valor de cookie (este valor é a sessão, deve ser diferente para cada usuário).
Eu quero se o usuário não tiver uma sessão (ou seja, nenhum cookie existir - a linha de cabeçalho de solicitação não terá a linha Cookie), a solicitação será enviada ao back-end (apache) para processamento e retornará o cookie para o usuário .
Se o usuário já tiver sessão (ou seja, um cookie na linha de solicitação), o Nginx retornará o cache e o cache não terá linha Set-Cookie)
Muito obrigado!