Каким образом можно включить gzip сжатие страниц
Материал из DiPHOST.Ru wiki system
Schors (Обсуждение | вклад) |
Schors (Обсуждение | вклад) |
||
Строка 16: | Строка 16: | ||
Однако, этот модуль будет пытаться сжимать все файлы указанных MIME-типов, несмотря на размер. Что может в некоторых случаях увеличивать итоговый размер информации. | Однако, этот модуль будет пытаться сжимать все файлы указанных MIME-типов, несмотря на размер. Что может в некоторых случаях увеличивать итоговый размер информации. | ||
- | {{warning| Обратите внимание, что для сжатия ответов приложений [[WSGI|WSGI]], следует положить соответствующий файл .htaccess в директорию / | + | {{warning| Обратите внимание, что для сжатия ответов приложений [[WSGI| WSGI]], следует положить соответствующий файл .htaccess в директорию /home/{{hl|<ваш логин>}}/www/site{{hl|<номер сайта>}}/webapp/ }} |
=== Сжатие вручную === | === Сжатие вручную === |
Текущая версия на 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-типов, несмотря на размер. Что может в некоторых случаях увеличивать итоговый размер информации.
![]() |
ВНИМАНИЕ! Обратите внимание, что для сжатия ответов приложений 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, сжимают текстовые файлы автоматически.