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的记录,如:
。然后在此IP上有一个反向代理服务器,如nginx,它将处理以下虚拟主机:*.mydomain.com A 12.34.56.78
server { listen 80; server_name http://foo.mydomain.com; location / { proxy_pass http://foo.com } }
- 创建一个DNS服务器并将相关的名称服务器放在mydomain.com的前面,在这里我基本上可以创建100多个子域
最后,我想以便宜的价格获得这个项目,因为我无意为这个项目创造收入:)反向代理服务器 创建大量记录可能无效,因此我建议您使用通配符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万个或更多子域的性能:您有这方面的经验吗?做