当您运行想要在端口 80 上同时提供静态和动态内容的 Java Servlet 容器时,您会遇到一个经典问题,即是否将服务器运行为:
- 如果可以的话,希望成为一个 chroot 监狱的根(还没有得到这个工作)
- 作为非 root 用户,然后使用 IPTables 将端口 80 转发到容器正在运行的其他端口(>1024)
- 两者:作为非 root 用户,IPTables 和 chroot 监狱。
选择的问题。1是chrooting的复杂性,仍然是运行root的安全问题。opt的问题。2 是每个 Linux 发行版都有不同的 IPTables 持久化方式。选项 3 当然可能是想法,但很难设置。
最后,每个发行版在守护程序脚本中都有令人讨厌的差异。
人们认为最好的发行版不可知解决方案是什么,是否有资源可以展示如何做到这一点?
编辑:我宁愿不在 servlet 容器前运行 Apache,因为该站点主要是动态的,并且总内存占用很重要(托管成本)。