这是我建议使用 OpenVZ 容器(托管在 Proxmox 上)的设置:
CT 1:MySQL 和 nginx。托管所有数据库和多个网站(域)。使用的端口为 80、443、3306、8080
CT 2、3、4:这些主机拥有特殊服务器,均在端口 7171 和 7172 上监听。它们还连接到 CT1 以获取其数据库。
为了连接到网站,人们使用exampledomain1.com
exampledomain2.com
等等
要连接到 CT 2、3 和 4 中的服务器,人们使用login.exampledomain1.com:7171
等等(一旦通过身份验证,客户端就会切换到端口 7172)
MySQL 监听mysql.exampledomain9.com
那么,为该配置获取额外的 IP 是否最好?我需要多少个 IP(也许每个域一个?)?
答案1
一般来说,您应该尽量使用尽可能少的 IP 地址。
如果您的应用程序正常运行并且您只有一个公共 IP 地址,那就没问题。
如果您需要区分服务器上的不同角色,或者想要提前规划未来的角色分离,请使用 DNS 名称来识别服务器执行的每个角色。
答案2
现在,每台公共计算机都需要一个 IP。不再需要。Apache 可以设置为处理 HTTP 和 HTTPS 上的任意数量的域。
如果可以的话,私人计算机(如后端)请使用本地 IP 地址进行设置。
使用以下方法,您可以向同一个以太网端口添加多个 IP 地址,从而创建具有相同端口的类似服务器。显然,这也意味着您需要使用正确的 IP 来连接到所述服务器(即此处显示的 192.168.1.2 和 192.168.1.3)。
auto eth1:0
iface eth1:0 inet static
name Local network
address 192.168.1.2
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.254
auto eth1:1
iface eth1:1 inet static
name Local network
address 192.168.1.3
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.254
etc.
注意:现在您可以添加的端口数量没有实际限制,尽管有些主板可能不接受超过 255 或 256 个 IP,而 IP 太多可能会降低网络速度。
答案3
简短回答:不,你不应该。请阅读下面的建议。
请考虑不要通过公共互联网打开您的数据库。由于您使用的是 OpenVZ 容器,因此您应该能够通过内部网络访问它们。如果可能的话,您应该绑定 MySQL 以监听 LAN IP。您可以在 my.cnf 中设置它。使用此设置,您可以将 mysql.domain.com 指向该内部 IP,也可以跳过该步骤并使用/etc/hosts
Web 服务器上的文件,以免通过公共 DNS 公开您的内部配置。
几乎没有理由让数据库服务器从互联网访问。如果您不能使用内部网络,那么我会继续在两台服务器之间设置内部 VPN。OpenVPN 可用于此目的,基本设置就足够了。