ПРОЕКТЫ 


  АРХИВ 


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: ошибка в обработке


  • To: nginx-ru@xxxxxxxxx
  • Subject: Re: ошибка в обработке
  • From: Konstantin Svist <fry.kun@xxxxxxxxx>
  • Date: Wed, 05 Aug 2009 14:25:19 -0700
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from :user-agent:mime-version:to:subject:references:in-reply-to :content-type:content-transfer-encoding; bh=Ll2oS5yqSqw76Kf1gYgZtAEnQVtwj2nf4+ZTA9hgmBE=; b=JridLaN/OpZvwoR8zTTlZYj243tAXyIyQxvC0pS/YeiRAY8SK5WqEK6tOcEbk7qEf+ FaIXX2PGU0P45onXwnQBLvH+x60RvXpM7uIUWn1YAxkeAAwZNKKTgjIB8+xYiSw7/IF9 zj/cOOhFTZK0kK+QMBd3oEFlz/uPDmOvIJYhE=
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:subject:references :in-reply-to:content-type:content-transfer-encoding; b=rQJCsQo5YHv1M5TEXM0fRgpIGQpRYXDSjg0ri8W3m9obAiToT2ndvnvExyqGgPzAin NtmKpT6pcOaLybUCDIUHiNKd/pVK3u1NOkuaB09sB6iIFfabx1LmlGqYEnWWq4ymBT22 VBFPjqZwzhUQLkyPlyEXk3esdFwTOZVrXl0Ho=
  • In-reply-to: <4A78F021.6010408@xxxxxxxxx>
  • References: <49FB4C3C.5040705@xxxxxxxxx> <20090501193545.GE90246@xxxxxxxxxxxxx> <4A78F021.6010408@xxxxxxxxx>

Konstantin Svist wrote:
> Igor Sysoev wrote:
>   
>> On Fri, May 01, 2009 at 12:23:40PM -0700, Konstantin Svist wrote:
>>
>>   
>>     
>>>     server {
>>>         location /foo/bar {
>>>             proxy_pass http://backend-cluster;
>>>         }
>>>         location / {
>>>             proxy_pass http://somehost;
>>>         }
>>>     }
>>>
>>> Если запрос приходит на /foo/bar но backend-cluster не отвечает, то
>>> запрос перекидывается на somehost - который не знает как обработать
>>> запрос типа /foo/bar.
>>> **proxy_next_upstream ничего не меняет.
>>>
>>> Также без успеха пробовал добавить
>>>         location /foo {
>>>             return 403;
>>>         }
>>>     
>>>       
>> Скорее всего, используется что-то типа
>>
>>      error_page  502 504  /50x.html;
>>
>> А самого "location = /50x.html" нет, вот оно и уходит на "location /".
>>
>>   
>>     
>
> Что-то я не могу понять как правильно сделать следующее:
> * если бэкенд возвращает ошибку, использовать только nginx встроенную
> страницу
> * избежать вышеупомянутую проблему
> * на многих server-ах
>   


Не ошибка ли это nginx-а?

    # only show nginx internal pages to the user
    proxy_intercept_errors on;
    error_page 401 404 500 501 502 503 504 505 /50x.html;

    server {
        listen 80;
        location /foo/ {
            proxy_pass http://mybackend:8080;  # basic auth, returns 401
if skipped
        }
        location / {
            proxy_pass http://mybackend:8000;  # port not open
        }
    }

Если делаю запрос на /foo/, получаю 502 Bad Gateway.
Т.е. идёт запрос без пароля, 8080 отвечает 401, nginx идёт на /50x.html
но там получает 502 т.к. порт закрыт.
Почему proxy_intercept_errors не обрабатывает этот 401?






 




Copyright © Lexa Software, 1996-2009.