Configurando o Apache como um proxy de encaminhamento com cache

2

Estou tentando configurar o Apache como um proxy de encaminhamento com armazenamento em cache, mas parece que não está funcionando corretamente. Conseguir o Apache funcionando como um proxy de encaminhamento não foi problema, mas não importa o que eu faça, ele não está armazenando nada em cache, no disco ou na memória. Eu já verifiquei se nada está em conflito no diretório mods_enabled com mod_cache (acabei comentando tudo) e também tentei mover todos os campos relacionados ao armazenamento em cache para o arquivo de configuração para mod_cache. Além disso, configurei o registro para solicitações de armazenamento em cache, mas nada está sendo gravado nesses logs. Abaixo está minha configuração do Apache, qualquer ajuda seria muito apreciada!

<VIRTUALHOST *:8080>
ProxyRequests On
ProxyVia On
#ErrorLog "/var/log/apache2/proxy-error.log"
#CustomLog "/var/log/apache2/proxy-access.log" common
CustomLog "/var/log/apache2/cached-requests.log" common env=cache-hit
CustomLog "/var/log/apache2/uncached-requests.log" common env=cache-miss
CustomLog "/var/log/apache2/revalidated-requests.log" common env=cache-revalidate
CustomLog "/var/log/apache2/invalidated-requests.log" common env=cache-invalidate
LogFormat "%{cache-status}e ..."

        # This path must be the same as the one in /etc/default/apache2
        CacheRoot /var/cache/apache2/mod_disk_cache

        # This will also cache local documents. It usually makes more sense to
        # put this into the configuration for just one virtual host.

        CacheEnable disk /
        #CacheHeader on
        CacheDirLevels 3
        CacheDirLength 5
##<IfModule mod_mem_cache.c>
#        CacheEnable mem /
#        MCacheSize 4096
#        MCacheMaxObjectCount 100
#        MCacheMinObjectSize 1
#        MCacheMaxObjectSize 2048
#</IfModule>


<Proxy *>
Order deny,allow
Deny from all
Allow from x.x.x.x
#IP above hidden for this post

<filesMatch "\.(xml|txt|html|js|css)$">
ExpiresDefault A7200
Header append Cache-Control "proxy-revalidate"
</filesMatch>

</Proxy>
</VIRTUALHOST>
    
por Karl 13.11.2012 / 17:59

1 resposta

3

Este é um post antigo, mas eu o encontrei na esperança de encontrar minhas próprias respostas, então compartilharei o que puder, talvez seja útil.

Dado o que você disse, eu gostaria de:

  1. Verifique se o apache tem acesso de gravação a / var / cache / apache2 / mod_disk_cache
  2. Confirme que ele pode até armazenar algo em cache, forçando-o a armazenar tudo em cache e verificando se o diretório de cache não está vazio ( exemplo completo ):

    CacheIgnoreNoLastMod em

    CacheDefaultExpira 7200

  3. Se o acima não funcionar, então acredito que o problema não é com mod_cache ou mod_disk_cache. Pare aqui se assim for, mais continue:

  4. Verifique se as solicitações para xml | txt | html | js | css são solicitações GET (duvidosas que sejam outra coisa).
  5. Verifique se não há cabeçalho "Autorização".
  6. Assegure-se de que ainda não exista um cabeçalho de Cache-Control particular ou sem loja. Se houver, adicione o seguinte antes de seu "cabeçalho":

    Cabeçalho unset Cache-Control

  7. Verifique se há um cabeçalho "Etag", "Last-Modified" ou "Expires". (Que, talvez você poderia fazer uma solicitação do lado público do proxy para verificar se o mod_expire está realmente definindo um cabeçalho de expiração?)

  8. Leia a seção " O que pode ser armazenado em cache? " da visão geral dos documentos de cache do apache .

Em uma nota lateral, eu tenho o cache de disco funcionando, mas também não consegui descobrir como obter o% {cache-status} para mostrar nos logs.

    
por 30.08.2013 / 09:40