配置为侦听端口 80 的 Tomcat 连接器无法启动

Posted

技术标签:

【中文标题】配置为侦听端口 80 的 Tomcat 连接器无法启动【英文标题】:The Tomcat connector configured to listen on port 80 failed to start 【发布时间】:2017-11-21 22:31:04 【问题描述】:

我运行 webapp https://github.com/donhuvy/mycustomer 我面临错误

说明:

。 该端口可能已在使用中,或者连接器可能配置错误。

行动:

验证连接器的配置,识别并停止任何进程 正在侦听端口 80,或将此应用程序配置为侦听 在另一个端口上。

这是我的日志https://gist.github.com/donhuvy/93210850f955f9ddbc00ab735a0ade18#file-terminal-log-L191

我已经通过命令检查了 80 端口

sudo lsof -i TCP:80 | grep LISTEN

但结果什么都不是。如何解决? (我使用 macOS 10.12.5) 更新:

运行 Sencha 客户端(在目录client 内)

sencha web -port 8082 start

我将 Spring Boot 端口更改为 8082:

APPLICATION FAILED TO START

Description:

The Tomcat connector configured to listen on port 8082 failed to start. The port may already be in use or the connector may be misconfigured.

Action:

Verify the connector's configuration, identify and stop any process that's listening on port 8082, or configure this application to listen on another port.

【问题讨论】:

80 端口上是否已经有东西在运行?防火墙是否会阻止您使用该端口? 我的/etc/hosts127.0.0.1 localhost 255.255.255.255 broadcasthost ::1 localhost 正如我所说,我使用命令检查端口 80,结果什么都没有。 先把端口改成smth。否则检查 - 如果有效,80 已被使用,尝试查找谁在使用它。如果不起作用 - 检查其他配置,它不是端口 我尝试将 Spring Boot 端口更改为 8082,并运行 Sencha 客户端,但出现同样的错误。 【参考方案1】:

如果您使用配置的端口 80 启动 SpringBoot 应用程序,可能会出现 2 个问题:

    需要以 root 权限执行命令。只需在启动命令前添加“sudo”即可。这对我有帮助。

    端口正在被另一个应用程序使用。要检查它,您可以使用以下命令: "netstat -l";

【讨论】:

【参考方案2】:

linux上1024以下的端口只有root才能打开,所以默认限制80端口

如果你想在 80 端口上发布你的应用,你需要将请求从 80 端口重定向到你将运行你的 springapp 的端口(例如 8080)端口

您可以使用默认允许在端口 80 上工作的 apache2 服务器,并且可以将您的请求转发到 tomcat

来源:Spring Boot running app on port 80

【讨论】:

这由“java.net.SocketException: Permission denied”指示。如果另一个程序已绑定到端口 80(其他答案建议),您将收到另一条错误消息,例如“端口已在使用中”。顺便说一句:1024 以下的端口在 macOS 上的工作方式相同(如问题中所述)。 非常感谢。我在 Manjaro 遇到了这个问题。【参考方案3】:

80 端口已被另一个应用程序使用。更改tomcat的post no。而且你不能直接在80 post上运行tomcat你需要安装authbind,作为参考你可以点击下面的链接:-

以下作品:

apt-get install authbind

首先,在 /etc/default/tomcat7 文件中设置 AUTHBIND=yes

sudo touch /etc/authbind/byport/80
sudo chmod 500 /etc/authbind/byport/80
sudo chown tomcat7 /etc/authbind/byport/80

参考:http://georgik.sinusgear.com/2012/03/10/tomcat-7-listen-on-port-80-linux-debian/comment-page-1/

http://2ality.com/2010/07/running-tomcat-on-port-80-in-user.html

【讨论】:

什么是tomcat的post no?

以上是关于配置为侦听端口 80 的 Tomcat 连接器无法启动的主要内容,如果未能解决你的问题,请参考以下文章

配置为侦听端口 8080 的 Tomcat 连接器失败

https 后的 Spring Boot:配置为侦听端口 8444 的 Tomcat 连接器无法启动。

在Eclipse中的Spring Boot应用程序,配置为侦听端口XXXX的Tomcat连接器无法启动

要配置为侦听端口80和8080的VM实例组

tomcat 80端口 无法访问

spring boot 启动错误