nginx-0.9.0
Igor Sysoev
igor на sysoev.ru
Пн Ноя 29 22:37:17 MSK 2010
On Mon, Nov 29, 2010 at 07:43:45PM +0300, Maxim Dounin wrote:
> Hello!
>
> On Mon, Nov 29, 2010 at 06:36:24PM +0300, Igor Sysoev wrote:
>
> > Изменения в nginx 0.9.0 29.11.2010
> >
> > *) Добавление: директива keepalive_disable.
> >
> > *) Добавление: директива map поддерживает переменные в качестве
> > значения определяемой переменной.
> >
> > *) Добавление: директива map поддерживает пустые строки в качестве
> > значения первого параметра.
> >
> > *) Добавление: директива map поддерживает выражения в первом параметре.
> >
> > *) Добавление: страница руководства nginx(8).
> > Спасибо Сергею Осокину.
> >
> > *) Добавление: поддержка accept4() в Linux.
> > Спасибо Simon Liu.
> >
> > *) Изменение: устранение предупреждения линкера о "sys_errlist" и
> > "sys_nerr" под Linux; предупреждение появилось в 0.8.35.
> >
> > *) Исправление: при использовании директивы auth_basic в рабочем
> > процессе мог произойти segmentation fault.
> > Спасибо Михаилу Лалетину.
> >
> > *) Исправление: совместимость с модулем ngx_http_eval_module; ошибка
> > появилась в 0.8.42.
>
> Конструкция вида:
>
> location /return200text {
> return 200 "text";
> }
>
> больше не работает - возвращает 200 с телом стандартной 404
> ошибки, и пишет в лог
>
> 2010/11/29 19:20:17 [error] 42785#0: *1 open() "/usr/home/mdounin/work/nginx-generic/debug-nginx-install/html/return200text" failed (2: No such file or directory), client: ::1, server: , request: "GET /return200text HTTP/1.0"
>
> Аналогично
>
> location /return404text {
> return 404 "text";
> }
>
> возвращает 404 с телом стандартной ошибки.
>
> Оба test case'а - из http://mdounin.ru/hg/nginx-tests/, rewrite.t.
>
> С остальными тестами там тоже не всё хорошо, но смотреть в деталях
> даже и не хочется. Опять же, хорошо там никогда не было - см.
> патчи в nginx-devel at .
>
> Аналогично,
>
> location /return204 {
> return 204;
> }
>
> пытается открывать файл /return204:
>
> 2010/11/29 19:28:30 [error] 43047#0: *1 open() "/usr/home/mdounin/work/nginx-generic/debug-nginx-install/html/return204" failed (2: No such file or directory), client: ::1, server: , request: "GET /return204 HTTP/1.0"
>
> ответ при этом возвращает правильный, но это скорее случайность -
> ибо возможности что-либо послать у него нет из-за header_only.
> Поймано на сломавшихся тестах auth request - там обработчик
> post_subrequest зовётся два раза, первый с кодом 204, второй -
> 404.
Патч.
--
Игорь Сысоев
http://sysoev.ru
-------------- next part --------------
Index: src/http/ngx_http_core_module.c
===================================================================
--- src/http/ngx_http_core_module.c (revision 3123)
+++ src/http/ngx_http_core_module.c (working copy)
@@ -900,11 +900,6 @@
rc = ph->handler(r);
- if (rc == NGX_OK) {
- r->phase_handler = ph->next;
- return NGX_AGAIN;
- }
-
if (rc == NGX_DECLINED) {
r->phase_handler++;
return NGX_AGAIN;
Подробная информация о списке рассылки nginx-ru