Cжатие Gzip, сжимает файлы до их отправки с сервера в браузер, что значительно сокращает время загрузки и улучшает пользовательский опыт. Вот почему этот процесс выгоден:

  • Более быстрая загрузка страниц: сжатые файлы меньше по размеру и передаются быстрее, что приводит к более быстрой загрузке страниц.
  • Эффективное использование полосы пропускания: сокращает объем данных, передаваемых по сети, экономя полосу пропускания.
  • Улучшенный пользовательский опыт: более быстрый веб-сайт обеспечивает более плавный и приятный просмотр.
  • Преимущества SEO: Поисковые системы отдают предпочтение быстро загружающимся веб-сайтам, что потенциально повышает ваш рейтинг в результатах поиска.
  • Простота внедрения: с помощью нескольких настроек конфигурации Nginx можно эффективно включить сжатие Gzip.

Включение сжатия Gzip в Nginx оптимизирует производительность вашего веб-сервера и способствует более оптимизированному и удобному для пользователя веб-опыту. В следующих разделах мы проведем вас через технические шаги по внедрению этой функции, гарантируя, что ваш веб-сайт будет работать наилучшим образом с сжатием Gzip.

Включить сжатие Gzip в Nginx

Шаг 1: Проверка статуса сжатия Gzip

Чтобы проверить, работает ли сжатие Gzip на вашем сервере Nginx, используйте следующую команду:

curl -I -H "Accept-Encoding: gzip" http://yourdomain.com

Эта команда запрашивает ваш домен, указывая предпочтение для содержимого, закодированного Gzip. Наличие ‘Content-Encoding: gzip’ в ответе сервера подтверждает сжатие Gzip.

Типичный успешный ответ включает следующие заголовки:

HTTP/1.1 200 OK
Server: nginx
...
Content-Encoding: gzip
...

Шаг 2: Измените конфигурацию Nginx

Если Gzip неактивен, отредактируйте файл конфигурации Nginx, который обычно находится по адресу /etc/nginx/nginx.conf. Доступ к этому файлу можно получить с помощью команды типа:

sudo nano /etc/nginx/nginx.conf

В файле конфигурации включите эти строки, чтобы включить сжатие Gzip. Эти директивы активируют Gzip и назначают определенные типы контента для сжатия:

## enables GZIP compression ##
gzip on;

## content types to compress, excluding text/html which is default ##
gzip_types
    application/json
    application/javascript
    application/xml
    text/css
    text/javascript
    text/plain
    text/xml;

Примечание: Поскольку text/htmlсжатие происходит автоматически, нет необходимости указывать его явно.

Шаг 3: Проверьте конфигурацию и перезапустите Nginx

Перед применением изменений крайне важно проверить конфигурацию Nginx на наличие синтаксических ошибок:

sudo nginx -t

Эта команда проверяет файл конфигурации на наличие ошибок. Если синтаксис правильный, приступайте к перезапуску службы Nginx, чтобы активировать новые настройки:

sudo systemctl restart nginx

Перезапуск Nginx применяет обновленную конфигурацию, эффективно включая сжатие Gzip для определенных типов контента.

Расширенная конфигурация сжатия Gzip в Nginx

Индивидуальная конфигурация Nginx Gzip необходима для максимизации производительности выделенных серверов. В этом разделе представлена ​​расширенная настройка для оптимизации нагрузки и производительности сервера.

Настройка Nginx для оптимального сжатия Gzip

Получите доступ к файлу конфигурации Nginx с помощью этой команды:

sudo nano /etc/nginx/nginx.conf

Реализуйте следующие расширенные настройки для сжатия Gzip:

## Enable GZIP compression ##
gzip on;

## Compression level (1-9) - 4 is balanced, 9 maximizes compression ##
gzip_comp_level 9;

## Minimum file size for compression in bytes ##
gzip_min_length 1000;

## Compress data for clients using proxies ##
gzip_proxied any;

## Add vary header for responses eligible for compression ##
gzip_vary on;

## MIME-types for compression, excluding text/html (default) ##
gzip_types
    application/atom+xml
    application/geo+json
    application/javascript
    application/x-javascript
    application/json
    application/ld+json
    application/manifest+json
    application/rdf+xml
    application/rss+xml
    application/xhtml+xml
    application/xml
    font/eot
    font/otf
    font/ttf
    image/svg+xml
    text/css
    text/javascript
    text/plain
    text/xml

Разбор расширенных настроек сжатия Gzip

  • Уровень сжатия – gzip_comp_level: позволяет использовать уровни сжатия от 1 до 9. Более высокие уровни обеспечивают большее сжатие, но увеличивают использование ЦП. Баланс имеет решающее значение, чтобы избежать чрезмерной нагрузки на ЦП. Уровень 4 часто является оптимальным, обеспечивая эффективное сжатие без значительной нагрузки на ЦП.
  • Минимальный размер файла для сжатия – gzip_min_length: эта директива устанавливает минимальный размер файла для сжатия, по умолчанию 1000 байт. Сжатие меньших файлов может быть контрпродуктивным из-за увеличения нагрузки на ЦП. Статические файлы, особенно изображения, обычно не выигрывают от Gzip; некоторые могут даже раздуваться в размере.
  • Compression Vary Header – gzip_proxied: Необходим для контента, обслуживаемого через прокси. Он обеспечивает эффективное кэширование как сжатых, так и несжатых ресурсов, оптимизируя доставку на основе возможностей клиента.
  • Типы сжатия MIME: в этом разделе перечислены типы MIME, подходящие для сжатия. Конфигурация включает различные типы помимо типов по умолчанию (текстовые и файлы JavaScript), что повышает производительность для более широкого диапазона контента. Обратите внимание, что статические файлы изображений, кроме SVG (image/svg+xml), обычно следует исключать из сжатия Gzip, чтобы избежать снижения производительности.

Заключительные мысли о включении сжатия Gzip с помощью Nginx

В этом руководстве мы рассмотрели, как включить и оптимизировать сжатие Gzip в Nginx. Выполнив шаги по проверке активации и настройке параметров, вы можете улучшить производительность своего сервера. Главное — найти правильный баланс между уровнем сжатия и нагрузкой на сервер. При необходимости настройте параметры и отслеживайте их влияние. Эти методы должны помочь вашему веб-сайту быстрее загружать страницы и улучшить пользовательский опыт.