2015-10-28 2 views
4

Недавно я развернул веб-сайт на VPS, который поддерживает Apache2, и работал над рекомендациями по улучшению производительности YSlow. Среди этих улучшений использовались mod_deflate и mod_expires, и поскольку у меня есть доступ к корню, я могу напрямую редактировать конфигурационные файлы Apache.Apache2 mod_expires не работает

mod_deflate сейчас работает, но у меня возникли проблемы с mod_expires так вот что я сделал:

включения истекает модуль и перезапустить сервер

a2enmod expires 
service apache2 restart 

создать новый файл «expires.conf "под mods_enabled, который содержит следующие элементы:

<IfModule mod_expires.c> 
    # Enable expirations 
    ExpiresActive On 

    # Default directive 
    ExpiresDefault "access plus 1 month" 

    # My favicon 
    ExpiresByType image/x-icon "access plus 1 year" 

    # Images 
    ExpiresByType image/gif "access plus 1 month" 
    ExpiresByType image/png "access plus 1 month" 
    ExpiresByType image/jpg "access plus 1 month" 
    ExpiresByType image/jpeg "access plus 1 month" 

    # CSS 
    ExpiresByType text/css "access plus 1 month" 

    # Javascript 
    ExpiresByType application/javascript "access plus 1 year" 
</IfModule> 

Однако при проверке на различных браузеры Dev Tools под сетью, файлы показывают Управление кэша в None ,

Я думал об использовании моего сценария mod_expires выше в .htaccess, расположенном в корневом каталоге моего сайта:/var/www/sitename/public_html, поскольку настройки в .htaccess переопределяют любые предыдущие настройки, сделанные в конфигурационных файлах apache ,

Для этого я включил htaccess в apache2.conf.

Я тестировал, что мой файл htaccess действительно работает, охотно внося в него ошибку (прокомментировал открытый тег IfModule). Обновление браузера дало мне ошибку сервера 500. Так обрабатывался файл htaccess.

К сожалению, инструменты для браузера dev по-прежнему не имеют контроля за кешем, и у меня заканчиваются идеи.

Я что-то упустил? Спасибо!

+0

Очевидный вопрос, но я предполагаю, что вы включили mod_expiries включают линию (часто закомментирована) в противном случае, что IfModule выражение не будет и ни одна конфигурация не будет считана. –

ответ

0

я наконец исправил проблему:

  • во-первых, я заметил разницу между всеми другими конфигурационными файлами и один я создал под модами поддержки: другие были символические ссылки на их соответствующие файлы под mods- доступный. Это не должно быть проблемой, но определенно лучше придерживаться конвенции.

  • Кажется, я не могу иметь перезапустил службу apache2 после создания файла

0

Скорее всего, ваш expires.conf становится разобран перед тем истекает модуль загружен, как вы включили конфигурационный файл в папке mods-enabled.

Поместите свой файл конфигурации в conf.d и перезапустите Apache.

+0

спасибо за предложение, но apache2.conf что-то делает в соответствии с: 1) обрабатывает все файлы, соответствующие /mods-enabled/*.load. 2) обрабатывать все файлы, соответствующие /mods-enabled/*.conf. , который обеспечит загрузку модуля перед анализом файла конфигурации. Это верно? Не будет.htaccess hack Я тоже решил это решить? – Khorkhe

 Смежные вопросы

  • Нет связанных вопросов^_^