Почему мой апачский кэш не хорошо работает?

ОС моего сервера:

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

Я очень сожалею, что мой плохой английский язык, буду стараться изо всех сил описывать это ясно.

Я добавил директивы кэша к своим конфигурационным файлам и включил после modules:cache, cache_disk, истеките, заголовки.

Если кэш был нов (Время истечения срока составляло 10 секунд в моем файле), хром получил ответ с кодом 200 от локального кэша. Но когда кэш был устаревшим, апачский сервер не проверял, ново ли содержание все еще прежде, чем служить устаревшему содержанию клиенту.

Chrome получил код 200 снова и никогда не получал код 304. Что случилось с моей конфигурацией? Существуют мои конфигурации:

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>
0
задан 20 July 2017 в 01:49

1 ответ

Ваша конфигурация смотрит точно то же как Цифровая Океанская конфигурация https://www.digitalocean.com/community/tutorials/how-to-configure-apache-content-caching-on-ubuntu-14-04

Можно добавить %{cache-status}e к LogFormat строка для входа состояния кэша в access.log из Apache.

Я использую ту же конфигурацию как выше, но в моем случае кэш всегда служит тому же содержанию, не имейте значения, что я нажимаю на домашнюю страницу.

Я боюсь, что конфигурация не работает на Ubuntu 16.04 и Apache 2.4.18.

0
ответ дан 2 November 2019 в 21:46

Другие вопросы по тегам:

Похожие вопросы: