Tomcat 服务器不会在端口 80 上响应

Tomcat 服务器不会在端口 80 上响应

我正在建立一台 TeamCity 服务器,它在 Amazon EC2 上运行它自己的嵌入式 Tomcat 实例。

我已成功让实例在端口 8111 或 8080 上响应,但是当我尝试将端口更改为 80 时,我无法让它在该端口上响应。

我已将安全组设置为允许端口 80,并验证这不是问题。

我的 Linux 实例上没有运行任何其他东西,只有 TeamCity 发行版,所以我没有 apache 服务器或任何正在运行的东西。

我觉得奇怪的是,当我在 8111 或 8080 上运行它,然后执行 netstat 时,我可以看到这些端口正在被监听,但是当我将端口设置为 80 并运行另一个 netstat 端口 80 时,它从未显示为正在被监听。

有人知道为什么我无法让 tomcat 响应端口 80 吗?

答案1

对于 Amazon EC2 Basic Linux 实例,端口 1-1023 是享有特权的,因此当我尝试以非 root 用户身份启动 teamcity 时,它崩溃了,因为我试图访问一个享有特权的端口。

我发现这个 stackoverflow 问题

它概述了两种解决方案:

  • 以 root 用户身份启动 teamcity
  • 使用 jsvc 将 teamcity 作为服务运行

答案2

它可能已被其他进程使用。您应该运行

netstat -anc | grep 80

以 root 身份找出哪个进程在该端口上有一个 LISTEN 套接字。

相关内容