我想知道是否可以做以下事情以及如何做:
服务器 A 是www.aserver.com 服务器 B 是提供 web 服务的服务器,其中一个服务用于激活器(内部 web 服务。它通过以下方式提供服务 xx.xx.xx.xx/激活器/服务.aspx
我希望当有人去ws.aserver.com/activator/service.aspx它实际上会从xx.xx.xx.xx/激活器/服务.aspx(bserver)但它看起来像ws.aserver.com/activator/service.aspx
ws.aserver.com 的 A 记录无法指向 bserver,因为此主机的某些请求必须由 aserver 处理。而且由于遗留原因,URL 无法更改。
- bserver 只有一个 IP - 它不受 DNS 管理
- 我应该为服务器上的 ws 写什么?ANAME?CNAME?子域?重定向?DNS 路由?这么多名字……
答案1
听起来你需要的是反向代理服务器。这将是一台位于两个 HTTP 服务器前面的机器,它会根据 URL 路径将请求定向到适当的位置。
这不必是一个物理上独立的盒子——如果您有足够的资源,您可以在 aserver 或 bserver 上运行该服务。
您还可以使用服务器上的简单 HTTP 重定向(您似乎在问题中提到了这一点)来实现这一点,但效率要低得多,因为这意味着请求客户端实际上会发出两个请求。
Squid 是一种流行的 HTTP 代理,可以设置为反向代理。不过,我从未尝试过。我相信 Apache(可能带有附加模块)也可以自己做到这一点,但同样,我从未尝试过。