ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: error_page 404 для proxied request



On Mon, 18 Apr 2005, Andrei Nigmatulin wrote:

В Пнд, 18.04.2005, в 03:26, Dmitry Titov пишет:
Здравствуйте, Andrei.

AN> Добрый день

AN> Игорь, есть ли возможность обработать ошибку backend'a (например 404) с
AN> помощью директивы error_page на nginx ?
AN> Пробовал ее ставить на location который проксируется - не помогает :(

У меня ошибки бэкенда обрабатываются так:

location / {
  proxy_pass  ...;
  ...
  error_page  404  /errors/404.html;
  ...
}

location /errors/ {
  root  /usr/local/nginx/html/;
  ...
}

Очень странно. Вот мой конфиг :

       location / {
           proxy_pass  http://127.0.0.1:8001/;
           client_max_body_size       32k;
           client_body_buffer_size    32k;
           proxy_connect_timeout      10;
           proxy_send_timeout         10;
           proxy_read_timeout         10;
           proxy_preserve_host        off;
           proxy_set_x_real_ip        off;
           proxy_add_x_forwarded_for  off;
           proxy_header_buffer_size   8k;
           proxy_buffers              1000 8k;
           proxy_busy_buffers_size    64k;
           proxy_temp_file_write_size 64k;
           error_page  404  /errors/404.gif;
           error_page  502  /errors/404.gif;
       }

       location /errors/ {
           root /home/www/nginx/html;
       }

на 502 ошибку (backend лежит) 404.gif выдается,
на 404-ю - нет, выдается стандартный html "<h1>Not Found</h1>"

Где я чего не понимаю ?

Для proxy сейчас нет директивы proxy_redirect_errors [on|off], аналогичной
fastcgi_redirect_errors [on|off]. Поэтому ошибки, возникающие при работе
с бэкендом, обрабатываются директивой error_page, а ошибки, возвращаемые
бэкендом, - нет. В ближайшее время будет, сейчас я занят поддержкой
параллельного выполнения подзапросов, необходимых для SSI.

Кстати, лучше задавать

     error_page  502  =200  /errors/404.gif;

тогда MSIE не будет показывать 404.gif, как битую картинку.


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




 




Copyright © Lexa Software, 1996-2009.