在Ubuntu LTS 10.04.2的端口80上运行Tomcat6

我最近卸载了apache2,所以我可以直接在80端口上运行Tomcat6。 我一直在拉我的头发,试图让这个设置正确。

我读过这个post,关于设置tomcat使用authbind。 我试过这种方法,而不是在catalina.out中获取stacktrace错误,我只是在启动时得到一个[fail]响应,没有输出到日志。

我尝试将tomcat直接绑定到我的服务器的IP地址,然后编辑/ etc / authbind / byuid /以包含此IP地址,如同在此处input链接描述所示 ,但同样在启动时没有logging。

我可以成功地让tomcat在80端口上启动的唯一方法就是以root身份运行它,我不想这样做。

使用authbind在端口80上运行tomcat6的正确configuration是什么?

如果我运行任何需要提供一些网页的Java服务器,我通常使用mod_proxy,并有Apache服务。 然后,我的Linux服务器变得更加多function,因为端口80被更多语言接受的应用服务器所控制。

一般来说,我运行Apache服务器上的80代理到8800(或一些高端口)的Java站点,运行在8800的JBOSS和iptablesconfiguration为拒绝外部请求8800。

你确定你的configuration工作吗? 如果绑定失败,那么它仍然应该启动,只是缺less某些监听器。 尝试设置您的监听返回到0.0.0.0:8080,看看它是否仍然启动。

一旦你那么远,试试这个:

  • 把你的监听器改成80端口(把它设置成特定的地址不会有帮助,所以把它留在0.0.0.0就可以了)。

  • 修改/etc/default/tomcat6启用authbind。

运行以下命令:

 sudo apt-get install authbind sudo touch /etc/authbind/byport/80 sudo chown tomcat6:tomcat6 /etc/authbind/byport/80 

如果你已经在你的主机上运行防火墙(通过绑定到80我假设你是),你可以尝试使用iptables重新路由从80到8080的stream量:

sudo / sbin / iptables -t nat -I PREROUTING -p tcp -dport 80 -j REDIRECT -to-port 8080