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

Nginx 通过代理或DNS进行子域映射?,nginx,dns,subdomain,reverse-proxy,Nginx,Dns,Subdomain,Reverse Proxy,我有几个网站托管在不同的领域,如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的记录,如:

我有几个网站托管在不同的领域,如
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的记录,如:
    *.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正是我在功能上所需要的(我不需要速率限制、负载平衡或其他:只需要纯地址映射),但有人告诉我,随着CNAME记录列表的扩展,DNS可能无法管理/速度慢(比如在200条CNAME记录之后,事情可能会变慢),这是真的吗

nginx/反向代理路由似乎更稳健,但大多数情况下,它的价格会更高,而提供商往往会向带宽使用计费,如果我错了,请纠正我,但我知道带宽会进出nginx,对吗?所以我基本上会支付两次带宽:一次是为了让所有站点脱离主机提供商,然后再次是为了让它脱离Nginx(我说的对吗?)

最后,我只想实现与wordpress、tumblr、blogger等完全相同的功能。。。似乎有无限数量的子域来支持每个用户的网站:user1.tumblr.com、user100000.wordpress.com等等

要获得相同的功能,您有什么建议?代理还是DNS?
最后,我想以便宜的价格获得这个项目,因为我无意为这个项目创造收入:)

反向代理服务器

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

的确,带宽传输将加倍。 反向代理服务器(本例中为NGINX)将连接到源服务器并下载响应,然后此服务器将相同的响应传输到客户端

DNS

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

我的偏好?


我会选择反向代理服务器的方式

反向代理服务器

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

的确,带宽传输将加倍。 反向代理服务器(本例中为NGINX)将连接到源服务器并下载响应,然后此服务器将相同的响应传输到客户端

DNS

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

我的偏好?


我会选择反向代理服务器的方式

在您的用例中,我会选择一个DNS。

反向代理有三个缺点:

  • 所有子域的流量都将通过代理,因此根据您的流量,您可能需要多个代理
  • 如果代理和Web服务器由不同的提供者托管,则延迟将显著增加
  • 如果代理关闭,则所有连接的子域也关闭,除非您有多个负载平衡代理

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

在您的用例中,我会选择一个DNS。

反向代理有三个缺点:

  • 所有子域的流量都将通过代理,因此根据您的流量,您可能需要多个代理
  • 如果代理和Web服务器由不同的提供者托管,则延迟将显著增加
  • 如果代理关闭,则所有连接的子域也关闭,除非您有多个负载平衡代理

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

您已经有了清晰的图像:);只需更换DNS服务提供商。@DusanBajic我当然会,但我有点担心作为单个DNS CNAME记录管理的10万个或更多子域的性能:您有这方面的经验吗?你认为在10万个CNAME规则中“找到正确的”CNAME规则的延迟不会变得很关键吗?什么是可接受的延迟(一旦你决定,我们可以运行一个实验:)?我联系了一些DNS提供商,如clouDNS.net,他们说使用10万个CNAME或仅使用1个CNAME没有区别。。。所以我可以走这条路。你已经有了清晰的图像:);只需更换DNS服务提供商。@DusanBajic我当然会,但我有点担心作为单个DNS CNAME记录管理的10万个或更多子域的性能:您有这方面的经验吗?做