我正在开展一个项目,将防火墙后面的私人网络服务暴露给公共互联网,但是通过一个代理来验证所有请求。
基本上我有一个公共node.js进程,它执行所有身份验证,并将请求重定向到适当的端点。我在验证请求后使用http-proxy代理请求。
目前我在所有端点上运行了node.js服务,并且我使用openvpn创建隧道,并使用iptables重定向任何不在localhost上的请求。本地node.js进程管理添加和删除iptable规则以及openvpn连接的身份验证以及实际node.js代码的更新。
这很有效,但很笨重,而且不是那么可扩展。
我想通过websocket连接将http请求从公共服务器传递到另一端的node.js进程,并将其重定向到其意图的ip:port。
基本网络图
这是我想要完成的基本网络。 我试图了解管道和流如何协同工作以实现这一点,但没有取得真正的成功。
有人能为我提供一些可以实现此目的的基本示例代码吗?