» » Увеличение скорости загрузки сайта на DLE (часть 2)

Увеличение скорости загрузки сайта на DLE (часть 2)

3.09
93
40 100
Увеличение скорости загрузки сайта на DLE (часть 2)

Все браузеры давно умеют кешировать статические данные (картинки, скрипты, css и т.д.), но для этого веб-сервер должен сообщить браузеру на сколько он должен кешировать эти данный с момента первого обращения к этим данным. Т.е. Если пользователь зашёл на сайт - загрузились к примеру 4 скрипта по 10кб - это 40кб, вроде бы не страшно, однако при каждом переходе по страницам сайта браузер будет загружать эти скрипты вновь и вновь, потому что думает, что скрипт обновляется при каждом обращении к нему. Поэтому логично "сказать" браузеру, что бы он проверял не обновился ли этот скрипт не при каждом обращении, а лишь раз в месяц или раз в год.

Как раз для указания "времени жизни" закешированных данных, правильной обработки HTTP-заголовков браузерами и предназначен этот код:
<IfModule mod_expires.c>
	ExpiresActive on

	ExpiresDefault "access plus 1 month"

	# cache.appcache needs re-requests in FF 3.6 (thanks Remy ~Introducing HTML5)
	ExpiresByType text/cache-manifest "access plus 0 seconds"

	# html
	ExpiresByType text/html "access plus 0 seconds"

	# XML
	ExpiresByType text/xml "access plus 0 seconds"
	ExpiresByType application/xml "access plus 0 seconds"

	# RSS
	ExpiresByType application/rss+xml "access plus 1 hour"

	# Favicon
	ExpiresByType image/x-icon "access plus 1 week"

	# Картинки
	ExpiresByType image/gif "access plus 1 month"
	ExpiresByType image/png "access plus 1 month"
	ExpiresByType image/jpeg "access plus 1 month"
	ExpiresByType image/jpg "access plus 1 month"

	# HTC файлы  (например css3pie)
	ExpiresByType text/x-component "access plus 1 month"

	# Нестандартные шрифты сайта
	ExpiresByType application/x-font-ttf "access plus 1 month"
	ExpiresByType font/opentype "access plus 1 month"
	ExpiresByType application/x-font-woff "access plus 1 month"
	ExpiresByType image/svg+xml "access plus 1 month"
	ExpiresByType application/vnd.ms-fontobject "access plus 1 month"

	# CSS и javascript
	ExpiresByType text/css "access plus 1 year"
	ExpiresByType application/javascript "access plus 1 year"

</IfModule>

# Cache-Control браузера 
<ifModule mod_headers.c>
	# 30 дней
	<filesMatch ".(ico|pdf|flv|jpg|jpeg|png|gif|swf)$">
	Header set Cache-Control "max-age=2592000, public"
	</filesMatch>
	# 30 дней
	<filesMatch ".(css|js)$">
	Header set Cache-Control "max-age=2592000, public"
	</filesMatch>
	# 2 дня
	<filesMatch ".(xml|txt)$">
	Header set Cache-Control "max-age=172800, public, must-revalidate"
	</filesMatch>
	# 1 день
	<filesMatch ".(html|htm|php)$">
	Header set Cache-Control "max-age=172800, private, must-revalidate"
	</filesMatch>
</ifModule>

<IfModule mod_setenvif.c>
	#Эта конструкция для говнобраузера
	#Запрет отдачи HTTP-заголовков Vary
	BrowserMatch "MSIE" force-no-vary
	BrowserMatch "Mozilla/4.[0-9]{2}" force-no-vary
</IfModule>


Как видно код разбит на блоки-условия. Если какой то из используемых в коде модулей не включен - блок будет пропущен.
Так же в коде прокомментированы сроки, на которые кешируются статические данные и представлен фикс для IE.

Представленный код - результат сбора данных с разных источников и оптимизации его под DLE. Для подключения его нужно вставить в самое начало файла .htaccess и обновить кеш в админке.

Похожие материалы

Комментарии

TCSE
TCSE 3 сентября 2012 11:37
вроде действительно помогло...
несколко быстрее грузятся сайты на которые постаивл данный код.
ПафНутиЙ
ПафНутиЙ 3 сентября 2012 12:10
Так и должно быть, картинки, скрипты, css - всё уходит в кеш. Единственное, что забыл - для nginx это не работает, но сайтов на nginx очень мало, особенно dle-сайтов )))
websot
websot 3 сентября 2012 20:42
Спасибо за материал, опробуем и выскажем свое мнение о таком методе)
ПафНутиЙ
ПафНутиЙ 3 сентября 2012 21:31
Жду ))
websot
websot 3 сентября 2012 22:56
Если сравнить со вторым сайтом, то второй сайт, где НЕ установлен разгон все же быстрее открывает чем первый) Будут в дальнейшем материалы о разгоне сайта?
Попробую поставить на второй и еще раз сравнить
------
Дополнение:
Вот скрин сравнения, у меня предположение такое.
Из-за размера скорость развёртки сайта меньше, кто согласен с моим предположением?
denis5555
denis5555 3 сентября 2012 23:20
Как узнать мой сервер с nginx или без?

Код вставлять перед DirectoryIndex index.php ?
Axel
Axel 3 сентября 2012 23:40
Спасибо! Буду следить, что гугл теперь скажет по поводу загрузки сайта:)

