ПРОЕКТЫ 


  АРХИВ 


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]

proxy_intercept_errors для 503, error_page 504 и настоящий connect_timeout


  • To: nginx-ru@xxxxxxxxx
  • Subject: proxy_intercept_errors для 503, error_page 504 и настоящий connect_timeout
  • From: Олег Петрачёв <cronfy@xxxxxxxxx>
  • Date: Wed, 17 Jun 2009 22:31:07 +0400
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:date:message-id:subject :from:to:content-type:content-transfer-encoding; bh=YFE0FFduwXnGzs92V0Q+Yq6SCM3KxjGALyEl7agB05g=; b=ZW3eRVScw1O+VQPYQskdQ8b8JpQNdJi7JW7i44VNL1TiA0lyeyu7l2YnynkfLkTIEs zt1fLrN/XOtoba7jFX5fB+7OPNBAF8RGP8erlQ86WAN2rX+JgwWZ8q5g7DwXQ1GTxMAg VZBsOMEIZ99M1mPxalNnNeoVjO4EXxlUcba18=
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type :content-transfer-encoding; b=avmtV/4xk1xxzFYgwDQr+8J/DivrntImfwIQVsL7qJ16MwyH6VUih+izYS3RUOzMVq oKsRNS4RXQgXp7t5e/bfuOT8PhFqgMP1kiOQU9hd7Fvmwhd46akPxCVMYhxITce8el3S g0tIRXCVX698mbPtV9QKnmhtrNCJRU7qPVBik=

Здравствуйте,

В продолжение об обработке ошибок бэкэнда.

Задача:
1. Если бэкэнд отдал 503, показать свою страничку 503.
2. Если бэкэнд отдал 504 (сам!), показать то, что отдал бэкэнд.
3. Если случился proxy_connect_timeout, показать свою страничку 504.

На деле получается сделать либо 1 + 2, либо 2 + 3.

Имеем такой конфиг:

    server {
        listen 44280;
        error_page 504 /error/504.html;

        location / {
            proxy_intercept_errors on;           ## directive_1
            error_page 503 /error/503.html;    ## directive_2

            proxy_connect_timeout 1;
            proxy_pass http://127.0.0.1;
        }

        location /error/ {
             root /home/SERVICE;
        }
    }

В этом конфиге выполняются условия 1 и 2, но если бэкэнд не отвечает,
мы получаем СТАНДАРТНУЮ страницу nginx, а не нашу.

Если закомментировать directive_1 и directive_2, то выполняются
условия 2 + 3, но про собственную 503 можно забыть.

Можно ли сделать, чтобы все три условия выполнялись?


-- 
// cronfy


 




Copyright © Lexa Software, 1996-2009.