Apache Версия 2.0 Сервера HTTP
Description: | содержание компресса прежде, чем это поставляют клиенту |
---|---|
Status: | расширение |
Module Identifier: | deflate_module |
Source File: | mod_deflate.c |
mod_deflate
модуль обеспечивает
DEFLATE
фильтр продукции, который позволяет продукцию от вашего сервера быть сжатой прежде, чем быть посланным клиенту по сети.
это - простая типовая конфигурация для нетерпеливого.
AddOutputFilterByType DEFLATE text/html text/plain text/xml
следующая конфигурация, в то время как приводящий к более сжатому содержанию, является также намного более сложной. Не используйте это, если Вы полностью не понимаете все детали конфигурации.
<Location />
# Insert filter
SetOutputFilter DEFLATE
# Netscape 4.x has some problems...
BrowserMatch ^Mozilla/4 gzip-only-text/html
# Netscape 4.06-4.08 have some more problems
BrowserMatch ^Mozilla/4\.0[678] no-gzip
# MSIE masquerades as Netscape, but it is fine
# BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
# NOTE: Due to a bug in mod_setenvif up to Apache 2.0.48
# the above regex won't work. You can use the following
# workaround to get the desired effect:
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
# Don't compress images
SetEnvIfNoCase Request_URI \
\.(?:gif|jpe?g|png)$ no-gzip dont-vary
# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary
</Location>
сжатие осуществлено
DEFLATE
filter
. следующая директива позволит сжатие для документов в контейнере, куда это помещено:
SetOutputFilter DEFLATE
некоторые популярные браузеры не могут обращаться со сжатием всего содержания, таким образом Вы можете хотеть установить
gzip-only-text/html
отметить к
1
только позволять файлы html, которые будут сжаты (см. ниже). Если Вы устанавливаете это в
что - нибудь, но
1
это будет игнорироваться.
если Вы хотите ограничить сжатие специфическими типами MIME вообще, Вы можете использовать
AddOutputFilterByType
директива. Вот - пример предоставления возможности сжатия только для файлов html Apacheской документации:
<Directory "/your-server-root/manual">
AddOutputFilterByType DEFLATE text/html
</Directory>
для браузеров, которые имеют проблемы даже со сжатием всех типов файла, используйте
BrowserMatch
директива, чтобы установить
no-gzip
отметить для того специфического браузера так, чтобы никакое сжатие не было выполнено. Вы можете объединиться
no-gzip
с
gzip-only-text/html
получить лучшие результаты. В том случае прежний отвергает последнего. Смотрите на следующую выдержку из
configuration example
определенный в секции выше:
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
сначала мы исследуем для a
User-Agent
вереница, которая указывает версию Навигатора Netscape 4.x. Эти версии не могут обращаться со сжатием типов кроме
text/html
. версии 4.06, 4.07 и 4.08 также имеют проблемы с уменьшающими давление файлами html. Таким образом, мы полностью выключаем выкачивающийся фильтр для них.
третье
BrowserMatch
директива устанавливает предполагаемую идентичность пользовательского агента, потому что Microsoft Internet Explorer идентифицирует себя также как "Mozilla/4", но фактически в состоянии обращаться с требуемым сжатием. Поэтому мы соответствуем против дополнительной вереницы "MSIE" (
\b
средства "граница слова") в
User-Agent
удар головой и выключает ограничения, определенные прежде.
DEFLATE
фильтр всегда вставляется после фильтров РЕСУРСА как PHP или ПЕРВАЯ СТЕПЕНЬ ИНТЕГРАЦИИ. Это никогда не касается внутренних подзапросов.
mod_deflate
модуль также обеспечивает фильтр чтобы уменьшить давление gzip сжатое тело запроса. Чтобы активизировать эту особенность, Вы должны вставить
DEFLATE
фильтр во вход фильтрует использование цепи
SetInputFilter
или
AddInputFilter
, например:
<Location /dav-area>
SetInputFilter DEFLATE
</Location>
теперь, если запрос содержит a
Content-Encoding: gzip
удар головой, тело будет автоматически уменьшено давление. Немного браузеров имеют способность к телам запроса gzip. Однако, некоторые специальные заявления фактически поддерживают сжатие запроса, например некоторые
WebDAV
клиенты.
если Вы оцениваете тело запроса самостоятельно,
не доверять
Content-Length
удар головой!
удар головой Довольной длины отражает длину поступающих данных от клиента и
нет
счет байта уменьшенного давление потока данных.
mod_deflate
модуль посылает a
Vary: Accept-Encoding
удар головой ответа HTTP, чтобы привести в готовность полномочия, что припрятавший про запас ответ нужно послать только клиентам, которые посылают соответствующее
Accept-Encoding
удар головой запроса. Это препятствует сжатому содержанию быть посланным клиенту, который не будет понимать это.
если Вы используете некоторые специальные исключения, зависящие, например,
User-Agent
удар головой, Вы должны вручную формировать дополнение к
Vary
удар головой, чтобы привести в готовность полномочия дополнительных ограничений. Например, в типичной конфигурации, где дополнение
DEFLATE
фильтр зависит
User-Agent
, Вы должны добавить:
Header append Vary User-Agent
если ваше решение о сжатии зависит от другой информации чем удары головой запроса (
например.
версия HTTP), Вы должны установить
Vary
удар головой к ценности
*
. это препятствует послушным полномочиям прятать про запас полностью.
Header set Vary *
Description: | размер фрагмента, который будет сжат однажды zlib |
---|---|
Syntax: |
DeflateBufferSize
value
|
Default: |
DeflateBufferSize 8096
|
Context: | сервер config, действительный хозяин |
Status: | расширение |
Module: | mod_deflate |
DeflateBufferSize
директива определяет размер в байтах фрагментов, которые zlib должен сжать однажды.
Description: | сколько сжатия делают мы обращаемся к продукции |
---|---|
Syntax: |
DeflateCompressionLevel
value
|
Default: |
Zlib's default
|
Context: | сервер config, действительный хозяин |
Status: | расширение |
Module: | mod_deflate |
Compatibility: | эта директива доступна начиная с Apacheа 2.0.45 |
DeflateCompressionLevel
директива определяет, какой уровень сжатия должен использоваться, чем выше ценность, тем лучше сжатие, но больше времени центрального процессора обязано достигать этого.
ценность должна между 1 (меньше сжатия) и 9 (больше сжатия).
Description: | помещает степень сжатия в примечание для заготовки леса |
---|---|
Syntax: |
DeflateFilterNote [
type
]
notename
|
Context: | сервер config, действительный хозяин |
Status: | расширение |
Module: | mod_deflate |
Compatibility: | напечатать является доступным начиная с Apacheа 2.0.45 |
DeflateFilterNote
директива определяет, что примечание о степенях сжатия должно быть присоединено к запросу. Название примечания - ценность, определенная для директивы. Вы можете использовать то примечание в статистических целях, добавляя ценность к вашему
access log
.
DeflateFilterNote ratio
LogFormat '"%r" %b (%{ratio}n) "%{User-agent}i"' deflate
CustomLog logs/deflate_log deflate
если Вы хотите извлечь более точные ценности из ваших регистраций, Вы можете использовать напечатать аргумент, чтобы определить тип данных, оставленных как примечание для заготовки леса. напечатать может быть один из:
Input
Output
Ratio
output/input * 100
) в примечании. Это - неплатеж, если
напечатать
аргумент опущен.
таким образом Вы можете регистрировать это этот путь:
DeflateFilterNote Input instream
DeflateFilterNote Output outstream
DeflateFilterNote Ratio ratio
LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate
CustomLog logs/deflate_log deflate
Description: | сколько памяти должно использоваться zlib для сжатия |
---|---|
Syntax: |
DeflateMemLevel
value
|
Default: |
DeflateMemLevel 9
|
Context: | сервер config, действительный хозяин |
Status: | расширение |
Module: | mod_deflate |
DeflateMemLevel
директива определяет, сколько памяти должно использоваться zlib для сжатия (ценность между 1 и 9).
Description: | размер окна сжатия Zlib |
---|---|
Syntax: |
DeflateWindowSize
value
|
Default: |
DeflateWindowSize 15
|
Context: | сервер config, действительный хозяин |
Status: | расширение |
Module: | mod_deflate |
DeflateWindowSize
директива определяет zlib размер окна сжатия (ценность между 1 и 15). Вообще, чем выше размер окна, тем выше может степень сжатия ожидаться.