прокси-модуль и chunked вывод

Maxim Dounin mdounin at mdounin.ru
Mon Jul 13 15:02:20 MSD 2009


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





More information about the nginx-ru mailing list