Re: Передача заголовков клиенту

Maxim Dounin mdounin at mdounin.ru
Tue Oct 15 12:16:36 UTC 2013


Hello!

On Tue, Oct 15, 2013 at 01:59:52AM -0400, Aleus Essentia wrote:

> Добрый день!
> 
> Подскажите, можно ли указать NGINX'у сразу передавать заголовки клиенту, без
> ожидания получения полностью всего заголовка?
> 
> У меня есть upstream-сервер, который после запроса от клиента в некоторых
> случаях может долго отвечать, больше 5 минут. Поэтому для поддержания
> соединения upstream отсылает незначащие строки заголовка раз в 10 секунд. Но
> NGINX копит заголовок, пока не наткнётся на \n\n.
> 
> Как решить эту проблему?

Никак.  Для отправки чего-либо клиенту nginx'у нужны все заголовки 
ответа - или в какой-то момент могло бы оказаться, что часть 
заголовков клиенту уже ушла, а в очередном заголовке нас попросили, 
например, сделать X-Accel-Redirect в другое место.  Не говоря уже 
про то, что чуть менее, чем любой фильтр не сможет даже начать 
работать с ответом, если не видит всех заголовков.

Чтобы подобных сюрпризов и сложностей не возникало - в nginx'е 
вообще нет возможности работать с отдельными заголовками.  
Отправляются только все заголовки целиком, никак иначе.

Или убирайте nginx, или меняйте логику работы бекенда.

-- 
Maxim Dounin
http://nginx.org/en/donation.html



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