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

Dmitriy MiksIr miksir at maker.ru
Wed Feb 14 18:13:00 MSK 2007


Есть конфиг:

         location / {
             error_page 404 =200 /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;
> 
> 






More information about the nginx-ru mailing list