fastcgi и выдача статуса

Igor Sysoev is at rambler-co.ru
Wed Feb 14 18:19:50 MSK 2007


On Wed, Feb 14, 2007 at 06:13:00PM +0300, Dmitriy MiksIr wrote:
> 
> Есть конфиг:
> 
>         location / {
>             error_page 404 =200 /index.php;

Как уже ответили

-             error_page 404 =200 /index.php;
+             error_page 404 = /index.php;

>         }
> 
>         location ~ \.php$ {
>             fastcgi_pass   127.0.0.1:8888;
>             fastcgi_intercept_errors off;
>             fastcgi_index  index.php;
>             ...
>         }
> 
> в index.php выдается header("Status: 404")
> 
> Если запрашивать /index.php, то все ок, выдается 404 или любой другой 
> статус.
> А если запрашивать / или /something/, то выдается 200 всегда.

> nginx/0.5.7
> 
> Igor Sysoev пишет:
> >On Wed, Feb 14, 2007 at 05:31:25PM +0300, Dmitriy MiksIr wrote:
> >
> >>   По 404 ошибке происходит редирект в fastcgi скрипт (с реврайтингом 
> >>кода ошибки на 200 - error_page 404 =200 /fastcgi_location..)
> >>   От fastcgi сервера должен приходить статус, если он отличный от 200, 
> >>и этот статус нужно отдавать клиенту вместе с телом ответа fastcgi 
> >>сервера). Уже накрутил кучу параметров - не получается =( Нужен для 
> >>этого fastcgi_intercept_errors on? И в каком формате fastcgi должен 
> >
> >Нет, нужно off.
> >
> >>сообщать код, в rfc-шном (HTTP/1.0 404 ..) или CGI-ном (Status: 404)?
> >
> >Status: 404
> >
> >>   И еще одна маленькая проблема - если делать HEAD запрос, который 
> >>уходит в fastcgi и онный возвращает большое тело - клиенту вываливается 
> >>кусок этого тела... странно это, попробую еще подебагить ;)
> >
> >Это должен обрабатывать FastCGI, ему для этого передаётся
> >
> >fastcgi_param  REQUEST_METHOD     $request_method;
> >
> >
> 
> 

-- 
Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list