ПРОЕКТЫ 


  АРХИВ 


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: Обработать http статус с backen d'а


  • To: nginx-ru@xxxxxxxxx
  • Subject: Re: Обработать http статус с backen d'а
  • From: Олег Петрачёв <cronfy@xxxxxxxxx>
  • Date: Wed, 17 Jun 2009 21:36:58 +0400
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=/dTWNGhh5K9iidwUUR153YVpc0pWWhKF5FUvpjDttkc=; b=sKvZA+s80wLsw0fYwKJ8AWgnN7tHWzthK8b6eD2OiVY2K8tFKurxTacH1/3DEBg6Du RlZaq0RgIg5RYSMhW+hMZa+RiCFcsI4j/uKwbIjlUZtUdmjrvjDpuV+1hEH310KmHZWR LWhd7T2rXyJJ6hUOD1YN6d34FlrvZQrrMt0xQ=
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; b=lNgwE9UPMT83OzbQG3b3Xt3mo2popsx6XcKQ2Yu9uokpG2HD65KhaN4dUnKTiWV6fu I3SE3uNan/klztq1wxS79fqHhJj+/pRH8dUfWmvioYv2MMiO2omd8mFa5+n+ahtvu9ON mDfyZK79e5tve2sq6f7HjqHJM7ya28kyrJVOw=
  • In-reply-to: <2d8fb9950906162105i6634864ar9215727e98ef63d7@xxxxxxxxxxxxxx>
  • References: <d4ac64920906161736x38a793bbx60aece17faceca9e@xxxxxxxxxxxxxx> <2d8fb9950906162105i6634864ar9215727e98ef63d7@xxxxxxxxxxxxxx>

День добрый,

>> статусах. Например, при 503 показать специальную страничку nginx'ом, а
>> при всех остальных спроксировать, что отдал backend.
> Как раз proxy_intercept_errors и нужно.
перенаправлять их на обработку nginx'у с помощью директивы error_page.

Ага, спасибо, осознал. Но теперь хочется странного: чтобы эти страницы
ошибок были видны только при внутренних редиректах. Знаю, что есть
internal, но он при попытке обратиться к location отдаёт 404. А нужно
другое: если запрос к странице ошибок вызван внутренним редиректом
(например, через error_page), то отдавать её, а если не внутренним, то
проксировать к backend'у.

Если сделать

location / {
 proxy_intercept_errors on;
 error_page 503 /503.html;
 proxy_pass http://127.0.0.1;
}

location /503.html {
 root /var/www/errors;
}

то при обращении снаружи к /503.html увидим нашу страницу ошибок, а
запрос к бэкэнду спроксирован не будет.

Хотелось бы как-нибудь так:

location /503.html {
 if (!$internal) {
  proxy_pass http://127.0.0.1;
 }
}

Это как-нибудь возможно реализовать? В переменных в документации не
вижу, за что там можно было бы зацепиться...

--
// cronfy


 




Copyright © Lexa Software, 1996-2009.