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