我们的内联网中有一项 Web 服务,它本身使用了很多内部 Web 服务。互联网绝对无法访问内联网,但有一个公司代理允许从内联网通过 HTTP 访问互联网。
有什么解决方案可以使这个内部网网络服务在公共互联网上可用吗?
我认为它是某种由两个组件组成的发布-订阅反向代理:
- 发布-订阅队列,托管在公共互联网上。它接收来自互联网上任何客户端的 HTTP 请求并将其存储在其队列中(暂时不响应请求)。
- 某种长轮询反向代理,安装在我们内部网络的任何服务器上。它通过 HTTP 通过企业代理订阅 (1),从其队列接收请求,执行这些请求并发回响应。
这些响应 (1) 是作为对初始查询的回复发送回来的。因此,客户端甚至“不知道”所有这些机制正在发生。
有这样的事吗?这是个坏主意吗?
答案1
您可以通过 IT 部门正确地完成此操作。其他任何方式都可能给您带来麻烦,但我也会概述这一点。
听起来,设置 IT 的人选择严密地封锁网络。为了 [合法地] 允许此应用程序运行,您需要与他们合作以绕过障碍 - 原则上这是完全可行的。您可以将端口从路由器上的外部 IP 转发到 Web 服务器,或者,为了获得更好的控制和安全性,设置并通过某种代理进行路由 [确切的代理类型取决于您想要过滤/限制的内容/方式 - Mod_Proxy + Mod_Security 可能会执行您想要的操作,或者 Squid 或 privoxy 或其他东西 ]
如果您无法与系统管理员合作,那么您所做的任何事情都将试图破坏网络,并且可能会导致某人被解雇或流泪(最有可能是您,除非您 + 管理层反对 IT,在这种情况下,请保护您)。您可以为其获取备用网络连接或设置某种 VPN [VPN 通过端口 80 或 443 运行,因此看起来像 HTTP 流量]。有很多原因表明这不是一个好主意。
从概念上讲,可以编写某种网站 - 托管在更广泛的互联网上,可以接受请求,然后编写某种脚本,让您的网络服务器支持这个系统,并静态推送适当的内容,然后可以将其馈送到原始请求 - 要么直接响应 - 但延迟很大 - 或供以后访问。在我看来,这些场景需要大量工作才能实现,甚至需要做更多的工作来确保安全,而且如果做得正确,对您帮助不大。
我注意到,如果只有授权人员需要访问网络服务器,因为实施此类过滤的公司通常规模相当大,那么可能会有某种 VPN 允许人们连接到网络 - IT 部门可能会允许需要远程访问此服务器的人员通过 VPN 连接到它。这种情况相当常见。