Настройка сжатия контента (Gzip/Brotli) для сайта

Наша компания занимается разработкой, поддержкой и обслуживанием сайтов любой сложности. От простых одностраничных сайтов до масштабных кластерных систем построенных на микро сервисах. Опыт разработчиков подтвержден сертификатами от вендоров.
Разработка и обслуживание любых видов сайтов:
Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Предлагаемые услуги
Показано 1 из 1 услугВсе 2065 услуг
Настройка сжатия контента (Gzip/Brotli) для сайта
Простая
от 4 часов до 2 рабочих дней
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    874
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    851

Настройка Gzip/Brotli сжатия

Сжатие на транспортном уровне уменьшает размер HTML, CSS, JS в 3–10 раз. Brotli даёт на 15–25% лучшее сжатие чем Gzip при том же CPU. Настройка занимает 30 минут и не требует изменений кода.

Nginx: Gzip + Brotli

# /etc/nginx/nginx.conf или /etc/nginx/conf.d/compression.conf

# Gzip — поддерживается везде
gzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;        # 1-9, баланс CPU/сжатие; 6 — хорошая точка
gzip_min_length 256;      # не сжимать очень маленькие файлы
gzip_types
    application/javascript
    application/json
    application/xml
    application/rss+xml
    image/svg+xml
    text/css
    text/html
    text/javascript
    text/plain
    text/xml
    font/woff
    font/woff2;

# Brotli — нужен модуль ngx_brotli
# Установка: apt install libnginx-mod-brotli
brotli on;
brotli_comp_level 6;
brotli_types
    application/javascript
    application/json
    text/css
    text/html
    text/plain
    image/svg+xml
    font/woff2;

Проверка:

curl -H "Accept-Encoding: br" -I https://example.ru/
# Ответ должен содержать: Content-Encoding: br

curl -H "Accept-Encoding: gzip" -I https://example.ru/
# Ответ: Content-Encoding: gzip

Pre-compressed static assets

Для статических файлов (JS, CSS, бандлы) — генерировать .gz и .br файлы при сборке, отдавать напрямую. Нет расхода CPU при каждом запросе:

// vite.config.ts
import { defineConfig } from 'vite';
import viteCompression from 'vite-plugin-compression';

export default defineConfig({
    plugins: [
        viteCompression({ algorithm: 'gzip',   ext: '.gz' }),
        viteCompression({ algorithm: 'brotliCompress', ext: '.br' }),
    ]
});
# Nginx: отдавать pre-compressed файлы
location ~* \.(js|css|woff2)$ {
    gzip_static  on;    # ищет .gz версию
    brotli_static on;   # ищет .br версию (модуль ngx_brotli)
    expires 1y;
    add_header Cache-Control "public, immutable";
}

Apache

# .htaccess
<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/css application/javascript
    AddOutputFilterByType DEFLATE application/json image/svg+xml font/woff2
</IfModule>

Laravel: middleware для API

// По умолчанию Laravel не сжимает ответы
// Добавить middleware в bootstrap/app.php для API
->withMiddleware(function (Middleware $middleware) {
    $middleware->api(append: [
        \Illuminate\Http\Middleware\GzipResponse::class, // Laravel 11+
    ]);
})

Или через Nginx — предпочтительнее для производительности.

Типичные результаты сжатия

Файл Оригинал Gzip Brotli
app.js 500 кБ 150 кБ 130 кБ
app.css 80 кБ 18 кБ 15 кБ
HTML страница 50 кБ 12 кБ 10 кБ

Срок настройки: 30 минут для Nginx конфигурации.