为什么<mywebsite.com>:8080可以工作而<mywebsite.com>对于在Ec2上运行的tomcat服务器不起作用?

时间:2019-03-13 08:30:52

标签: apache http tomcat amazon-ec2 tomcat7

我的Web应用程序在Tomcat上运行,而Tomcat在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

2 个答案:

答案 0 :(得分:2)

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

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

这里有许多关于如何将tomcat端口从8080更改为80的教程和问题。

例如来自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并重新启动它。

请记住,默认情况下,除非以root身份运行,Tomcat不会在端口80上启动。但是,以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

答案 1 :(得分: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