如何让 tomcat 8.5 在 AWS Linux 2 上的端口 80 上运行

时间:2021-03-18 08:56:38

标签: amazon-web-services tomcat amazon-ec2

我一直在 AWS Linux 上的端口 80 上运行 Tomcat 7。我以 root 身份运行它,它运行良好。没问题。

现在,我使用 Linux 2 创建了一个新的 AWS EC2 实例 (t2.micro),并在其上安装了 java 11 和 tomcat 8.5。但是我无法让 tomcat 绑定到 80 端口。它在 8080 上运行良好,但在 80 上运行良好。错误是

Caused by: java.net.SocketException: Permission denied
Mar 18 08:30:54 ----.compute.internal server[3467]: at java.base/sun.nio.ch.Net.bind0(Native Method)

我已经做过的:

  1. 我已经更新了 tomcat 的 server.xml 以使用端口 80(将 8080 更改为 80)
  2. 尝试以 root 身份运行服务:sudo tomcat start
  3. 执行“sudo su -”然后运行“tomcat start”
  4. tomcat.conf 中没有 TOMCAT_USER 变量,所以我添加了它 TOMCAT_USER="root"
  5. 尝试运行:iptables -A INPUT -p tcp --dport 80 -j ACCEPT

谁能告诉我我需要做些什么来修复它?我只需要 tomcat 作为我的网络服务器,监听 80 和 443。我不想要 httpd、ngnix 或端口转发。

这是 /etc/os-release 的输出:

 cat /etc/system-release
Amazon Linux release 2 (Karoo)
[root@ip-172-31-32-37 ec2-user]# cat /etc/os-release
NAME="Amazon Linux"
VERSION="2"
ID="amzn"
ID_LIKE="centos rhel fedora"
VERSION_ID="2"
PRETTY_NAME="Amazon Linux 2"
ANSI_COLOR="0;33"
CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2"
HOME_URL="https://amazonlinux.com/"

0 个答案:

没有答案