我在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
当您尝试通过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
好的,在StackOverflow中跟随几个答案后,下面的工作
sudo /sbin/iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
sudo /sbin/iptables-save
以下没有用
注意:我的Ec2实例的安全组的入站规则从任何地方接受HTTP
端口的80
。