Мы знаем, что балансировка нагрузки очень важна для нормальной работы веб-сайта и взаимодействия с пользователем. Одна из вещей, которые необходимо сделать при балансировке нагрузки, — это включить функцию сжатия GZIP для сервера, чтобы сжимать страницу, запрошенную пользователем, чтобы сохранить пропускную способность сети и повысить скорость веб-сайта.
GZIP — это аббревиатура нескольких программ сжатия файлов, обычно относящихся к реализации проекта GNU.GZIP здесь означает GUN ZIP, который также является наиболее часто используемым методом сжатия среди двух методов сжатия, определенных протоколом HTTP1.1.Клиент просмотр Большинство компьютеров поддерживают этот формат сжатия. Далее DNSLA расскажет, как включить сжатие GZIP для популярных веб-серверов, таких как apache, IIS и nginx.
Как включить функцию GZIP в Apache
Apache включает GZIP, чтобы увидеть, включен ли модуль mod_deflate. Если нет, то его необходимо сначала загрузить. В файле конфигурации httpd.conf
LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so
Удалите предшествующий знак #. DNSLA рекомендует клиентам, мало знакомым с файлами конфигурации Apache, сделать резервную копию файлов конфигурации перед их изменением.
После включения модуля добавьте следующее содержимое в нижнюю часть конфигурационного файла httpd.conf:
<IfModule mod_deflate.c>
# 告诉 apache 对传输到浏览器的内容进行压缩
SetOutputFilter DEFLATE
# 压缩等级 9
DeflateCompressionLevel 9
</IfModule>
Это заархивирует все файлы. Уровень сжатия представляет собой целое число от 1 до 9, а значение находится в диапазоне от 1 (самый низкий) до 9 (самый высокий).Не рекомендуется устанавливать слишком высокий уровень. Несмотря на высокую степень сжатия, он занимает больше места. Ресурсы процессора.
В реальной разработке нам не нужно сжимать все файлы, например, нам не нужно сжимать файлы изображений gzip, потому что файлы изображений (обычно jpg, png и т. д.) уже были сжаты, и тогда сжатие gzip может быть контрпродуктивно (подробности).Смотреть изображения, чтобы включить сжатие gzip?Абсолютно нет!, фоновые изображения не должны быть сжаты gzip, особенно PNG), аналогично PDF и музыкальным файлам. Таким образом, мы можем настроить фильтрацию указанного файла или сжатие указанного файла.
Например, мы не хотим выполнять сжатие gzip для специальных файлов, таких как изображения:
<IfModule mod_deflate.c>
# 告诉 apache 对传输到浏览器的内容进行压缩
SetOutputFilter DEFLATE
# 压缩等级 9
DeflateCompressionLevel 9
#设置不对后缀gif,jpg,jpeg,png的图片文件进行压缩
SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary
</IfModule>
Или укажите формат файла для сжатия:
<IfModule mod_deflate.c>
# 压缩等级 9
DeflateCompressionLevel 9
# 压缩类型 html、xml、php、css、js
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-javascript application/x-httpd-php
AddOutputFilter DEFLATE js css
</IfModule>
вDeflateCompressionLevel
Это означает степень сжатия, которая делится на 1-9. Уровень 9 является самым высоким.Не рекомендуется использовать слишком высокую степень сжатия, которая вызовет слишком большую нагрузку на ЦП.
Как включить функцию GZIP в IIS
Откройте инструмент управления IIS, щелкните правой кнопкой мыши веб-сайт, откройте свойства веб-сайта и включите сжатие HTTP на вкладке «Службы».Не рекомендуется выбирать «Сжимать файлы приложений», но обязательно выберите «Сжимать статические файлы», иначе это означает, нет сжатия, и балансировка нагрузки не может быть достигнута. Затем выберите расширение сервера под моей станцией, создайте новое расширение сервера с именем GZIP и следующим путем добавления файла: c:\windows\system32\inetsrv\gzip.dll, а затем включите это расширение. DNSLA напоминает всем, что это еще не конец.Третий шаг - нам нужно изменить файл конфигурации и остановить службу IIS перед файлом конфигурации.(DNSLA напоминает всем, что служба IIS должна быть закрыта в первую очередь) Откройте C:\Windows \System32\inetsrv\MetaBase .xml, этот файл очень большой, найдите следующую информацию:
<IIsCompressionScheme Location ="/LM/W3SVC/Filters/Compression/gzip"
HcCompressionDll="%windir%\system32\inetsrv\gzip.dll"
HcCreateFlags="1"
HcDoDynamicCompression="TRUE"
HcDoOnDemandCompression="TRUE"
HcDoStaticCompression="TRUE"
HcDynamicCompressionLevel="0"
HcFileExtensions="htm
html
txt"
HcOnDemandCompLevel="10"
HcPriority="1"
HcScriptFileExtensions="asp
dll
exe"
>
</IIsCompressionScheme>
Изменение этого файла заключается в добавлении некоторых файловых суффиксов для сжатия, в которых HcFileExtensions — это расширение статических файлов, добавление js и css и т. д.; HcScriptFileExtensions — расширение динамических файлов, добавление aspx, HcDynamicCompressionLevel изменено на 9, (0 -10, 6 самый экономичный).
Затем вам нужно перезапустить службу IIS.
Как включить функцию GZIP в Nginx
По сравнению с apache и IIS nginx открыть GZIP намного проще: вам нужно только открыть файл конфигурации nginx.conf, найти gzip и удалить предшествующий символ комментария #, чтобы включить службу GZIP. Затем настройте GZIP.
Ниже приведена относительно оптимизированная конфигурация, и рекомендуется использование DNSLA.
Gzip on;
gzip_min_length 1024;
gzip_buffers 4 8k;
gzip_types text/plain application/x-javascript text/css application/xml;