x-accel-redirect + apache

Igor Sysoev is at rambler-co.ru
Mon Jul 4 17:21:02 MSD 2005


On Mon, 4 Jul 2005, Igor Sysoev wrote:

> On Mon, 4 Jul 2005, Ivan Albetkov wrote:
>
>> Igor Sysoev wrote:
>>> On Mon, 4 Jul 2005, Ivan Albetkov wrote:
>>> 
>>>>> Насколько я понимаю, /images/topics/kras.gif - это внешний URI.
>>>>> А как выглядит внутренний URI ? Так как первоначально запрос
>>>>> проксировался,
>>>>> то mime тип для запроса /images/topics/kras.gif не определялся.
>>>>> После выполнения внутреннего редиректа mime тип опрделяется, исходя
>>>>> из нового URI.
>>>> 
>>>> 
>>>> Внутренний выглядит как
>>>> "/nginx_internal/home/kolyann5/public_html/images/topics/kras.gif".
>>>> 
>>>> И еще раз повторюсь, что ни с мозиллой, ни с firefox'ом, ни с оперой
>>>> такого не наблюдается.
>>> 
>>> 
>>> Тогда нужно сделать отладочный лог и прислать мне.
>> 
>> Выслал.
>> 
>> И еще есть 2 вопроса:
>> 1. Почему в access-логе отдача картинок идет то со статусом 304, то со
>> статусом 200 (причем, похоже, как раз тогда, когда IE их текстом рисует).
>> 
>> 2. Раньше модуль, который выдает X-Accel-Redirect, не проверял
>> существование файла. И когда nginx пытался отдать несуществующий файл по
>> такому редиректу - выдавал свою страничку "404", но со статусом 200.
>
> Обе ошибки связаны с тем, что nginx не меняет статусную строку в ответе, 
> полученную от бэкенда. Буду думать, как это обработать так, чтобы
> не сломалось другое.

Прилагаемый патч должен помочь.


Игорь Сысоев
http://sysoev.ru
-------------- next part --------------
--- src/http/ngx_http_upstream.c	Wed Jun 29 17:44:04 2005
+++ src/http/ngx_http_upstream.c	Mon Jul  4 17:18:49 2005
@@ -935,6 +932,8 @@
             }
         }
 
+        r->headers_out.status_line.len = 0;
+
         ngx_http_internal_redirect(r,
                               &r->upstream->headers_in.x_accel_redirect->value,
                               NULL);


More information about the nginx-ru mailing list