Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: прокси-модуль и ch unked вывод
Hello!
On Mon, Jul 13, 2009 at 05:17:10PM +0700, Alexey Morozov wrote:
> Здравствуйте.
>
> В нынешнем своём виде прокси-модуль в nginx-0.8.4 некорректно обрабатывает
> ответы "upstream"-сервер, если сервер отвечает в Transfer-Encoding: chunked.
> При этом nginx:
>
> 1. добавляет ещё один заголовок Transfer-Encoding: chunked
> 2. оборачивает весь выхлоп (response body) из upstream-сервера в собственную
> последовательность чанков.
>
> По всей видимости, для корректной работы необходимо проверять, не является ли
> уже выхлоп апстрима chunked, декодировать его при записи в файл кэша и далее
> выдавать либо в chunked, либо в "нормальной" кодировке. Или я не учитываю
> какого-нибудь важного обстоятельства?
В нынешнем виде прокси-модуль в nginx при обращении к бекенду
nginx использует HTTP/1.0. RFC2616 явно запрещает использовать
chunked для ответов по HTTP/1.0. Т.е. если бекенд отдал nginx'у
chunked - то это проблема бекенда, а не nginx'а.
Что касается поддержки chunked вообще (она в частности нужна для
поддержки постоянных соединений с бекендом, ибо в HTTP/1.1 их
считай что не бывает) - то да, его надо разбирать и убирать, никто
не спорит. We are working on it, stay tuned.
Maxim Dounin
|