pix*_*eck 12

该答案仅适用于 Tomcat 9... 7 和 8 已经在互联网上有详细记录。

您不能使用端口 80,因为 1024 以下的端口仅限于 Linux 中的 root 访问,除非您使用 authbind 来覆盖该限制。

我在使用 Ubuntu LTS 20.04、Tomcat 9.0.40 时遇到了同样的问题,以下是我必须做的修复方法。除特定情况外,我不做任何承诺。

这假设您正在使用 systemctl 来启动和停止 Tomcat 服务器。如果您在 Docker 容器或 Hyper-V VS 中运行,则不太可能,并且这些指令并不完全适合您的情况,但它们应该足够接近以帮助您完成。另外,我不会输入 sudo 100 次……如果你有 root 访问权限的话,即使不是在所有内容前面加上 sudo 前缀,也很好。

安装 AUTHBIND

apt-get install authbind
Run Code Online (Sandbox Code Playgroud)

为您的 tomcat 系统用户设置 AUTHBIND

touch /etc/authbind/byport/80
chown tomcat: /etc/authbind/byport/80
chmod 500 /etc/authbind/byport/80
Run Code Online (Sandbox Code Playgroud)

修改systemctl以在启动tomcat时使用AUTHBIND

vi /etc/systemd/system/tomcat.service
change --> ExecStart=/opt/tomcat/bin/startup.sh
to     --> ExecStart=authbind --deep /opt/tomcat/bin/startup.sh
Run Code Online (Sandbox Code Playgroud)

重新加载 systemctl 守护进程以使用新设置

systemctl daemon-reload
Run Code Online (Sandbox Code Playgroud)

编辑tomcat服务器配置以设置端口80

vi /opt/tomcat/conf/server.xml
change --> <Connector port="8080"...
to     --> <Connector port="80"...
Run Code Online (Sandbox Code Playgroud)

重启tomcat

systemctl restart tomcat
Run Code Online (Sandbox Code Playgroud)

祝你好运。