tomcat(tcServer)在linux的80端口…好主意?

以root身份直接在端口80(或443)上运行tomcat(来自spring源码的tcServer)是一个好主意

我们可以使用mod_proxy或mod_jk来解决这个问题。 我也看到了基于iptables的解决scheme(即iptables -t nat -A PREROUTING -p tcp -dport 80 -j REDIRECT -to-ports 8080)

生产用途中应该知道哪些优点/缺点?

你绝对不想以root身份运行你的web应用程序! 永远不能!!

尽可能安全 – 它会被黑客攻击,这只是一个时间问题(和人气:))

运行tomcat作为另一个只能读/写(如果需要)自己的目录的用户('tomcat'或类似的)。

至于端口redirect,我build议使用iptables,就像你展示的一样。

或者你可以按照这里所描述的来做apacheredirect。

如果你有一个更大的站点并使用硬件负载平衡器,你可以将VIP上的端口80映射到你的Web服务器上的8080端口,在这种情况下,你不必在服务器端做任何事情,而且tbh,这是最好的做法。

正如pulegium所言,永远不要运行你的web服务器(如果你使用HTTP连接器作为root用户,那么Tomcat将会是这样!相反,deactiveta HTTp for Tomcat(参见server.xml)并使用apache2的AJP / 1.3连接器mod_proxy_ajp(或者lighttpd还提供了一个AJP代理),这将是一个生产环境的复位设置,另外它还提供了mod_proxy_balancer和所有其他apache的东西(或lighttpd)的好处。