【问题标题】:Each wild card sub-domain points to different IP address每个通配符子域指向不同的IP地址
【发布时间】:2020-09-22 17:11:59
【问题描述】:

我一直在使用 AWS Route-53 作为我的应用程序的 dns 服务,并在我的代码中说,对于每个 http 请求,我都需要创建一些动态子域并将其指向创建的新 ec2 实例飞。

现在任何人都应该能够使用新创建的子域向新创建的 ec2 实例发出请求。

我知道我可以使用通配符 dns 记录,但它不只是指向一个 IP 吗?

如何使创建的每个子域始终指向新的 ec2 实例?

【问题讨论】:

    标签: amazon-web-services amazon-ec2 dns amazon-route53 wildcard-subdomain


    【解决方案1】:

    traefik 正是我所需要的。我将 traefik 配置为 etcd 作为它的提供者,只需输入 etcd 服务器,我就可以实现我想要的。

    现在我只有一个映射到一个 ec2 实例的通配符域,我在该实例上运行 traefik,它监视 etcd 服务器是否有任何以 /traefik/ 为前缀的新条目。然后,它会动态生成新配置,并根据 HOST 标头将任何请求路由到目标服务器。

    【讨论】:

      【解决方案2】:

      创建 *.example.com 的 A 记录并将值分配给 IP 地址。

      如果任何子域没有明确的记录,它将默认使用该记录。

      自动添加 DNS 记录的可能解决方案。

      • 在创建 EC2 实例时,添加应分配给该实例解析的域名标签。让 CloudWatch 事件检测“StartInstance”,然后触发 Lambda 通过 API 添加 DNS 记录。
      • 编写一个可以确定每个子域使用的 IP 地址的代理。或者改为通过某种自动化 (SSM/Ansible) 手动添加。

      【讨论】:

      • 那么,在我的代码中,每次我创建一个新的 ec2 实例时,我是否也应该使用新的 ec2 实例的 IP 创建一个新的子域的显式记录?
      • 是的,需要额外的主机
      • 我希望只使用 ec2 实例(IP 地址)创建一个通配符 dns 条目,让调用是 X 以匹配任何子域,并以某种方式确定所请求子的正确 IP 是什么-X 中的域。无论如何我们可以实现这一点吗?
      • 您能否详细说明第二个解决方案?
      • 您是否建议让我们说一个 nginx 作为通配符 dns 的代理,并使用 ansible playbook 将服务器块配置与新的子域和实例 ip 地址作为 proxy_pass 添加到 nginx.conf文件?
      猜你喜欢
      • 2016-07-18
      • 2013-07-02
      • 1970-01-01
      • 1970-01-01
      • 2020-02-19
      • 2016-04-25
      • 1970-01-01
      • 2016-01-26
      • 2020-10-18
      相关资源
      最近更新 更多