AWS EC2错误:无法访问该站点 - ec2.us-west-1.compute.amazonaws.com响应太晚。部署NodeJS

时间:2016-12-29 02:11:52

标签: node.js linux amazon-web-services express amazon-ec2

我目前有一个EC2实例运行并运行Amazon Linux并使用FileZilla通过SFTP将我的项目(包含React / NodeJS / Express)传输到EC2实例。

对于EC2的安全组,我打开了一个3000端口(协议:tcp,源:0.0.0.0/0),这也是我的Express的定义方式。

所以我对EC2实例进行了攻击并运行了项目的Express,并看到它在终端内监听端口3000。但是,一旦我使用ec2...us-west-1.compute.amazonaws.com:3000点击公共DNS,它就说无法访问该网站 - ec2 ... us-west-1.compute.amazonaws.com为时已晚,无法回复。

可能是什么问题,如何从这里开始连接呢?

提前感谢您,并将提出/接受答复。

3 个答案:

答案 0 :(得分:2)

只需检查您的Node.js服务器是否在EC2实例上运行。

调试:

  1. 首先检查它是否在本地正常工作。
  2. 检查EC2中的node.js服务器。
    • sudo netstat -tulpn | grep :3000
  3. 尝试使用 - verbose 标记运行服务器,即npm run server --verbose
    • 它会在启动时显示服务器的日志。
  4. 检查EC2实例的安全组设置。
  5. 尝试连接ip:port,即35.2。:3000
  6.   

    如果它仍然不起作用并且响应需要很长时间。   这意味着其他一些服务正在同一个端口上运行。

    在ec2中试试这个:

    sudo killall -9 node 
    npm run server
    

    使用 IP (54.4.5。*:3000)或 公共DNS ({ {3}})。

    希望它会有所帮助:)

答案 1 :(得分:1)

通常,当我们遇到连接问题时,它是基本的或防火墙。我假设您已检查防火墙是否在两端运行,例如。 iptables -L -n。此外,任何协议分析器(如wireshark或tcpdump)都会告诉您端口3000的数据包在哪里可见。

答案 2 :(得分:1)

您可能遇到出站流量问题。您可能位于公司的网络中,无论是物理连接还是VPN输入。在某些情况下,您的VPN不会设置为处理拆分流量,因此您必须遵守公司的出站限制。

在这种情况下,您可能希望使用代理来访问您的网站。在锁定安全组时,请确保使用代理的公共IP(而不是公司的IP)。