Não foi inicialmente documentado corretamente, mas o CacheEnable não se aplica implicitamente ao proxy de encaminhamento. há uma nota e exemplos atualizados agora.
edite para não ocultar a resposta no link: como em CacheEnable disk http://
Eu gostaria de configurar o proxy de encaminhamento do apache com o cache. Eu tenho alguns clientes que tem que downloa alguns grandes arquivos de tempos em tempos a partir das internets, e gostaria que fosse feito através deste proxy apache, para que ele tenha esses grandes arquivos em cache no disco e os retorna do cache.
Eu consegui configurar o proxy, mas o cache não funciona. Eu tenho os módulos cache , mem_cache , file_cache ativados. Eu tenho a seguinte configuração do meu proxy virtual de cache:
<VirtualHost *:80>
ProxyRequests On
ProxyVia On
<Proxy *>
Order deny,allow
Deny from all
Allow from all
</Proxy>
CacheEnable disk /
CacheMaxFileSize 10000000000
CacheMinFileSize 1000000
CacheRoot "/var/cache/apache2/mod_disk_cache/"
CacheMaxExpire 24
CacheLastModifiedFactor 0.1
CacheIgnoreQueryString On
EnableSendfile On
CacheDefaultExpire 7200
CacheIgnoreNoLastMod On
CacheStorePrivate On
CacheStoreNoStore On
ServerName my-proxy
ErrorLog "/var/log/apache2/proxy-error.log"
CustomLog "/var/log/apache2/proxy-access.log" common
</VirtualHost>
Para fins de teste, configurei meu Firefox para usar esse proxy. Eu baixei um arquivo zip de link , que leva cerca de 5 minutos. A única linha que recebo em proxy-access.log neste evento é:
"GET http://download.java.net/jdk8/archive/b128/binaries/jdk-8-fcs-bin-b128-linux-i586-01_feb_2014.tar.gz HTTP/1.1" 200 115883719
Quando mais tarde eu verificar a pasta / var / cache / apache2 / mod_disk_cache , não há nada lá. E da próxima vez que eu baixar o mesmo arquivo, ele também leva os mesmos 5 minutos, embora em nossa rede local a velocidade seja muito mais rápida - o que significa que ele é redobrado novamente da internet.
Como posso fazer cache?
Eu vi este Como configurar o Apache como um proxy de encaminhamento com o cache , leia O que pode ser armazenado em cache? - não há "Autorização "cabeçalho em qualquer solicitação ou resposta (verificado com wireshark). Então, parece-me como deveria ser armazenado em cache. Ele também não deve ser afetado por este bug , já que a versão do apache é 2.2.22 -1ubuntu1 e não 2.4.3.
Não foi inicialmente documentado corretamente, mas o CacheEnable não se aplica implicitamente ao proxy de encaminhamento. há uma nota e exemplos atualizados agora.
edite para não ocultar a resposta no link: como em CacheEnable disk http://
Eu tive que fazer especificamente CacheQuickHandler off
, por causa de ProxyPass
dentro de Location
. O cache não começaria até que isso estivesse correto. Exemplo:
CacheQuickHandler off
CacheRoot /var/cache/apache2
<Location "/wp-content/uploads/_papaya">
CacheEnable disk
ProxyPass "https://remote.papaya/wp-content/uploads"
</LocationMatch>
Tags proxy cache apache-2.2