Web 代理以避免端口转发

Web 代理以避免端口转发

在此处输入图片描述

你好。我想知道是否有人可以帮助我确定要使用哪种解决方案。我需要运行一个充当 HTTP 请求代理的云服务器,但在 Web 服务器端,我没有固定 IP 或打开应用程序访问端口(例如 8080)的可能性,这将是端口转发。这个想法是让 Web 服务器连接到云服务器解决方案并保持持久连接等待请求。反过来,客户端向提供对 Web 服务器应用程序的访问权限的云服务器解决方案发出请求,完成客户端和服务器之间的 http 通信周期。

有人知道我可以使用什么技术或解决方案来解决这个问题吗?

答案1

(正确的解决方案是让 IIS 服务器支付静态 IP 地址的费用。我不喜欢下面的解决方案,因为它不是“服务器级”稳定的。我没有考虑安全问题 - 根据需要运行适当的防火墙和/或端口限制)

解决方案分为两个部分 - 第一部分是使 Web 服务器可通过“云”访问。为此,我将使用 OpenVPN(这可以替代其他隧道或 VPN)- 具体来说,我将在“云”中运行 VPN 服务器,并让每个 .Net App 服务器与云中的 OpenVPN 服务器通信。我喜欢 OpenVPN,因为当 IP 地址更改时,它可以相当迅速地重新建立,并且它使用 UDP,简单且无处不在。

第二部分是将数据传到世界各地。根据您的具体要求,有很多解决方案。一种这样的解决方案是运行带有 proxy_pass 规则的反向代理,如 Apache 或 NGINX。您可以通过其 OpenVPN IP RFC 1918 地址访问远程服务器,并让 mod_proxy 进行定向。最简单的方法是将 Apache 和 OpenVPN 服务放在同一个 VPN 上,但如果您处理网络路由,您可以将它们放在同一个网络中的不同虚拟机上以实现可扩展性。(请记住,您需要有一个能够相互访问的静态外部 IP 和 VPN“内部/RFC1918”IP。

当然,您不必使用 Apache 或 NGINX。您可以使用 Squid 和静态内容缓存,或者甚至可以完全取消代理并在 VPN 框上使用 IPTables DNAT 规则(如果您同意通过单独的端口访问服务器)。

答案2

结构图像

你好呀!

根据 davidgo 的回答,这种结构是个好主意吗?

相关内容