Фев 02 2009
Написал: Bambino в Оптимизация сайтов, Технологии
Недавно я публиковал статью о том как повысить скорость загрузки вашего сайта и сэкномить на трафике. Принцип работы основывался на сжатии и кэшировании содержимого вашего сайта с помощью веб-сервера Apache и конфигурационного файла .htaccess.
Естественно, я попробовал на своем блоге, и убедился в действенности метода.
Но оказывается это еще не конец! Можно еще кое-чего подкрутить… Если на вашем хостинге (или выделенном сервере) установлен Apache 2, вы можете использовать его встроенный модуль mod_deflate. Для того, чтобы ваши текстовые файлы сжимались с помощью указанного выше модуля, вам необходимо прописать в .htaccess следующие строки:
<IfModule mod_deflate.c> <FilesMatch "\.(css|js|x?html?|php)$"> SetOutputFilter DEFLATE </FilesMatch> </IfModule>
Этот код будет сжимать по алгоритму gzip все файлы со следующими расширениями *.css, *.js, *.html, *.html, *.xhtml, *.php.
Итого, объединяя обе статьи, следующий пример будет сжимать текстовые файлы и кэшировать статические файлы:
# Сжимаем текстовые файлы <IfModule mod_deflate.c> <FilesMatch "\.(css|js|x?html?|php)$"> SetOutputFilter DEFLATE </FilesMatch> </IfModule> # Настраиваем кэширование на будущее <IfModule mod_expires.c> ExpiresActive On ExpiresDefault "access plus 3600 seconds" ExpiresByType image/x-icon "access plus 2592000 seconds" ExpiresByType image/jpeg "access plus 2592000 seconds" ExpiresByType image/png "access plus 2592000 seconds" ExpiresByType image/gif "access plus 2592000 seconds" ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds" ExpiresByType text/css "access plus 604800 seconds" ExpiresByType text/javascript "access plus 216000 seconds" ExpiresByType application/x-javascript "access plus 604800 seconds" ExpiresByType text/html "access plus 3600 seconds" ExpiresByType application/xhtml+xml "access plus 3600 seconds" </IfModule> # Настройка заголовков Cache-Control <IfModule mod_headers.c> <FilesMatch "\.(ico|jpe?g|png|gif|swf)$"> Header set Cache-Control "max-age=2592000, public" </FilesMatch> <FilesMatch "\.(css)$"> Header set Cache-Control "max-age=604800, public" </FilesMatch> <FilesMatch "\.(js)$"> Header set Cache-Control "max-age=216000, private" </FilesMatch> <FilesMatch "\.(x?html?|php)$"> Header set Cache-Control "max-age=3600, private, must-revalidate" </FilesMatch> </IfModule> # Выключаем ETags <IfModule mod_headers.c> Header unset ETag </IfModule> FileETag None # Удаляем заголовок Last-Modified <IfModule mod_headers.c> Header unset Last-Modified </IfModule>
Как итого, рекомендую…
Pаспечатать эту статью
8 Responses
AngelOfFate
Февраль 4th, 2009 at 12:35
1а для wordpress это актуально?
Bambino
Февраль 4th, 2009 at 23:05
2Ты внимательно читал начало этого поста?
AngelOfFate
Февраль 5th, 2009 at 10:03
3Bambino мои извинения, тупил с утра =)
Bambino
Февраль 5th, 2009 at 15:12
4AngelOfFire, не стоит извинений…
xex
Февраль 9th, 2009 at 04:55
5оптимизация это хорошо, но вот когда она делается манипуляциями через htaccess то возрастает нагрузка на ЦП ибо апач прожора еще та.. поэтому вопрос, кто-нить сравнивал как сайт грузит проц до тюнинга и после? понятно, держателю странички важно чтобы она быстрее грузилась, а вот хостеру лишний напряг на проц не совсем в радость..
Bambino
Февраль 9th, 2009 at 21:38
6xex, что-то ты совсем не то говоришь
htaccess и нагрузка на сервер – совсем не «близнецы-братья», по крайней мере, что касается кэширования, о котором тут говорится. Ведь именно кэширование и направлено на снижение нагрузки на сервер, ибо сервер не формирует новые запросы, а «поднимает» страницы или файлы из кэша.
Mobik
Ноябрь 16th, 2009 at 22:21
7Bambino ну вообщето сервер не кэширует, кэширует браузер клиента. И на новых страницах не делает запросы к графике.
Метод хорош, но как с браузерами, которые не поддерживают сжатие? Когда включил в логах заметил, что некоторые юзеры по 3 раза заходят на страницу HTML и дальше никакой загрузки графики и уходят…
Bambino
Ноябрь 18th, 2009 at 15:17
8Видимо, оговорочка вышла..
Хотя сервер еще как может кэшировать? Слова Squid, oops! о чем-нибудь говорят?
RSS feed for comments on this post
Не стесняйтесь, оставьте свое мнение...