是否可以透明地委托HTTP请求



假设计算机A向服务器B发送HTTP请求,而B希望C回答该请求。C是否可以在没有B干预和A的特定操作(如3xx重定向)的情况下将响应发送回A?假设C可能没有公共IP地址。

reverse proxy就是这么做的。根据您所在的平台,有很多选择。

在许多平台上工作的一种方法是,例如,可以在服务器B上启动node-http-proxy。在最简单的情况下,这一行可以做到:

require('http-proxy').createServer(81, 'serverb').listen(80);

它在端口80上侦听并重定向到服务器b上的端口81。

请参阅https://github.com/nodejitsu/node-http-proxy了解更多选项。

当然,有很多成熟的代理具有更多的功能(尽管节点http代理也可以进行https隧道等),但配置这些代理可能比运行这一行更具挑战性。这完全取决于您的用例。

编辑:阅读您的评论,可以使用直接路由完成。您的问题是关于HTTP(第7层),由于直接路由在较低层上工作,像HTTP这样的高级协议也可以工作。报价来源http://horms.net/projects/has/html/node9.html:

直接路由:来自客户端的数据包直接转发到后端服务器。IP数据包未修改,因此后端服务器必须配置为接受虚拟服务器的流量IP地址。这可以使用伪接口或数据包来完成筛选以重定向寻址到虚拟服务器IP的流量地址到本地端口。后端服务器可以直接发送回复返回客户端。也就是说,如果使用基于主机的第4层交换机可能不在返回路径中。

最新更新