Nginx: включить gzip-сжатие для текстовых ответов
Чтобы включить gzip в Nginx, добавьте настройки сжатия в блок http, укажите текстовые MIME-типы и проверьте ответ заголовком Accept-Encoding: gzip. Не сжимайте уже сжатые форматы без измерений: это может тратить CPU без заметного выигрыша.
Настройка в блоке http
http {
gzip on;
gzip_vary on;
gzip_min_length 1024;
gzip_comp_level 5;
gzip_types
text/plain
text/css
application/json
application/javascript
application/xml
image/svg+xml;
}Не добавляйте text/html в gzip_types: Nginx сжимает HTML по умолчанию. Уровень 5 — стартовое значение; подберите его по CPU и задержкам на вашем трафике.
Проверить заголовок ответа
curl -sSI -H 'Accept-Encoding: gzip' https://example.com/app.css | grep -i content-encodingОжидаемый заголовок — Content-Encoding: gzip. Если его нет, проверьте MIME-тип ответа, размер файла, конфигурацию и наличие CDN перед Nginx.
Директива | Назначение |
|---|---|
| Включает gzip |
| Перечисляет MIME-типы для сжатия |
| Не сжимает слишком маленькие ответы |
| Добавляет |
| Балансирует размер и нагрузку CPU |
Нужно ли перезагружать Nginx?
Проверьте синтаксис sudo nginx -t, затем выполните graceful reload. Он применит настройки без принудительного завершения активных соединений.