Кэширование в Apache

1239912657_apacheПо умолчанию настроен так, что кеширование запрещено даже для статического контента. Это означает, что при каждом обращении к сайту заново подгружаются все файлы CSS, JavaScript и картинки, что явно не способствует быстродействию.
Чтобы этого избежать, следует настроить выдачу заголовков Expires (время устаревания контента), ETag (строка, которая изменяется в случае изменения файла) и Cache Control (управление кешированием).
В .x это делается с помощью следующих директив:

# добавление сжатия файлов
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE image/x-icon
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/x-javascript

# обработка "кривых" броузеров
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch Konqueror no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

Header append Vary User-Agent

# разрешение кеширования файлов на стороне клиента

Header append Cache-Control private

# включение заголовка Expires для всех файлов сроком на месяц
ExpiresActive On
ExpiresDefault "access plus 1 month"

# выключение Expires для HTML-файлов и PHP-скриптов

ExpiresActive Off
# Выдача заголовка ETag
FileETag MTime Size

Для Apache 1.3 с модулем mod_gzip:


Header append Vary User-Agent

# разрешение кеширования файлов на стороне клиента

Header append Cache-Control private

# включение заголовка Expires для всех файлов сроком на месяц
ExpiresActive On
ExpiresDefault "access plus 1 month"

# выключение Expires для HTML-файлов и PHP-скриптов

ExpiresActive Off

# Выдача заголовка ETag
FileETag MTime Size

# Включение модуля mod_gzip

mod_gzip_on Yes
mod_gzip_can_negotiate Yes
mod_gzip_static_suffix .gz
AddEncoding gzip .gz
mod_gzip_update_static No

mod_gzip_command_version '/mod_gzip_status'
mod_gzip_temp_dir /tmp

mod_gzip_keep_workfiles No
mod_gzip_minimum_file_size 500
mod_gzip_maximum_file_size 5000000
mod_gzip_maximum_inmem_size 60000

mod_gzip_min_http 1000
mod_gzip_handle_methods GET POST
mod_gzip_item_exclude reqheader "User-agent: Mozilla/4.0[678]"

mod_gzip_item_include file \.html$
mod_gzip_item_include file \.js$
mod_gzip_item_include file \.css$

# mod_gzip_item_include file \.pl$
# mod_gzip_item_include handler ^cgi-script$

mod_gzip_item_include mime ^text/html$
mod_gzip_item_include mime ^text/plain$
mod_gzip_item_include mime ^httpd/unix-directory$
mod_gzip_item_exclude mime ^image/
mod_gzip_dechunk Yes

mod_gzip_add_header_count Yes


Запись навигация

Top