我的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
答案 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
以下操作无效
注意:我的Ec2实例的安全组的入站规则正在从任何地方在端口HTTP
接受80
。