nginx 反向代理,当 proxy_pass 指向的主机不存在的时候,能不能别中断整个 nginx,让他继续运行?

2018-01-12 10:26:04 +08:00
 find456789

根据访问域名,由 nginx 代理到不同的主机上

下面的配置,

当用户访问 aaa.com 就代理到 http://host1aaa:9001

当用户访问 bbb.com 就代理到 http://host2bbb:9001

这里的 host1aaa,host2bbb 是内网的主机名,

偶尔,如果 host2bbb 整个机器没有开起来,

nginx 就会找不到主机头,

然后就报错了,结果导致 用户也无法访问 aaa.com

大家有办法,让他在忽略错误,继续运行吗?

server { 
    listen 80; 
    server_name aaa.com; 

    location / { 
        proxy_pass http://host1aaa:9001; 
    } 
} 



server { 
    listen 80; 
    server_name bbb.com; 

    location / { 
        proxy_pass http://host2bbb:9001; 
    } 
}
3291 次点击
所在节点    问与答
22 条回复
wtbhk
2018-01-12 13:48:32 +08:00
楼上这帮人没测试过别瞎说。upstream 配了域名,Nginx 在启动的时候就会解析域名,之后不再解析,解析失败直接报错。域名能解析,IP 连不上,不会报错。
find456789
2018-01-12 14:04:39 +08:00
@cross874 把主机列表放到 upstream 中, 也会直接说 找不到主机

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/422263

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX