将流量拆分到单个 IP 后面的多个服务器

将流量拆分到单个 IP 后面的多个服务器

我在数据中心有半个机柜,但只有 3 个 IP 地址;在办公室,我有一条 100MB 光纤,其中有 5 个可用于托管。

我在一家剩余电子产品商店以每台约 100 美元的价格购买了几台 F5 BigIP 3600,以为可以在办公室和数据中心使用它们,但在尝试运行它们近一年后,我放弃了。一切似乎都按预期进行了设置,所有内部测试都通过了,但尝试实际使用它来进行转发流量时却失败了。

考虑到这一点,我希望能够将单个 WAN 上的流量拆分到多个内部地址。我试图启动一个 VPS 盒,并在一台服务器上安装了 Windows、Ubuntu、CentOS 和 OSX,但这意味着 4 个 IP 地址(更不用说一旦我开始克隆它们我会使用多少个 IP 地址)。

我昨晚发现我可以使用 Nginx 通过反向代理进行 HTTP 流量,但有没有更好的方法,既不会花太多钱,还能让我使用域名连接到 SSH 和其他服务/端口?

例如,如果我有

http://domain-on-server1.com
http://domain-on-server2.com 

在我的 DNS 上,我将为每个要转发到的域创建 A 记录:

main.external.ip

然后将所有端口(不仅仅是像 Nginx 那样的 80 端口)转发到适当的内部 IP。

我不介意做更多的研究,但如果您能帮助指导我是否正在寻找 NAT、反向代理、端口转发(但基于域)之类的东西,我将不胜感激。我对 PFSense 有一些经验,但昨晚在 Youtube 上看 Squid3 教程似乎不是我想要的。我真的不需要负载平衡。

就目前情况而言,在没有新的 F5 / Cisco 设置的情况下,我能做的最接近的就是执行 Nginx,然后设置我的 ssh 客户端以通过另一台服务器作为代理进行连接,但感觉应该有一些更简单的事情。

答案1

我担心你的做法完全错误。没有迹象表明你需要负载平衡器,对吗?你只是试图让多个私有 IP 地址上的服务在一小部分公共 IP 地址上可用。

你需要的是可以做NAT的路由器,而不是nginx,也不是F5。

使用 pfSense 是正确的选择。我建议你这样做。将它放在服务器前面,然后根据需要使用它来转发端口。如果你需要负载平衡,您也可以使用 pfSense,或者使用其他负载平衡器(haproxy、nginx 等)里面您的网络,在防火墙后面。如果您需要 HTTP 感知代理,pfSense 还有一个 Squid 包,您可以安装它。

关于授予 SSH 访问权限,我建议的典型使用模式是拥有一个可以连接的、保护良好的 SSH 堡垒主机,然后从那里跳转到其余的内部主机。您甚至可以使用配置位来~/.ssh/config自动通过跳转主机进行连接。

相关内容