Gzip встроен в штатный Nginx Ubuntu 24.04. Brotli — динамический модуль и должен точно совпадать с ABI пакета Nginx; не собирайте случайный бинарник поверх пакетной установки.

Важно: Ошибка ABI динамического модуля не даст Nginx запуститься. Проверяйте nginx -t до reload.

1. Включите безопасный gzip

gzip on;
gzip_vary on;
gzip_comp_level 5;
gzip_min_length 1024;
gzip_types text/plain text/css application/javascript application/json application/xml image/svg+xml;

2. Проверьте доступность Brotli-модуля

apt-cache search nginx | grep -i brotli
nginx -V 2>&1 | tr ' ' '\n' | grep module

3. Если модуль есть в доверенном репозитории

Установите пакет, убедитесь, что он загружен через modules-enabled, затем добавьте brotli on; и типы. Если пакета нет — оставьте gzip либо используйте CDN.

4. Измерьте результат

sudo nginx -t
sudo systemctl reload nginx
curl -sI -H 'Accept-Encoding: gzip, br' https://example.com/app.css | grep -i content-encoding

Для географически распределённой аудитории локальное сжатие можно дополнить CDN; подходящие предложения собраны среди хостингов с CDN.

Официальная документация