【发布时间】:2018-06-21 12:04:45
【问题描述】:
我有几个站点托管在不同的域中,例如 foo.com、bar.com、baz.com 等...我的用例是通过 foo.mydomain.com、bar.mydomain.com 等唯一域的子域提供这些站点, baz.mydomain.com等等...
我知道 CNAME 记录可以轻松地将 foo.mydomain.com 映射到 foo.com,但我的注册商只允许使用他们的 DNS 最多 100 个 DNS 记录...所以我尝试了其他几个时髦的解决方案并将它们减少到两个选项到目前为止:
-
创建一个将所有子域映射到唯一 IP 的 A 记录,例如:
*.mydomain.com A 12.34.56.78。然后在这个 IP 上存在一个像 nginx 这样的反向代理服务器,它将处理如下虚拟主机:server { listen 80; server_name http://foo.mydomain.com; location / { proxy_pass http://foo.com } }
或
- 创建一个DNS服务器,把相关的域名服务器放在mydomain.com前面,这样我基本上就可以创建100多个子域了。
我开始考虑性能、成本和稳定性。 DNS 正是我在功能上所需要的(我不需要速率限制、负载平衡或其他:只是纯粹的地址映射),但我被告知 DNS 可能随着 CNAME 记录列表的扩展而难以管理/速度缓慢(比如在 200 条 CNAME 记录之后,事情可能会变慢),是真的吗?
nginx/反向代理路由似乎更健壮,但大多数时候,它会以更高的价格出现,而供应商倾向于对带宽使用收费,如果我错了,请纠正我,但我了解带宽进出 nginx , 正确的 ?所以我基本上会支付两次带宽:一次将所有站点从主机提供商中取出,然后再将其从 Nginx 中取出(我正确吗?)
归根结底,我只想实现与 wordpress、tumblr、blogger 等完全相同的功能......似乎有无限数量的子域来支持每个用户的网站:user1.tumblr.com , user100000.wordpress.com 等...
您会推荐什么来获得相同的功能?代理或DNS? 最终,我想以便宜的价格获得这个,因为我无意为这个项目创造收入:)
【问题讨论】:
-
你已经有了清晰的图片:);只需更改 DNS 服务提供商。
-
@DusanBajic 我肯定会,但我有点担心将 100.000 个或更多子域作为单独的 DNS CNAME 记录进行管理的性能:你有这方面的经验吗?您认为在 100.000 个 CNAME 规则中“找到正确的”CNAME 规则的延迟不会变得至关重要吗?
-
什么是可接受的延迟(一旦您决定,我们可以进行实验:)?
-
我联系了一些 DNS 提供商,例如 clouDNS.net,并说使用 100.000 CNAME 或仅 1 没有区别......所以我可能会走这条路。
标签: nginx dns subdomain reverse-proxy