AWS EC2:无法将Tomcat 9切换到侦听端口80

nvbavucw  于 2022-11-13  发布在  其他
关注(0)|答案(2)|浏览(173)

我正在Amazon Linux上运行EC2示例。我已经安装了Tomcat 9,默认情况下,我可以通过端口8080和8443访问Tomcat上运行的My应用程序。
我只想切换到80,以便更新conf文件夹中的server.xml

<Connector port="80" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="443" />

并确认端口80上没有运行其他服务。此外,还确认安全组中有足够的入站规则来侦听端口80

不幸的是,仍然无法通过端口80访问。

rm5edbpk

rm5edbpk1#

我终于找到了至少一个变通办法。我用iptables以下面的方式重定向。

sudo /sbin/iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

sudo /sbin/iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 8443

sudo /sbin/service iptables save
sudo /etc/init.d/iptables restart

不过,还是搞不清我们为什么要做这一切?

m0rkklqb

m0rkklqb2#

如果你以root身份使用bin/ www.example.com启动tomcatstartup.sh,它应该可以工作。对于1000以下的端口有一个限制,要求进程所有者必须是root。
如果您使用sudo service tomcat startsudo systemctl tomcat start启动tomcat,则进程的所有者是tomcat,而不是root。
BYW HTTPD的第一个进程是root,所以httpd服务可以工作。
您可以使用sudo ps -aAl查找进程的所有者。

相关问题