Здравствуйте!
Еще одна странность с ошибками – если в этом конфиге:
error_page 400 /error/404.html
#все остальные коды ошибок
error_page 504 /error/504.html
location /error {
internal;
recursive_error_pages on;
error_page 404 http://error.ru$uri
}
Я определяю recursive_error_pages внутри location, то страницы
ошибок с сервера error.ru не берутся, а если на уровне сервера – берутся.
В чем тут дело?
-----Original Message-----
From: owner-nginx-ru@xxxxxxxxx [mailto:owner-nginx-ru@xxxxxxxxx] On Behalf Of Igor
Sysoev
Sent: Friday, June 13, 2008 5:07 PM
To: nginx-ru@xxxxxxxxx
Subject: Re: переопределение error_page на уровне server и location
On Fri, Jun 13, 2008 at 08:34:27AM +0300,
test157@xxxxxxxx wrote:
> столкнулся с такой ситуацией, что некоторые ошибки -
точнее их
> определение в error_page можно делать только на
уровне server, иначе
> в случае определения их в location - переопределение
не сработает,
> т.е. будет выдана все равно страничка дефолтовая nginx.
простой пример это
> запрос по схеме http к SSL серверу. если мы
переопределим error_page
> для этой ошибки внутри location / {error_page 497
/497.html;} то все
> равно мы получим дефолтовую страничку nginx'а, а
если определение
> опишем в server {...} то получим уже свою.
>
> я нашел список всех ошибок в nginx:
> #define NGX_HTTP_BAD_REQUEST 400
> #define NGX_HTTP_UNAUTHORIZED 401
> #define NGX_HTTP_FORBIDDEN 403
> #define NGX_HTTP_NOT_FOUND 404
> #define NGX_HTTP_NOT_ALLOWED 405
> #define NGX_HTTP_REQUEST_TIME_OUT 408
> #define NGX_HTTP_CONFLICT 409
> #define NGX_HTTP_LENGTH_REQUIRED 411
> #define NGX_HTTP_PRECONDITION_FAILED 412
> #define NGX_HTTP_REQUEST_ENTITY_TOO_LARGE 413
> #define NGX_HTTP_REQUEST_URI_TOO_LARGE 414
> #define NGX_HTTP_UNSUPPORTED_MEDIA_TYPE 415
> #define NGX_HTTP_RANGE_NOT_SATISFIABLE 416
> #define NGX_HTTP_CLOSE 444
> #define NGX_HTTP_OWN_CODES 495
> #define NGX_HTTPS_CERT_ERROR 495
> #define NGX_HTTPS_NO_CERT 496
> #define NGX_HTTP_TO_HTTPS 497
> #define NGX_HTTP_CLIENT_CLOSED_REQUEST 499
> #define NGX_HTTP_INTERNAL_SERVER_ERROR 500
> #define NGX_HTTP_NOT_IMPLEMENTED 501
> #define NGX_HTTP_BAD_GATEWAY 502
> #define NGX_HTTP_SERVICE_UNAVAILABLE 503
> #define NGX_HTTP_GATEWAY_TIME_OUT 504
> #define NGX_HTTP_INSUFFICIENT_STORAGE 507
>
> может быть кто то может сказать? (автор например;)
какие из этих ошибок,
> нужно описывать на уровне не ниже сервера?
На уровне сервера могут возникнуть 400, 405 и 500.
411, 414, 495, 496 и 497 - только на уровне сервера.
--
Игорь Сысоев
http://sysoev.ru