Re: поведение error page
Maxim Dounin
mdounin на mdounin.ru
Чт Апр 19 16:42:26 UTC 2012
Hello!
On Sat, Apr 14, 2012 at 09:01:31AM -0400, reaper wrote:
> давно не повторялось, сейчас вот опять
> началось :)
>
> на клиенте вижу ответ
> HTTP/1.1 504 Gateway Time-out
>
> хотя в error_page прописано 503
[...]
> 2012/04/14 12:52:10 [error] 11906#0: *3332442 upstream timed out (110:
> Connection timed out) while reading response header from upstream,
> client: 192.168.98.15, server: my.fs.test, request: "GET
> /f/free+free+free+free HTTP/1.1", upstream:
> "http://192.168.98.175:80/f/free+free+free+free", host: "my.fs.test"
> 2012/04/14 12:52:10 [debug] 11906#0: *3332442 finalize http upstream
> request: 504
[...]
> 2012/04/14 12:52:10 [debug] 11906#0: *3332442 http special response:
> 504, "/f/free+free+free+free?"
> 2012/04/14 12:52:10 [debug] 11906#0: *3332442 internal redirect: "/?"
Раз ошибка, ушли по error_page.
[...]
> 2012/04/14 12:52:30 [error] 11906#0: *3332442 upstream timed out (110:
> Connection timed out) while reading response header from upstream,
> client: 192.168.98.15, server: my.fs.test, request: "GET
> /f/free+free+free+free HTTP/1.1", upstream:
> "http://192.168.98.175:80/f/free+free+free+free", host: "my.fs.test"
[...]
> 2012/04/14 12:52:30 [debug] 11906#0: *3332442 http finalize request:
> 504, "/?" a:1, c:1
> 2012/04/14 12:52:30 [debug] 11906#0: *3332442 http special response:
> 504, "/?"
> 2012/04/14 12:52:30 [debug] 11906#0: *3332442 http set discard body
И снова ошибка. По error_page не ушли, т.к. это будет рекурсия (а
она по умолчанию запрещена). При повторных ошибках при обработке
error_page результирующий код ответа сейчас возвращается от
последней ошибки.
Самый правильный подход к решению данной проблемы - держать
статические страницы для ошибок. Заодно решает множество других
проблем.
Maxim Dounin
Подробная информация о списке рассылки nginx-ru