Про принудительный gzip

sansan sansan   02.04.2017 13:24   1 208  
Я ж "извращенец".

Давайте поговорим про "принудителную" отдачу контента в браузер в формате gzip.
В теории - контент "по умолчанию" - зипуется. А в реалии?.. Не факт.

Пишем в .htaccess конструкцию директив:
AddEncoding gzip .gz
 <FilesMatch "\.js.gz$">
  ForceType text/javascript 
  Header set Content-Encoding: gzip
</FilesMatch>

<FilesMatch "\.js$">
  RewriteEngine On
  RewriteCond %{HTTP_USER_AGENT} !".*Safari.*"
  RewriteCond %{HTTP:Accept-Encoding} gzip
  RewriteCond %{REQUEST_FILENAME}.gz -f
  RewriteRule (.*)\.js$ $1\.js.gz [L]
  ForceType text/javascript
</FilesMatch>

<FilesMatch "\.css.gz$">
  ForceType text/css
  Header set Content-Encoding: gzip
</FilesMatch>

<FilesMatch "\.css$">
  RewriteEngine On
  RewriteCond %{HTTP_USER_AGENT} !".*Safari.*"
  RewriteCond %{HTTP:Accept-Encoding} gzip
  RewriteCond %{REQUEST_FILENAME}.gz -f
  RewriteRule (.*)\.css$ $1\.css.gz [L]
  ForceType text/css
</FilesMatch>

"Загоняем" физически все css и js в gzip - ощущаем позитив от возростания скорости загрузки страниц.

Пробовал кто-то (окромя меня, извращенца) эту методу "ускорения"? В чем - минусы?
Если заметили.

("подхвачено" на хабрхабр, идея очевидно не моя.) В принципе - любопытно. Серверный скрипт не везде адекватно зипует контент, "принудительно", трудоемко - но однозначно :) На "тяжелых" шаблонах Джумла! эффект - более чем заметен.

Есть - "камни", если кто вообще пробовал...

Ответы на вопрос (19) Написать ответ
sansan sansan   06.04.2017 16:31
Похоже - аудитория "теоретиков" и "знатоков".

Вопрос закрывается :) Не с кем обсуждать. Жаль.
0
Решение
feniks79 feniks79   02.04.2017 14:00
Скажите, а это можно прям оптом скопировать и пхнуть в .htaccess для вордпресс? Измучилась с проблемой ооочень долгой загрузки. Сама кодер тот еще, к спецам обращалась - начинают плагины совать. Их у меня уже воз и маленькая тележка переменялось, причем каждый последующий, по утверждению устанавливающего - "самое то", а то, что ставили до него - г***. Только сдвигов положительных минимум.
0
sansan sansan   02.04.2017 14:11
Вообще-то можно.
От cms никак не зависит. Скрипт - только декодирует отдачу архива в браузер, если на стороне сервера включен модуль комресси/декомпрессии.
Только не забудьте, что css и js вам нужно - упаковать в gzip и "залить" на сервер вместо неархивированных файлов. А исходники - "снести" (на некоторых серверах - не обязательно, к слову. Как отладить серверный скрипт и насколько "мудр" у вас сервер и суппорт.)

Скорость... раза в три :) Если б не мои "извраты", некоторые сайты (бы) до сей поры (бы) "грузились".

Принудительный zip - штука классная. Удивлен, что не шибко популярная. Ленится народ, надо "зиповать" руками.
0
sansan sansan   02.04.2017 14:14
Аккуратно надо, от хосьера зависит, что у него там... подключено.
Побовал на всех "своих" (десяток), вроде вдекватно, сбоев не было. Синтаксис... может отличаться.
0
sansan sansan   02.04.2017 14:35
И... не рассказывайте никому :)
Если проставите.
"Серетое оружие.

Вопрос - только в тонкостях настройки. Дя тех, кто поймет "секретнось" и... зачем.
0
Fargoname Fargoname   02.04.2017 15:39
Сегодня обязательно попробую
0
Petroff Petroff   02.04.2017 15:56
В чем смысл этой строки
RewriteCond %{HTTP_USER_AGENT} !".*Safari.*"
0
sansan sansan   02.04.2017 20:12
Тема не новая. На момент "проб" этой приблуды строчка имела значение, года два назад.
Если честно... я уже забыл - "зачем" эта функция.
0
Sky91 Sky91   02.04.2017 16:12
Добрый день как будет для DLE не знаете?
0
tryam tryam   02.04.2017 16:42
Вот код для Gzip сжатия:

<ifModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/css text/javascript application/javascript application/x-javascript
</ifModule>
Зачем еще что о мудрить? Судя по коду (я могу ошибаться) эти команды заставляют браузеры "сафари" использовать Gzip, чего "сафари" очень не любят и высвечивают всякую ерунду на экране.
0
Astro Mutant Astro Mutant   02.04.2017 19:11
На нормальных хостингах уже всё зазиповано по самое немогу.
0
sansan sansan   02.04.2017 20:27
На "нормальных" - это каких? Я юзаю валуехост, мастерхост, докер. Все сервера - выделеннные vps. + облако cloudflare.com со своим зипом.

Совсем не факт. И - попробуйте, кстати, сравнить скорость. Серверного "зипования" и ручного.
Я тоже думал аналогично. Пока не попробовал. На относительно "лёгких" шаблонах с минимум css и js - не стоит и пробовать, лишняя морока (старые сайты можно "вывести" вручную).
А вот на "навороченных" нынешних...
Статья (на хабрхабр) называлась как-то типо: "Пишем правильный .htaccess" в двух частях статья, года три назад пропимсал какой-то товарищ, увы - не помню автора. Ядостаточно долго "шаманил" с его "зарисовками"...

Кстати, там тоже критика была именно в тему - "У нормального хостера..." Проверять стоит "на себе", а не "теоретически". Смотрим "ускоренице" по https://developers.google.com/speed/pagespeed/insights/ и сравниваем - "трёп" или нет.
Я с хостером долго общался "на тему", к единому мнению мы не пришли. Не "работаеют" серверные настройки, а предложенная "фигня" - работает.
0
Astro Mutant Astro Mutant   04.04.2017 18:42
Просвещайтесь, украинский хостинг. Не выделенный, без облаков. nginx + apache + memcached/opcache .
goo.gl/V1FMkU
0
Ruslan Safin Ruslan Safin   02.04.2017 22:13
Пример, приведенный вами, в 80% случаев полная туфта. Нормальные хостеры используют двухуровневую архитектуру веб-серверов. nginx отдает всю статику (js, css и т.д), а скрипты выполняются через Apache + PHP.

Ваши настройки gzip в .htaccess будут проигнорированы.
3
Vebster777 Vebster777   03.04.2017 09:00
+1 большинство хостингов уже переводят статику на nginx, прежде чем копировать все это в htaccess убедитесь в том, что статику отдает apache, а не nginx
0
Astro Mutant Astro Mutant   04.04.2017 18:38
Ruslan Safin, совершенно верно. Товарищу sansan этого не понять.
0
Ruslan Safin Ruslan Safin   02.04.2017 22:17
Если ваш хостер в прошлом веке завис и использует только apache + php, всю портянку, приведенную вами, можно заменить на:

<ifModule mod_deflate.c>
<IfModule mod_filter.c>
AddOutputFilterByType DEFLATE text/plain text/html
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/javascript application/javascript application/x-javascript
AddOutputFilterByType DEFLATE text/xml application/xml application/xhtml+xml application/rss+xml
AddOutputFilterByType DEFLATE application/json
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject application/x-font-ttf font/opentype image/svg+xml image/x-icon
</IfModule>
</ifModule>
0
sansan sansan   03.04.2017 10:51
Теории, теории...
После реализации своих "портянок" скорость загрузки страниц возрастает от 65 до 85 (по Google). Это - практика.

А так... у всех свои "тараканы". Что говорится - "не - нравится? - Не ешь" :)
0
Ruslan Safin Ruslan Safin   03.04.2017 20:13
Просто это уже устаревшая фишка. Неприменимая в современных условиях. Да скорость возрастает, но если использовать хостера с nginx таких вопросов о производительности вообще не возникнет.
0

Войдите, чтобы написать ответ
Вход Регистрация

Фриланс нового поколения. Всё за 500 рублей!