P.S. В похожих новостях текст "Картинки нету" не очень прикольный. Короче говоря, нет слова "нету" :)
ПафНутиЙ
ПафНутиЙ 4 сентября 2012 00:33
а где скиншот?
и тестировать лучше с установленным в браузере (хром или лиса) плагином, а не через сервис гугла.
ПафНутиЙ
ПафНутиЙ 4 сентября 2012 00:33
по HTTP заголовку
denis5555
denis5555 4 сентября 2012 07:51
HTTP/1.1 200 OK
Server: DataPalm/3.5
Date: Mon, 03 Sep 2012 19:22:14 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: close
Set-Cookie: PHPSESSID=ca8de4ed0a2d167223e17e4878addf33; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: dle_user_id=deleted; expires=Sun, 04-Sep-2011 19:20:56 GMT; path=/; domain=.мой-домен.ru; httponly
Set-Cookie: dle_password=deleted; expires=Sun, 04-Sep-2011 19:20:56 GMT; path=/; domain=.мой-домен.ru; httponly
Set-Cookie: dle_hash=deleted; expires=Sun, 04-Sep-2011 19:20:56 GMT; path=/; domain=.мой-домен.ru; httponly


Вот мой заголовок! Скажи пожалуйста мой сервер с nginx или без?
websot
websot 4 сентября 2012 08:33
насколько очевидно у тебя DataPalm/3.5
ПафНутиЙ
ПафНутиЙ 4 сентября 2012 09:25
Первый раз такой сервер вижу.
Server: DataPalm/3.5 - соответственно это data-palm и как он работает с апачевскими правилами - хз )
denis5555
denis5555 4 сентября 2012 10:24
Мдааа, не повезло мне. На других хостингах, где расположены другие сайты Server: nginx

Стоит ли переходить на другой хостинг из-за ускорения сайта?

Посоветуйте хостинг на котором бы работало это ускорение.
websot
websot 4 сентября 2012 12:21
я сижу на джино хостинг и не парюсь вообще, плачу копья и удобно все в панеле
ПафНутиЙ
ПафНутиЙ 4 сентября 2012 19:34
Вы почитайте в сети про этот сервер.
Например nginx сам отдаёт статические данные, чем экономи кучу ресурсов сервера, т.к. намного легче чем php.
fazanaka
fazanaka 6 сентября 2012 23:16
Спасибо, открывались страницы быстро, сейчас быстрее не куда)
ПафНутиЙ
ПафНутиЙ 7 сентября 2012 13:55
На здоровье! )
wincloa
wincloa 8 сентября 2012 00:21
Спасибо за очередную хорошую новость в плане ускорения загрузки сайта просто супер!
TITAN-UZ
TITAN-UZ 14 сентября 2012 09:21
Спасибо! Page sped показывает 89 - 90.
ПафНутиЙ
ПафНутиЙ 14 сентября 2012 09:34
wincloa,
TITAN-UZ,
Наздоровье)
OKyJIucT
OKyJIucT 17 сентября 2012 14:43
Выполнит данные рекомендации (урок 1 и урок 2), скорость поднялась с 75 до 86.

Подскажи, ПафНутий, то что описано на данной странице http://dorian.by/seo-optimizaciya-sajta-na-dle-ili-uvelichenie-poseshhaemosti-na-praktike.html , в разделе "Как ускорить загрузку сайта на DLE" (сразу после CatFace), ты не рассматривал, как один из вариантов ускорения? Или данный метод просто не работает? На глаз вроде как заметно небольшое ускорение. Что ты думаешь по этому поводу?
ПафНутиЙ
ПафНутиЙ 17 сентября 2012 21:55
Думаю простое включение сжатия и кеширования дадут тот же результат без правок движка.
websot
websot 22 сентября 2012 10:13
ааааааааа
ненавижу nginx
Все же не стоило переходить на него, а я заыл что на него перешел и не работает данный способ, отдает 502 ошибу(
abasive
abasive 22 сентября 2012 16:09
ПафНутиЙ,
Цитата: ПафНутиЙ
Так и должно быть, картинки, скрипты, css - всё уходит в кеш. Единственное, что забыл - для nginx это не работает, но сайтов на nginx очень мало, особенно dle-сайтов )))

Если связка apache+nginx будет работать?
websot
websot 23 сентября 2012 06:43
Хороший вопрос
Den1
Den1 24 сентября 2012 04:47
Спасибо, Павел! Очень много полезного материала!! Часто руководствуюсь вашими примерами и решениями.
ПафНутиЙ
ПафНутиЙ 26 сентября 2012 07:40
abasive,
websot,
связка nginx + apache работать не будет, т.к. стат файлы отдает nginx и до апача просто не доходит дело) поэтому и htaccess не работает.

Den1,
наздоровье)
nalex
nalex 30 октября 2012 11:04
Супер проверка! wink
Просто проверил существующие сайты, никаких изменений по ускорению еще не вносил.
Только установленный скрипт ДЛЕ абсолютно без наполнения показывает скорость 56.
С 4-мя статьями всего на сайте - скорость 65.
Сайт с массой статей - скорость 80.
Как это можно понять?
ПафНутиЙ
ПафНутиЙ 30 октября 2012 11:08
у них у всех идентичные шаблоны и новости?
nalex
nalex 1 ноября 2012 00:40
ПафНутиЙ,
На том, что скорость 65 - шаблон сторонний. На том, что только установлен и вообще еще ничего не добавлено (только нвости при установке которые, ничего не менял вообще) - на нем скорость56.
На третьем сайте слегка подправленный шаблон из комплекта при установке, слегка переделанный. Там много статей (по сравнению с предыдущими)))), картинок и т.д., ярлыков Яндекса, ТОП-100 штук пять было и т.д. - скорость самая высокая - 80. Может потому, что в настройках выставлено сжатие и кеширование?

Добавить комментарий

Комментировать могут только зарегистрированные пользователи

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.