Как предотвратить повторное сжатие обратного прокси-сервера nginx сжатого ответа восходящего потока?

У меня есть обратный прокси-сервер nginx, который получает сжатый ответ brotli от восходящего потока (кеш Varnish). Но обратный прокси-сервер предоставляет браузеру сжатый ответ, только если я настроил "brotli on;" в блоке обратного прокси-сервера.

Моя цель - сделать так, чтобы обратный прокси nginx вообще не обрабатывал сжатие. Для этого у меня есть следующие вопросы:

  1. Ожидается ли, что блок обратного прокси-сервера распакует полученный ответ и обработает его самостоятельно? Разве он не может напрямую передать ответ восходящего потока обратно клиенту?

  2. Есть ли способ сбросить ответ прокси или его размер в журналы nginx? Это поможет лучше отладить проблему.

1 ответ

Я решил эту проблему, поэтому отправляю это всем, кто может столкнуться с подобной проблемой:

  1. Varnish изменил заголовок моего запроса "Accept-Encoding" на "gzip". Согласно документации Varnish, это так, как задумано (см. Здесь).
  2. Однако вышестоящий сервер nginx (за лаком) ответил несжатым контентом, потому что по умолчанию для gzip_http_version равно 1.0, а значение по умолчанию для proxy_http_versionсоставляет 1,1. ( см. здесь)

Разрешение было достигнуто:

а. настройте Varnish, чтобы не беспокоиться о сжатии, передав -p http_gzip_support=off к varnishd.

б. установка gzip_http_version к 1.1 на вышестоящем сервере Nginx.

Расшифровка вышеуказанного поведения стала возможной, потому что я зарегистрировал следующее на своем восходящем сервере nginx (тот, который находится за лаком):

log_format bytes_sent '$bytes_sent' - '$http_accept_encoding' - '$request';
Другие вопросы по тегам