Каким образом можно включить gzip сжатие страниц

Материал из DiPHOST.Ru wiki system

(Различия между версиями)
Перейти к: навигация, поиск
 
(8 промежуточных версий не показаны.)
Строка 3: Строка 3:
<meta name="title" content="Каким образом можно включить gzip сжатие страниц"></meta>
<meta name="title" content="Каким образом можно включить gzip сжатие страниц"></meta>
-
Большие css и js можно на  свой страх и риск самостоятельно сжать. Попробуйте
+
=== Настройка веб-сервера ===
-
упаковать файлы css и js в gzip так, чтобы рядом с исходными файлами находились их
+
 
-
упакованные версии с расширением gz (например style.css.gz)
+
Можно использовать специальный модуль веб-сервера apache.  Для автоматического сжатия текстовых файлов достаточно добавить в файл .htaccess:
 +
 
 +
<IfModule deflate_module>
 +
    AddOutputFilterByType DEFLATE text/html text/plain text/xml text/x-js text/javascript text/css
 +
    AddOutputFilterByType DEFLATE application/xml application/xhtml+xml
 +
    AddOutputFilterByType DEFLATE application/x-javascript application/javascript
 +
    AddOutputFilterByType DEFLATE application/json
 +
</IfModule>
 +
 
 +
Однако, этот модуль будет пытаться сжимать все файлы указанных MIME-типов, несмотря на размер. Что может в некоторых случаях увеличивать итоговый размер информации.
 +
 
 +
{{warning| Обратите внимание, что для сжатия ответов приложений [[WSGI| WSGI]], следует положить соответствующий файл .htaccess в директорию /home/{{hl|<ваш логин>}}/www/site{{hl|<номер сайта>}}/webapp/ }}
 +
 
 +
=== Сжатие вручную ===
 +
 
 +
Большие css и js самостоятельно сжать. Попробуйте упаковать файлы css и js в gzip так, чтобы рядом с исходными файлами находились их упакованные версии с расширением gz (например style.css.gz)ю Это можно сделать через консоль [[SSH]] такой командой:
 +
 
 +
gzip my_big_file.css > my_big_file.css.gz
 +
 
После этого в файл .htaccess вашего сайта надо будет прописать:
После этого в файл .htaccess вашего сайта надо будет прописать:
Строка 30: Строка 48:
  </FilesMatch>
  </FilesMatch>
-
После этого все обращения браузера к js и css файлам будут перенаправляться на их
+
В результате все обращения браузера к js и css файлам будут перенаправляться на их
-
сжатые копии, а при отдаче сжатых файлов браузеру будет сообщаться, что эти файлы
+
сжатые копии, а браузеру будет сообщаться, что эти файлы упакованы в gzip.
-
упакованы в gzip.  
+
 
 +
=== Сжатия статики, отдаваемой Nginx ===
 +
 
 +
[[Cookbook_nginx|Рецепты nginx]], которые предусматривают обработку статических файлов напрямую nginx, сжимают текстовые файлы автоматически.
[[Category:HowTo]]
[[Category:HowTo]]

Текущая версия на 12:13, 25 февраля 2015

Настройка веб-сервера

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

<IfModule deflate_module>
    AddOutputFilterByType DEFLATE text/html text/plain text/xml text/x-js text/javascript text/css 
    AddOutputFilterByType DEFLATE application/xml application/xhtml+xml 
    AddOutputFilterByType DEFLATE application/x-javascript application/javascript
    AddOutputFilterByType DEFLATE application/json
</IfModule>

Однако, этот модуль будет пытаться сжимать все файлы указанных MIME-типов, несмотря на размер. Что может в некоторых случаях увеличивать итоговый размер информации.


File:Messagebox warning.png ВНИМАНИЕ!
Обратите внимание, что для сжатия ответов приложений WSGI, следует положить соответствующий файл .htaccess в директорию /home/<ваш логин>/www/site<номер сайта>/webapp/


Сжатие вручную

Большие css и js самостоятельно сжать. Попробуйте упаковать файлы css и js в gzip так, чтобы рядом с исходными файлами находились их упакованные версии с расширением gz (например style.css.gz)ю Это можно сделать через консоль SSH такой командой:

gzip my_big_file.css > my_big_file.css.gz

После этого в файл .htaccess вашего сайта надо будет прописать:

RewriteEngine on

RewriteCond %{HTTP:Accept-encoding} gzip
RewriteCond %{REQUEST_FILENAME}\.gz -s
RewriteRule ^(.*)\.css $1\.css\.gz [QSA]

RewriteCond %{HTTP:Accept-encoding} gzip
RewriteCond %{REQUEST_FILENAME}\.gz -s
RewriteRule ^(.*)\.js $1\.js\.gz [QSA]

<FilesMatch .*\.js\.gz$>
   ForceType text/javascript
   Header set Content-Encoding gzip
   Header append Vary Accept-Encoding
</FilesMatch>

<FilesMatch .*\.css\.gz$>
   ForceType text/css
   Header set Content-Encoding gzip
   Header append Vary Accept-Encoding
</FilesMatch>

В результате все обращения браузера к js и css файлам будут перенаправляться на их сжатые копии, а браузеру будет сообщаться, что эти файлы упакованы в gzip.

Сжатия статики, отдаваемой Nginx

Рецепты nginx, которые предусматривают обработку статических файлов напрямую nginx, сжимают текстовые файлы автоматически.

Источник — «https://wiki.diphost.ru/Gzip-encoding»

Категория:

Личные инструменты
© 2006 — ООО «Дремучий лес»
Служба техподдержки: support@diphost.ru
Тексты этого сайта являются полностью оригинальными
или оригинальными компиляциями ООО «Дремучий Лес».
Распространяются по лицензии WTFPL
Отзывы о хостинге diphost.ru Отзывы на hostobzor.ru