配置为侦听端口 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/hosts
127.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 连接器无法启动的主要内容,如果未能解决你的问题,请参考以下文章
https 后的 Spring Boot:配置为侦听端口 8444 的 Tomcat 连接器无法启动。