Por que meu cache do Apache não está funcionando bem?

0

O sistema operacional do meu servidor:

Distributor ID: Ubuntu
Description:    Ubuntu 16.04.2 LTS
Release:    16.04
Codename:   xenial
Apahce version:Apache/2.4.18 (Ubuntu)

Eu sinto muito pelo meu Inglês ruim, eu vou tentar o meu melhor para descrevê-lo claramente.

Eu adicionei as diretivas de cache aos meus arquivos de configuração e ativei os seguintes módulos: cache, cache_disk, expire, headers.

Se o cache era recente (o tempo de expiração era 10 segundos no meu arquivo), o chrome obtinha resposta com o código 200 do cache local.Mas quando o cache estava obsoleto, o servidor apache não verifica se o conteúdo ainda está fresco antes servindo conteúdo obsoleto para o cliente.

O Chrome obteve o código 200 novamente e nunca recebeu o código 304.O que há de errado com minha configuração? Há minhas configurações:

1. /etc/apache2/apache2.conf

Mutex file:${APACHE_LOCK_DIR} default
PidFile ${APACHE_PID_FILE}
Timeout 300
ServerName smt.lhc.com
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
HostnameLookups Off
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel debug 
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
Include ports.conf
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

2. /etc/apache2/mods-available/cache_disk.conf

<IfModule mod_cache_disk.c>

 CacheEnable disk /

CacheDirLevels 2

CacheDirLength 1


</IfModule>

3. /etc/apache2/sites-available/000-default.conf

<VirtualHost *:80>

    #ServerName www.example.com

    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/smt-web
    #DocumentRoot /var/www/html


    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

<Directory "/var/www/smt-web">

    RewriteEngine on

    RewriteCond %{REQUEST_FILENAME} -f [OR]

    RewriteCond %{REQUEST_FILENAME} -d

    RewriteRule ^ - [L]

    RewriteRule ^ index.html [L]

 CacheQuickHandler off

CacheLock on
CacheLockPath /tmp/mod_cache-lock
CacheLockMaxAge 5

CacheIgnoreHeaders Set-Cookie

<Location />
    CacheEnable disk
    CacheHeader on

    CacheDefaultExpire 600
    CacheMaxExpire 86400
    CacheLastModifiedFactor 0.5

    ExpiresActive on
    ExpiresDefault "access plus 10 sceonds"

    Header merge Cache-Control public
    FileETag All
</Location>
</VirtualHost>
    
por LHC 20.07.2017 / 10:46

1 resposta

0

Sua configuração parece exatamente igual à configuração do Oceano Digital link

Você pode adicionar %{cache-status}e à linha LogFormat para registrar o status do cache em access.log do Apache.

Estou usando a mesma configuração acima, mas no meu caso o cache sempre exibe o mesmo conteúdo, não importa o que eu clico na página inicial.

Eu tenho medo que a configuração não funcione para o Ubuntu 16.04 e o Apache 2.4.18.

    
por Strontium 20.07.2018 / 09:36