Tomcat拒绝在8080端口工作。

4

如果这个问题之前已经被问过,请原谅。

我有一个Amazon实例(Ubuntu Server 12.04.1 LTS),安装了Tomcat版本(Apache Tomcat/6.0.36)。它在80端口上按预期工作,但在8080端口上不行。(不起作用意思是“无法连接到Web应用程序管理器”)。

  • 我的安全组配置已经打开了http *的8080端口
22 (SSH)    0.0.0.0/0   删除
80 (HTTP)   0.0.0.0/0   删除
8080 (HTTP*)    0.0.0.0/0   删除
  • 我已经安装了jdk和jre,即使我不知道为什么需要jdk, 如果tomcat在8080端口上运行。
  • 我已经通过以下方式配置了tomcat以绑定IPV4地址
<Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" address="0.0.0.0"/>

在server.xml中并添加

JAVA_OPTS="$JAVA_OPTS -Djava.net.preferIPv4Stack=true"
echo $JAVA_OPTS

到setenv.sh

运行netstat -ln会给我

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:8005          0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:8009            0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN     
tcp6       0      0 :::22                   :::*                    LISTEN     
udp        0      0 0.0.0.0:68              0.0.0.0:*                          
Active UNIX domain sockets (only servers)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  2      [ ACC ]     STREAM     LISTENING     5886     @/com/ubuntu/upstart
unix  2      [ ACC ]     STREAM     LISTENING     7285     /var/run/dbus/system_bus_socket
unix  2      [ ACC ]     SEQPACKET  LISTENING     6077     /run/udev/control
unix  2      [ ACC ]     STREAM     LISTENING     7397     /var/run/acpid.socket

运行wget http://localhost:8080会给我

--2013-04-11 11:20:40--  http://localhost:8080/
Resolving localhost (localhost)... 127.0.0.1
Connecting to localhost (localhost)|127.0.0.1|:8080... connected.
HTTP request sent, awaiting response... 200 OK
Length: 7446 (7.3K) [text/html]
Saving to: `index.html'

100%[=====================================================================================================================================================================>] 7,446       --.-K/s   in 0s      

2013-04-11 11:20:40 (294 MB/s) - `index.html' saved [7446/7446]

那么,我错过了什么吗?

谢谢!

3个回答

5

登录AWS控制台并导航至安全组。

  1. 如果存在HTTP(80),请将其删除。
  2. 选择自定义TCP规则并将端口输入为“8080”。
  3. 点击应用规则。

添加DNS名称:8080

现在应该可以正常工作。


非常感谢您的回答!!!虽然它对我没有起作用,但是它给了我方向。我需要添加自定义TCP规则,端口为80。 - user2656851
1
在哪里添加DNS名称:8080? - sofs1

1
请检查您的Amazon EC2实例安全设置或ELB的安全设置(如果您正在使用它)。我最好的猜测是8080没有暴露。

0

……我正在亲自解决这个问题。

我理解你问题的一部分是指你已经正确配置并应用了一个安全组到你的服务器,该组允许在80端口上使用HTTP以及访问8080端口。(我使用的安全组管理器与你使用的有些不同)

在开放了80端口的规则后,我可以在内部和外部得到对80端口的响应。

另一方面,我添加了一个开放8080端口的规则,并不能从中获得响应。(在主机上,我的wget(1)测试像你的一样工作。使用lynx(1)测试我的服务器也能够工作。)

一些解决方案的提示表明HTTP应该与规则中的端口相关联,但EC2仪表板中的配置器不允许将应用程序协议与规则相关联。

我所看到的只是端口、协议(在本例中为TCP)和源地址范围。

我确定我的本地防火墙没有阻止8080端口。所以我感到困惑...

---v


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接