通过代理或DNS进行子域映射?

时间:2018-01-12 03:49:24

标签: nginx dns subdomain reverse-proxy

我有几个网站托管在各个网域中,例如foo.combar.combaz.com等等......我的用例是通过{{{}这样的唯一域的子域提供这些网站1}},foo.mydomain.combar.mydomain.com等...

我确实知道CNAME记录可以轻松地将baz.mydomain.com映射到foo.mydomain.com,但我的注册商只能使用他们的DNS允许最多100条DNS记录...所以我经历了其他几个时髦的解决方案并减少了他们到目前为止有两种选择:

  • 创建一条将所有子域映射到唯一IP的记录,例如:foo.com。然后在这个IP上生活一个像nginx这样的反向代理服务器,它将处理虚拟主机,如:

    *.mydomain.com A 12.34.56.78

OR

  • 创建一个DNS服务器并将相关的名称服务器放在mydomain.com之前,我基本上可以创建超过100个子域名。

我开始考虑性能与成本与稳定性。 DNS正是我在功能上所需要的(我不需要速率限制,负载平衡或者其他:只是纯地址映射)但我被告知DNS可能无法管理/慢,因为CNAME记录列表比例(如200之后) CNAME记录,事情可能会变慢),这是真的吗?

nginx /反向代理路由似乎更强大,但大多数时候,它会以更高的价格出现,而提供商倾向于计算带宽使用量,如果我错了,请纠正我,但我知道带宽进出nginx , 对 ?所以我基本上会支付两倍的带宽:一次将所有网站从主机提供商那里拿出来,然后再次将其从Nginx中取出(我是否正确?)

在一天结束时,我只想实现与wordpress,tumblr,blogger等完全相同的功能......它们似乎拥有无限数量的子域来为每个用户网站提供支持:user1.tumblr.com ,user100000.wordpress.com等......

您会建议您获得相同的功能?代理还是DNS? 最后,我想在便宜的一面得到这个,因为我无意为这个项目创造收入:)

2 个答案:

答案 0 :(得分:1)

反向代理服务器

创建大量记录可能无效,所以我建议您使用外卡dns方式。 您可以创建一个指向您的Web服务器的通配符记录*.domain.com

带宽传输确实会加倍。 反向代理服务器(在这种情况下为NGINX)将连接到源服务器并下载响应,然后该服务器将相同的响应传输到客户端。

<强> DNS

您可以自己托管DNS,但这需要以维护DNS为代价。您还可以使用托管DNS提供程序(例如:AWS ROUTE53)并为yourdomain.com创建指向源服务器的CNAME记录。

我的偏好?

我会采用反向代理服务器的方式。

答案 1 :(得分:1)

在您的使用案例中,我选择了DNS。

反向代理有三个缺点:

  • 所有子域名的流量将通过代理,因此根据您的流量可能需要多个
  • 如果代理和网络服务器由不同的提供商托管,则延迟会明显增加
  • 如果代理已关闭,则所有已连接的子域也是如此,除非您有多个负载均衡代理

DNS没有任何这些缺点。逆向代理当然还有其他优点,但我认为它与您的用例无关。