为什么 :8080有效 对于在Ec2上运行的tomcat服务器不起作用?

问题描述 投票:0回答:2

我在Tomcat上运行我的webapp,它运行在EC2实例上。我已正确设置了实例的入站规则。

当我输入<myWebsite.com>:8080时,它可以在我的浏览器中使用。对于<myWebsite.com>,它不会加载。而是我收到以下错误消息:

This site can’t be reached <myWebsite.com> refused to connect.
Search Google for <my Website> home
ERR_CONNECTION_REFUSED
apache http tomcat amazon-ec2 tomcat7
2个回答
2
投票

当您尝试通过myWebsite.com直接连接时,您的浏览器将默认为端口80上的http。显然,您的网络服务器正在侦听端口8080。

您需要配置Tomcat以侦听端口80上的传入请求。

关于如何将tomcat端口从8080更改为80,stackoverflow上有许多教程和问题。

例如来自How to change the port of Tomcat from 8080 to 80?

1)转到tomcat安装目录中的conf文件夹

e.g. C:\Tomcat 6.0\conf\

2)在server.xml文件中编辑以下标记

3)将port=8080值更改为port=80

4)保存文件。

5)停止Tomcat并重新启动它。

请记住,默认情况下,Tomcat不会在端口80上启动,除非以root身份运行。但是,以root身份运行通常被认为是不好的做法。以下资源总结了如何使用Tomcat和EC2缓解此问题:https://www.excelsior-usa.com/articles/tomcat-amazon-ec2-advanced.html#port80

最简单的解决方案是通过iptables重定向tomcat端口(例如8080):

sudo /sbin/iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
sudo /sbin/service iptables save

0
投票

好的,在StackOverflow中跟随几个答案后,下面的工作

sudo /sbin/iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
sudo /sbin/iptables-save

以下没有用

  1. 为VPC分配Elastic Ip并使用它连接到实例。
  2. 将tomcat server.xml端口从8080更改为80。

注意:我的Ec2实例的安全组的入站规则从任何地方接受HTTP端口的80

© www.soinside.com 2019 - 2024. All rights reserved.