cache de proxy nginx e ssi

2

Estou usando nginx para solicitações de cache do servidor apache upstream, no entanto, quero que alguns blocos sejam buscados no apache o tempo todo. Espero que o ssi possa fazer isso, mas as tags SSI são enviadas ao usuário sem serem pré-processadas.

 location ~* ^.+\.html$ {
        proxy_pass  http://localhost:9999;
        proxy_cache_key "$prime$scheme$host$request_uri";

        ssi on;
        ssi_silent_errors off;
        log_subrequest on;
        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_set_header   X-Country        $country_code;

        proxy_cache my-cache;


        proxy_cache_bypass $http_x_refresh_cache;
        proxy_cache_valid  200 302  30d;
        proxy_cache_valid  404      10m;
        proxy_cache_valid  any      1m;


    }

Este é o conf nginx relevante.

    
por digitalPBK 17.10.2011 / 12:27

2 respostas

1

proxy_cache_key "$prime$scheme$host$request_uri";

Esta linha está armazenando em cache todas as partes individuais da página sob a mesma chave (o URI que o usuário digitou), de modo que as diferentes partes da página se sobrescrevem mutuamente e somente a última escrita é retornada. Você deseja usar $uri em vez de $request_uri , para que cada parte de cada página seja armazenada em cache com seu próprio nome pessoal.

    
por 17.10.2011 / 19:00
0

Certifique-se de que o link não esteja comprando a saída. Simpy adicionando

 proxy_set_header Accept-Encoding "";

veja: link

    
por 17.02.2016 / 22:39