Как настроить apache, у которого нет mod_expires или mod_headers, для отправки заголовков истечения срока действия?

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

У меня нет доступа к конфигурационным файлам Apache, потому что сайт размещен в общей среде, которую я не могу контролировать. Однако я могу настроить конфигурацию через файл .htaccess. Сервер — apache 1.3 — не настроен с mod_expires или mod_headers, и компания не будет устанавливать их для меня.

Учитывая эти ограничения, каковы мои варианты?

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


person Ascuseme    schedule 25.05.2009    source источник


Ответы (1)


Какой контент? Если статический (HTML, изображения, CSS), то единственный способ прикрепить заголовки — через интерфейсный веб-сервер. Я удивлен, что хостинговая компания не включила mod_headers, хотя они могут не включить его для .htaccess. Отсутствие кэширования обходится им в большую пропускную способность и ЦП (т. е. в деньги).

Если это динамический контент, вы будете иметь контроль при создании страницы. Это будет зависеть от вашего языка; вот пример для PHP (это из руководства по PHP, и это плохой пример, так как он также должен установить код ответа):

if (!headers_sent()) {
    header('Location: http://www.example.com/');
    exit;
}

Да, и еще одна вещь о настройке заголовков кэширования: не устанавливайте их слишком долго, особенно для CSS и скриптов. Вы можете не думать, что хотите изменить их, но вам не нужен сломанный сайт, в то время как у людей все еще есть старый контент в их браузерах. Я бы рекомендовал максимальные настройки кеша в диапазоне 4-8 часов: хорошо для сеанса одного пользователя или рабочего дня, но не более того.

person kdgregory    schedule 25.05.2009