我有一台服务器,想要托管多个域。
假设这些:
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
是设置它的命令...