在KVM linux中构build一个服务器

我拥有一台Linux服务器。 现在有几个用户想要在其上构buildWeb服务,但他们需要不同的环境。 为了方便,我给每个用户一个KVM虚拟机root的权限。

但是显然linux服务器只有一个IP。 如何将外部请求传递给相应的虚拟机?

(我希望它有点复杂,如果是这样的话,我至less需要一些文档/网站,我可以开始阅读。)

假设我正确理解你的问题,你将需要2个服务。

  1. ssh代理
  2. networking代理(我build议使用nginx / HA-Proxy)。

ssh代理服务是通过使用SSH密钥和命令=“”指令来实现的,你的代理服务器的密钥auth以/ bin / false作为shell,然后定义command =“ssh user @ real-server” ssh-rsa …行。

使用webproxy将基于hostname / uri的连接传递给相关的后端。

现在,这已经不是很漂亮了,但有​​可能,如果可以的话,只要将一些公共IP地址分配给机器本身就会容易得多。

这不是那么复杂…你问你的提供商与多个IP的业务类连接。

否则,你不得不给他们不同的主机名,你会通过虚拟主机指令而不是虚拟机将客人交付到他们的网站。

或者你可以尝试创build一个虚拟机,通过parsing传入的请求并从那里进入,从而以某种方式redirect到内部站点。

你想要的是一个所谓的反向代理。 这是一个代理服务器,通过获取您拥有的一个IP上的所有stream量,parsing主机头并处理外部客户端的请求。

链接到HowTo: http//www.apachetutor.org/admin/reverseproxies

这样,您只需将正常的VirtualHost添加到您的Reverse Proxysconfiguration中,并在Vhosts中configuration反向代理部分。 也使您能够轻松使用通配符。

但要小心,这只适用于HTTP。 HTTPS的扩展可以用来实现相同的,但AFAIK浏览器支持是不好的。

你也想要简单的主机专用networking。 这样您就可以使用iptables将SSH端口转发到内部IP地址,并使用反向代理执行HTTP。

另外,我认为你想达到的是愚蠢的。 不要把根交给你的用户,并使用某种forms的大容量主机控制面板。 它最less工作的方式:)

希望能帮助到你 :)

如果我理解正确,你在物理服务器上创build了一个KVM虚拟机,并为用户授予了对虚拟机的根访问权限?

物理服务器在您的公司内部还是在数据中心外?

如果完全在您的控制之下,您可以使用KVM桥接networking为每个KVM提供一个专用IP。 configuration网桥取决于Linux版本。

以下是如何在CentOS / Redhat中为KVMconfiguration网桥。

如果您的服务器位于Colo / off站点,则桥接也是可能的。

如果你不能使用桥接,另一个select是使用NAT,这是很麻烦的。