我正在寻找一个软件/工具/操作系统功能,可以让我执行以下操作:
传入的 HTTP 请求被转发到另一个系统(然后响应也被发回):
因此客户端 A 发送至
http://myserver/path/subdir1
MyServer 会将请求转发给
http://otherserver1/path/something
,等待响应然后将响应发送回客户端 A。其他人(可能是客户端 A,也可能是客户端 B)向
http://myserver/path/subdir2
MyServer 会将请求转发给
http://otherserver2/some/where
,等待响应然后将响应发送回请求者。
这不是传统的代理,因为传入 URL 和转发目标之间存在映射。此外,客户端/请求者必须不知道这一点,其他服务器也不需要知道这一点。由于 HTTP 路径会影响映射目标,因此无法使用普通路由器。
我仍在寻找如何调用它以及如何解决它。我觉得这应该不是什么大问题。
应运行 HTTP 转发的服务器是 Windows Server 2016。
答案1
您正在描述一个 HTTP反向代理。此功能存在于少数 Web 服务器(包括 Nginx 和 Apache httpd)中 - 使用 ProxyPass 或类似语句,可以将任意位置配置为代理到另一台服务器,而不是在本地提供服务。这还包括您描述的 HTTP 请求路径重写。