ПафНутиЙ-Блог » Разное » Увеличение скорости загрузки сайта на DLE (часть 2)

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

3.09
93
27448
Увеличение скорости загрузки сайта на 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 и обновить кеш в админке.

На сладкое: первому, успевшему дочитать до этого места, дарю второй, доставшийся мне недавно, купон на халявную регистрацию домена в зоне net.ru, com.ru или org.ru от руцентра, первый успешно использован "по делу" ))
Номер:
Внимание! У вас нет прав для просмотра скрытого текста.

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

  • Перенос DLE-сайта на новый домен (часть 1)
  • Как защитить свой php-скрипт и привязать его к домену на примере модуля для DLE
  • Увеличение скорости загрузки сайта на DLE (часть 1) обновлено
  • Предпросмотр комментария (jQuery edition)
Закрыть

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

+

Комментарии

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

Код вставлять перед DirectoryIndex index.php ?
ПафНутиЙ
ПафНутиЙ 4 сентября 2012 00:33
Ответов: 0 #2139
по HTTP заголовку
Axel
Axel 3 сентября 2012 23:40
Ответов: 0 #2137
Спасибо! Буду следить, что гугл теперь скажет по поводу загрузки сайта:)

P.S. В похожих новостях текст "Картинки нету" не очень прикольный. Короче говоря, нет слова "нету" :)
denis5555
denis5555 4 сентября 2012 07:51
Ответов: 1 #2140
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 или без?
ПафНутиЙ
ПафНутиЙ 4 сентября 2012 09:25
Ответов: 0 #2142
Первый раз такой сервер вижу.
Server: DataPalm/3.5 - соответственно это data-palm и как он работает с апачевскими правилами - хз )
websot
websot 4 сентября 2012 08:33
Ответов: 0 #2141
насколько очевидно у тебя DataPalm/3.5
denis5555
denis5555 4 сентября 2012 10:24
Ответов: 2 #2143
Мдааа, не повезло мне. На других хостингах, где расположены другие сайты Server: nginx

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

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

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

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

Den1,
наздоровье)
Weboster
Weboster 19 сентября 2015 19:54
Ответов: 0 #5127
У меня связка nginx + apache Работает все без проблем.
Nginx работает как обратный прокся
nalex
nalex 30 октября 2012 11:04
Ответов: 1 #2318
Супер проверка! wink
Просто проверил существующие сайты, никаких изменений по ускорению еще не вносил.
Только установленный скрипт ДЛЕ абсолютно без наполнения показывает скорость 56.
С 4-мя статьями всего на сайте - скорость 65.
Сайт с массой статей - скорость 80.
Как это можно понять?
ПафНутиЙ
ПафНутиЙ 30 октября 2012 11:08
Ответов: 0 #2319
у них у всех идентичные шаблоны и новости?

Информация

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