Каким образом можно включить gzip сжатие страниц
Материал из DiPHOST.Ru wiki system
Schors (Обсуждение | вклад) |
Schors (Обсуждение | вклад) |
||
(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 файлам будут перенаправляться на их | |
- | сжатые копии, а | + | сжатые копии, а браузеру будет сообщаться, что эти файлы упакованы в 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-типов, несмотря на размер. Что может в некоторых случаях увеличивать итоговый размер информации.
ВНИМАНИЕ! Обратите внимание, что для сжатия ответов приложений 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, сжимают текстовые файлы автоматически.