nginx 反代 upstream 不支持域名只能支持 ip?

2022-09-28 10:11:31 +08:00
 kisshere
upstream backend {
    server 127.0.0.1;
    keepalive 8;
}

server {
    listen 80;

    location / {
        proxy_pass http://backend;
        proxy_http_version 1.1;
        proxy_set_header Connection "";
    }
}

如果把 www.abc.com 在 hosts 文件中解析为 127.0.0.1 ,然后

upstream backend {
    server www.abc.com;
    keepalive 8;
}

nginx 反代就失败了,nginx 这么低级?

2692 次点击
所在节点    程序员
24 条回复
ntuwang
2022-09-29 13:43:28 +08:00
用 jdomain 啊,可以支持域名
chengjiezhou1024
2022-09-29 14:16:38 +08:00
@kisshere
你可以尝试一下, nginx 启动后修改 hosts 文件更改域名对应的地址, 改动是否会生效.
你可以测试下如果一个域名对应多个 IP 地址, 能不能将流量转发到每个 IP 地址上.


set $backend www.abc.com;
proxy_pass http://$backend;

这种方式能解决上面两个问题.
kisshere
2022-09-29 20:38:27 +08:00
@chengjiezhou1024 但至少"nginx 不会读取 /etc/hosts 进行 dns 解析"这句话错误了吧
chengjiezhou1024
2022-09-30 14:57:30 +08:00
@kisshere
应该修改为“运行阶段不会读取 /etc/hosts 进行 dns 解析”

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

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

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

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

© 2021 V2EX