Компрессия gzip на веб-сервере
Материал из 1GbWiki.
Версия 19:09, 20 сентября 2010 (править) 81.177.24.112 (Обсуждение) ← К предыдущему изменению |
Текущая версия (09:59, 16 апреля 2021) (править) (отменить) Dmih (Обсуждение | вклад) м |
||
(6 промежуточных версий не показаны.) | |||
Строка 43: | Строка 43: | ||
* Компрессия динамики - НЕ включена | * Компрессия динамики - НЕ включена | ||
- | + | ==== Сжатие статики на Apache ==== | |
- | + | На всех тарифах UNIX хостинга в веб-сервере Apache включен модуль [http://httpd.apache.org/docs/2.2/mod/mod_deflate.html mod_deflate], который позволяет осуществлять сжатие на лету методом [https://ru.wikipedia.org/wiki/Deflate Deflate] | |
+ | |||
+ | Для включения сжатия добавьте в файл /http/.htaccess следующие строки: | ||
+ | SetOutputFilter DEFLATE | ||
+ | <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> | ||
+ | это включит сжатие для файлов имеющих [https://ru.wikipedia.org/wiki/Список_MIME-типов MIME] тип text/html, text/xml и т.д. | ||
+ | <br /><br /> | ||
+ | Если по каким-либо соображениям использование модуля mod_deflate невозможно, то есть альтернативный способ отдачи сжатого контента, см. [[Предварительное сжатие статических файлов на Apache]] (решение для технических специалистов). | ||
==== Сжатие динамики на PHP ==== | ==== Сжатие динамики на PHP ==== | ||
Строка 58: | Строка 67: | ||
Обычно включается в готовом приложении с помощью его собственных настроек. | Обычно включается в готовом приложении с помощью его собственных настроек. | ||
- | ==== Если очень надо сжимать статику ==== | ||
- | |||
- | Единственный случай, когда это действительно полезно - сжимать статические .css или .js файлы (например, библиотеку jquery). Поскольку трудности со сжатием на общем веб-сервере Apache популярны, к счастью, есть простой обходной путь - сжать файлы заранее и положить их на сервер в сжатом виде. | ||
- | Что делать дальше - ясно из следующего примера (вторая часть): | ||
- | |||
- | http://www.ardamis.com/2010/07/11/compress-files-without-mod_gzip-or-mod_deflate/ | ||
[[Категория:WEB-сервер IIS]] | [[Категория:WEB-сервер IIS]] | ||
[[Категория:WEB-сервер Apache]] | [[Категория:WEB-сервер Apache]] |
Текущая версия
Содержание |
[править] Компрессия gzip на виртуальном хостинге
Суть - оно уже есть, дополнительно ничего делать не надо. Настроено хорошо и для большинства случаев подходит.
[править] IIS версии 6
- Компрессия статики - включена
- Компрессия динамики - НЕ включена
IIS сжимает (по запросу браузера) файлы следующих расширений:
- .htm
- .html
- .txt
- .js
Вносить индивидуальные параметры компрессии для конкретных сайтов нельзя, только глобально для сервера. По запросу можно добавить расширение в этот список.
[править] IIS версии 7 и 7.5
- Компрессия статики - включена
- Компрессия динамики - НЕ включена
IIS сжимает (по запросу браузера) файлы следующих MIME-типов:
- text/*
- message/*
- application/x-javascript
- application/atom+xml
- application/xaml+xml
На уровне сайта можно включать или откючать компрессию, вносить изменения в типы для сжатия нельзя. Пример файла web.config для управления сжатием (включить\выключить):
<configuration> <system.webServer> <urlCompression doStaticCompression="false" doDynamicCompression="false" /> </system.webServer> </configuration>
[править] Apache
- Компрессия статики - НЕ включена
- Компрессия динамики - НЕ включена
[править] Сжатие статики на Apache
На всех тарифах UNIX хостинга в веб-сервере Apache включен модуль mod_deflate, который позволяет осуществлять сжатие на лету методом Deflate
Для включения сжатия добавьте в файл /http/.htaccess следующие строки:
SetOutputFilter DEFLATE <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>
это включит сжатие для файлов имеющих MIME тип text/html, text/xml и т.д.
Если по каким-либо соображениям использование модуля mod_deflate невозможно, то есть альтернативный способ отдачи сжатого контента, см. Предварительное сжатие статических файлов на Apache (решение для технических специалистов).
[править] Сжатие динамики на PHP
В целом PHP может самостоятельно сжимать отдаваемые страницы, причем делается там это очень просто. К сожалению, это сжатие требует знания специфики конкретного сайта на PHP. Если у вас сайт на популярной CMS, то 99% из них умеют включать gzip сами, просто найдите там соответствующую опцию.
Если вы сами разрабатываете сайт, то можно попробовать самый простой метод - такой PHP код в начало кода вашего сайта:
ob_start("ob_gzhandler", 9);
Для подробностей прочтите документацию по PHP.
[править] Сжатие динамики на PERL, Ruby и так далее
Обычно включается в готовом приложении с помощью его собственных настроек.