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
|