在端口80上运行Apache Tomcat 8

我想在端口80上而不是8080上安装/configurationapache tomcat。我在端口80上运行Nginx,并且使Nginx服务停止。

我将Shutdown,连接器端口分别从8005改为8008和8080改为80。 当我使用./bin/startup.sh它显示没有错误,并在catlina.out它说“org.apache.catalina.startup.Catalina.start服务器启动在1405毫秒”,但是当我访问http:// localhost它说ERR_CONNECTION_REFUSED

build议我如果我做错了什么。

谢谢

这个问题出现了很多。 让我们假设你想使用非根方法。

使用authbind ,除非你想使用IP6。

使用iptables并将端口80redirect到8080。

将Apache / Nginx设置为反向代理需要更长的时间,并且会增加更多的复杂性。

如果你想tomcat绑定到一个低于1024的端口,最简单的答案就是你必须以root身份运行(在Unix系统上)。 这是一个特别糟糕的主意。

不过,有几种方法可以解决这个问题。

另一种方法是在端口80(和443)上使用普通的Web服务器,并使用多种方法之一将stream量转发到Tomcat。 我不熟悉nginx,但可能有使用它的方法。 在Apache httpd上,您可以使用mod_jk,mod_proxy_ajp或mod_proxy_http将Apache的请求转发到tomcat。 当然,你会防火墙的tomcat,所以它不能被达到,除非请求已经通过Apache。

如果你只想运行tomcat而没有其他的东西,你可能需要查看jsvc ,它可以以root用户身份启动tomcat,然后在绑定端口后将其降级为非特权用户。 检查评论:我从来没有使用它,至less@raupach有反对它(它的年龄)的论据。 你也可以简单地使用iptables将端口8080转发到端口80.但是,你应该检查是否这使得tomcat意识到它正在获取端口80上的请求:如果tomcat仍然认为它在8080上应答,它将生成8080的URL,而不是80 – iptables是另一种我从来没有用过的技术。

configuration(反向代理)的第一个选项是更多的工作,但有几个更多的优势 – 例如你有mod_rewrite和其他好东西在您的处置。 我比jsvc更喜欢它。 你也可以通过Apache提供静态文件,而不用打扰tomcat。 这可以很容易地在性能调整的第一步。

如果您试图以非root用户身份运行catalina.sh。 您不能以普通用户的身份绑定到端口80。

但是,如果您使用发行版提供的tomcat软件包,这应该不成问题。