在Ubuntu下从Chroot里面运行服务器

由于应用程序的特殊性,我正考虑在chroot环境中运行Apache,Tomcat等服务器。 使用schroot和debootstrap,我可以在chroot目录下创build一个我的10.04 ubuntu(最小的ubuntu)的克隆。 我已经在chroot里安装了tomcat和apache。 但是,如何访问这两个服务器呢?

  1. 我可以像访问父服务器上安装的普通apache / tomcat那样访问它们吗?
  2. 父OS可以访问chroot os的apache / tomcat吗?

首先,这些选项中的哪一个是可能的。 其次,我应该处理每个选项的警告。

我想要类似的东西

Internet ---> [Main host Ubuntu 10.04 Apache ----> (chroot ubuntu Tomcat) ] 

chroot ing是虚拟机最简单的形式之一。 如果您的应用程序对安全敏感,则可以考虑运行更全面的解决方案,例如OpenVZ , Xen , KVM , VirtualBox或商业解决方案(如VMware等)。

话虽如此,你应该考虑把你的chroot OS看作你网络中的另一个主机。 当你只使用chroot ,你可以用localhost (127.0.0.1)作为localhost (127.0.0.1)来访问它,同时使用其他端口号(chrooted系统将有效地与父系统共享端口分配),而使用其他虚拟化解决方案则可以让你为每个虚拟机分配一个正常的单独的IP并运行它,就像运行一个单独的物理盒子一样。

chroot是相当“弱”的安全解决方案,是父母和孩子几乎没有限制(即内存,CPU,进程池,磁盘空间,权限,套接字等)共享大量资源。 它们实际上仅限于有限的文件系统访问(即,chrooted应用程序只能访问整个文件系统的一部分),尽管它提供了某种程度的隔离。