我有 2 个网站和 1 个 Web 应用程序(WCF 服务)。我还有一个由 opensrs.net 管理的域名。
通过 DNS -> CNAME 将站点映射到域时没有遇到任何问题。
*.abcd.com -> abcd.host.com
play.abcd.com -> abcd.otherhost.com
但是,我在映射 Web 应用程序时遇到了问题。
api.abcd.com -> abcd.otherhost.com:8081
我搜索了网络,有人建议我使用 DNS -> SRV。
api.abcd.com -> Priority: 1
Weight: 1
Port: 8081
Host: abcd.otherhost.com
还是没用。
答案1
由于 HTTP 的 SRV 记录的使用并不广泛,因此您无法通过 DNS 以可靠的方式执行此操作。
正常的处理方式是使用反向代理来将请求代理到相关端口。
答案2
这其实并不太难。
如何设置
- 使用DNS对于应该做的事情。
- 设置 DNS 和 CNAME 记录,以便所有所需的名称都能解析到正确的主机。
- 设置虚拟主机配置(如果您运行 Apache)
- 使用与 DNS 记录中相同的主机名和任何所需的(可用)端口号。
- 配置每个目录虚拟主机. 确保目录存在并且可以被 Apache 访问。
- 启用您的虚拟主机配置文件,然后重新启动 Apache 来加载更改。
为什么这样做有效
如果操作正确,Apache 将通过匹配主机名来将流量引导至正确的端口号或从正确的端口号引导流量。虚拟主机配置的值服务器主机名每个字段HTTP 请求标头。
那么 Apache 未配置/管理的端口怎么办?
这可以通过设置单独的代理服务器或启用和配置 Apache 代理功能和虚拟主机名配置来实现。