Nginx-Upstream-proxy next upstream-惊天大Bug

upstream backend {
server flvdownload.ppserver.org.cn:80 max_fails=0;
server flvstorage.ppserver.org.cn:80 backup;
}

server{

location / {
proxy_next_upstream error timeout invalid_header http_500 http_502
http_503 http_504;
proxy_pass http://backend;
}
}

#----------------------------------------------------------------------------------------

当upstream中backup域名“
flvstorage.ppserver.org.cn”解析结果为2个IP时候,“flvdownload.ppserver.org.cn”如果返回有异常可以成功proxy_pass到backup。
But:当upstream中backup域名“
flvstorage.ppserver.org.cn”解析结果为1个IP时候,backup无法使用,nginx会不断的请求“flvdownload.ppserver.org.cn”。

屡试不爽,就是不知道这是一个Bug吗?

Posted at Nginx Forum:
http://forum.nginx.org/read.php?2,227074,227074#msg-227074

Hello!

On Thu, May 31, 2012 at 10:55:11AM -0400, youzhengchuan wrote:

proxy_pass http://backend;

屡试不爽,就是不知道这是一个Bug吗?
As far as I understand, you are hitting another variant of this bug:

http://trac.nginx.org/nginx/ticket/47

It usually manifests itself with “proxy_next_upstream http_404”,
but max_fails=0 does essentially the same. The bug is fixed in
1.3.0.

Maxim D.

p.s. This is English mailing list, please don’t write in Chinese
here. Thank you.

Do something like this:

you need to define a resolver:

resolver 8.8.8.8; # or your dns serevrs

location / {
set $myupstream flvdownload.ppserver.org.cn;
proxy_pass http://$myupstream;
}

if you need it to use multiple ip addresses.

Accordance with the above configuration, When the domain
flvstorage.ppserver.org.cn,” nginx nslookup results is just a one IP
address, this backend upstream can’t be used.

my apology for my bad english.

Posted at Nginx Forum:
http://forum.nginx.org/read.php?2,227075,227089#msg-227089

thanks Brian

Posted at Nginx Forum:
http://forum.nginx.org/read.php?2,227075,227139#msg-227139