posso armazenar a página em cache em regras de reescrita nginx?

1

nginx conf:

location / {
            rewrite ^/cache.html$ /cache.jsp last;
}
location ~ \.jsp {
            proxy_pass   http://127.0.0.1:85;
            #if I add proxy_cache here,will be cache every JSP file,I don't want it
}
#location ~ \.html {
            #I want cache all ".html" page,but it's not work.
            #proxy_cache cache;
            #....
#}

Eu estou usando uma regra de reescrita para mapear /cache.html para /cache.jsp

Eu quero acessar http // localhost / cache.html para a página de cache,

mas acesse http // localhost / cache.jsp sem cache,

como fazer? obrigado pela ajuda:)

    
por Koerr 16.11.2010 / 22:21

1 resposta

1

Isso não é possível simplesmente usar regras de reescrita.

A única maneira de fazê-lo funcionar é fazendo um proxy de volta para a página e ativando o cache de proxy.

Você pode gravar locais personalizados para que ele armazene apenas extensões de página específicas e você pode usar instruções if para definir chaves de cache únicas para fazer com que pareça que uma página não está em cache, mesmo que ela seja armazenada em cache para 1 exibição. / p>

Se você está pensando em entrar no reino do cache real baseado em regras, eu recomendo usar o Varnish.

    
por 24.11.2010 / 20:28

Tags