Re: gzip ответ от upstream → SSI → 💣

Maxim Dounin mdounin на mdounin.ru
Чт Фев 21 14:11:31 UTC 2019


Hello!

On Thu, Feb 21, 2019 at 03:31:42PM +0200, Alexander Azarov wrote:

> Мне кажется, что я уже второй раз на это напарываюсь, но правда так и не
> смог вспомнить когда был предыдущий. Если ответ апстрима в gzip, то
> вставляя его как SSI получается мусор в результирующем документе. Я смог
> найти краткий совет так не делать от 2013 г тут:
> https://forum.nginx.org/read.php?2,244299,244303#msg-244303

По ссылке проблема немного другая - исходный ответ бэкенда в gzip, 
и из-за этого SSI не может его обработать.  У вас же ответ на 
SSI-команду include в gzip.

> Сейчас 2019 г, я использую Nginx 1.14, и словил то же самое.
> 
> Вопросы:
> 1. Есть ли это в документации?
> 2. Баг или фича?

SSI include вставляет в ответ то, что получено в результате 
выполнения подзапроса - в вашем случае то, что прислал бэкенд.  
Если вы не хотите, чтобы в соответствующем месте ответа был gzip - 
сделайте так, чтобы бэкенд такого не присылал.  Обычно этого легко 
добиться с помощью конфигурирования бэкенда и/или выпиливанием 
заголовка Accept-Encoding с помощью директивы proxy_set_header.

Добавить в документацию предупреждение "не делайте так", возможно, 
стоит, но я не могу сказать, что проблема сколько-нибудь частая.

-- 
Maxim Dounin
http://mdounin.ru/


Подробная информация о списке рассылки nginx-ru