如何根据三级域名选择主机来服务应用?

如何根据三级域名选择主机来服务应用?

这个问题可能非常简单,而且显而易见的答案甚至更加直接(是不可能的),但也许我遗漏了一些东西。

我有几台物理服务器托管自定义应用程序。每个应用程序都应该有一个三级域名。例如:atest.site.combfive.site.com等等bmovie.site.com。我不知道名称到底是什么,但有一条规则规定服务器 A 应该为所有名称以“A”开头的应用程序提供服务(例如 atest)。服务器 B 应该为名称以“B”开头的应用程序提供服务(例如 bfive 和 bmovie)等等。同时,我必须在地址栏中保留应用程序名称,因此像这样的简单重定向atest.A.test.com对我来说不起作用。

有办法实现这个吗?使用 DNS/balancer/URL_rewrite/reverse_proxy/whatever 实现这个的最佳方法是什么?

答案1

可以为 设置一个通配符 DNS 名称*.example.com,将对这些域的所有请求定向到特定的 IP 地址。

在该主机上,可以设置具有通配符虚拟主机的 Web 服务器。例如,在 nginx 中,可以像这样定义它们:

server {
    server_name ~ ^(.)([^.]+)\.example.com$;

    proxy_pass https://$1.example.com;
}

这里我们使用正则表达式来捕获三级域名的首字母,并将三级域名的其余部分保存到一个变量中。然后我们使用首字母将proxy_pass请求传递给所需的目标。

相关内容