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?
|