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)
祝你好运。