了解 Web 托管环境中的网络

了解 Web 托管环境中的网络

背景信息(请原谅我在这里缺乏正确的术语):我将运行一对物理服务器,每台服务器都使用 Nginx 托管一些简单的网站。这些服务器位于托管服务器中,我将拥有一些专用 IP 地址(最多 16 个)。这些服务器通过交换机连接。它们的网络位于 Cisco 防火墙后面。

我的意图(如果完全错误,请纠正我)是为每台服务器提供一个虚拟 IP。然后,通过防火墙进入的流量将被准备到其中一个虚拟 IP 地址(我的主服务器)。这样,如果我的主物理服务器出现问题,我可以关闭它并在备份物理服务器中使用其 VIP(手动故障转移)。我的理解是,如果我将故障转移服务器的虚拟 IP 更改为主服务器正在使用的 IP,那么对公共 IP 地址的请求将被路由到故障转移服务器。

然而,当谈到理解网络时,我感到非常困惑(您可能已经知道了)。

1) 如果 TCP 连接到达我网站的公共 IP,它将遇到防火墙。然后,它将被定向到主服务器(基于 VIP)。这是正确的吗?

2) 如果我的两台服务器都位于同一个防火墙后面,那么如何通过同一个 IP 地址访问它们(这样我就可以将 A 记录指向单个 IP)?或者,这不可能通过防火墙实现,只有路由器才能处理?

3) 我的用例是否更适合使用静态 IP 地址或 DHCP?这两种方式都有哪些缺点?

4) 我是否正确理解了公共 IP 地址。我是否应该为防火墙分配一个公共 IP 地址,然后将连接从该地址转发回防火墙后面的单个 IP?或者,我的每台服务器是否都获得一个 IP 地址,并且 TCP 连接只是通过通过我的防火墙以及基于所连接的 IP 地址的其中一台服务器?

答案1

您的理解是正确的。请注意,在网络术语中,虚拟 IP 本质上是路由器可以控制的公共 IP,您可以随时随地将其出租...

IP 地址有两种类型:公有 IP(通常分配给路由器本身);私有 IP,您可以在 VLAN 中 100% 控制私有 IP。对于您而言,您需要获取所有公有 IP,将它们放在一个 VLAN 中,将它们全部分配给路由器(并让路由器通过静态 IP 路由将它们租出),并确保路由器已设置为 NAT 1:1 重定向(可以使用公有 IP 并将其重定向到内部 IP 地址)。这样,在您的服务器上,您可以将其分配给 10.0.0.101,并将备份服务器设置为 10.0.0.102。如果您的主服务器出现故障,您无需切换任何公有 IP 地址,您需要在路由器端做的就是让您的公有 IP 指向您的其他私有 IP。

但是,还有其他方法可以做到这一点。如果您使用 Nginx 的上游后端功能(http://wiki.nginx.org/HttpUpstreamModule),您也可以在多个服务器之间进行 Web 服务器负载平衡(如果一个后端发生故障,Nginx 会知道这一点),但如果代理您请求的主 Nginx Web 服务器发生故障,您就必须使用其他一些花哨的路由才能使其也能很好地进行故障转移。您可能想阅读https://stackoverflow.com/questions/10971298/load-balancing-with-nginx:)

相关内容