Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Появляется "мусор" в response_body до и после "ожидаемого body"
Hello!
On Tue, Apr 07, 2009 at 01:44:08PM +0400, Igor Sysoev wrote:
> On Tue, Apr 07, 2009 at 12:38:50PM +0400, Maxim Dounin wrote:
>
> > Hello!
> >
> > On Tue, Apr 07, 2009 at 11:54:19AM +0400, Igor Sysoev wrote:
> >
> > > On Mon, Apr 06, 2009 at 08:43:21PM +0400, bas-kam wrote:
> > >
> > > >
> > > > 03.04.09, 04:42, "Bogun Dmitriy" <vugluskr@xxxxxxxxxxxxxxx>:
> > > >
> > > > В Птн, 03/04/2009 в 03:05 +0400, Anton Yuzhaninov пишет:
> > > >
> > > > Bogun Dmitriy wrote:
> > > > > Ситуация следующая с ipb форума делается ajax запрос на "быстрое
> > > > > редактирование" поста. В ответ возвращается страничка у которой в
> > > > > body в
> > > > > начало и в конец добавлено несколько символов, которых не было в
> > > > > момент
> > > > > отправки.(Чтобы это проверить я добавил сохранение сформированного
> > > > > ответа в файл непосредственно перед отдачей клиенту). В начало body
> > > > > добавляется "8366\n" в конец "\n0". Символы в начале изменяются, в
> > > > > хвосте всегда 0. Количество символов не меняется...
> > > >
> > > > Скорее всего из за баги в php-коде в ответ на HTTP/1.0 запрос от nginx
> > > > возвращается HTTP/1.1 ответ с chunked encoding
> > > >
> > > > workaround - прописать в конфиге апача:
> > > >
> > > > SetEnv force-response-1.0 1
> > > >
> > > > В моём случае ни строчка выше, ни "BrowserMatch ".*" downgrade-1.0
> > > > force-respon
> > > > se-1.0" не помогли, т.е. мусор по прежнему отображается на страницах.
> > > > Естественно апач перегружал после добавления строчек. Строчки добавил в
> > > > конец h
> > > > ttpd.conf (на всякий случай).
> > > > Так же "мусор" у меня прямо на главной странице. Всё это добро
> > > > появилось после
> > > > перехода на связку apache (2.2) + nginx (0.6.36).
> > >
> > > Патч для 0.7.50. Chunked ответ передаётся как есть.
> > > Некоторые фильтры работают не корректно:
> > > 1) gzip-фильтр такие ответы не сжимает;
> > > 2) SSI обрабатываться при условии, что команда не попадает на границу
> > > chunk'а;
> > > 3) sub_filter работает при условии, что заменяемая часть не попадает
> > > на границу chunk'а;
> > > 4) XSLT, addition работать не будут.
> >
> > Бррр. Может лучше не трогать это место пока не появится
> > нормальный разбор chunked?
> >
> > Потому как я живо представляю в какую тыкву превратится ответ если
> > по нему пройдётся ssi и/или sub_filter, изменив тем самым реальный
> > размер чанка (но не поправив chunk-size).
>
> Да, про это я совсем забыл. ssi и sub_filter вообще работать не будут,
> как XSLT и addition.
Charset тоже сломается, для случая utf-8. Не говоря уже про
всякие внешние модули.
> Ну в общем, да, я пока в сомнениях, коммитить ли это.
Сейчас подобные проблемы хорошо видны и являются следствием
некорректного поведения бекенда. Будут видны плохо и приводить к
подземному стуку.
Проще сделать поддержку chunked, IMHO. Я сейчас как раз этим
занимаюсь, ибо в первом приближении доделал постоянные соединения с
fastcgi и перешёл к proxy.
Maxim Dounin
|