我站在一个TeamCity服务器上运行它自己的Amazon EC2上的embedded式Tomcat实例。
我已经成功地得到了实例来响应端口8111或8080,但是当我尝试将端口更改为80时,我无法让它在该端口上作出响应。
我有我的安全组设置为允许端口80,并validation这不是问题。
我没有在我的Linux实例上运行其他任何东西,只是TeamCity发行版,所以我没有运行Apache服务器或任何东西。
我似乎很奇怪的是,当我在8111或8080上运行它,然后做一个netstat我可以看到这些端口正在侦听,但是当我把端口设置为80,运行另一个netstat端口80永远不会显示为正在侦听。
有谁知道为什么我不能让tomcat响应端口80?
使用Amazon EC2 Basic Linux实例时,端口1-1023是有特权的,所以当我尝试以非root用户身份启动teamcity时,它正在崩溃,因为我试图访问特权端口。
我通过这个stackoverflow问题发现了这一点
它概述了2个解决scheme:
它可能已经被其他一些进程所使用。 你应该跑步
netstat -anc | grep 80
以root身份查找哪个进程在该端口上有一个LISTEN套接字。