我可以使用私有 IP 在 kvm 客户机上托管域名吗?

我可以使用私有 IP 在 kvm 客户机上托管域名吗?

我有一台服务器,想要托管多个域。

假设这些:

example1.com
example2.com
example3.com

我目前只有一个公共 IP。我已将所有 A 记录配置为指向该公共 IP 地址。我可以毫无问题地配置我的 apache 来为所有域提供文件,并且我可以通过 ssh 连接到这些域中的任何一个并访问我的服务器。

现在我已经安装了 KVM 并创建了几个客户机。一个客户机有一个私有 IP 地址192.168.0.100。我想example2.com在该客户机上托管。因此,我需要以某种方式将所有用于该域的流量导向私有 IP 地址。

我希望能够在多个客户机上运行 apache 和 sshd,并根据客户机配置的域分配流量。

使用私有网络是否可行?还是每个域都需要公共 IP 地址?

如果有人能启发我,我将不胜感激,我怀疑我忽略了一些显而易见的事情。

答案1

可以转发流量,您可以使用 iptables 转发流量并使用 mod_proxy 将传入的 http 请求代理到正确的服务器。

您将无法使用域名通过 ssh 连接到端口 22 并期望它转到本地客户端。您需要使用单独的端口将流量转发到正确的 ssh 端口。

例如,如果您有 guest1,我们将在我们的公共 IP 上保留端口 10000,以将所有数据包转发到端口 22 上的 guest1 私有 IP(192.168.1.2):

首先允许伪装:

$IPTABLES -t nat -A POSTROUTING -o eth0 -j MASQUERADE

将端口 10000 传入的流量转发到 guest1 上的 ssh 端口:

$IPTABLES -A PREROUTING -t nat -p tcp -i eth0 --dport 10000 -j DNAT --to 192.168.1.2:22

答案2

根据负载将流量转发到多个服务器的另一种方法是低压开关柜. ipvsadm是设置它的命令...

相关内容