node.js - 为什么我在 aws 上托管的网站拒绝连接?
问题描述
我有一个在本地主机上完美运行的节点应用程序,我将它托管在端口 80 上的 AWS ec2 实例上,并且在我搜索我的 ec2 实例的公共 IP 地址(在任何浏览器上)7 天不活动后,它也运行良好,它说<public_ipv4> 拒绝连接。
以下是我从 AWS 论坛阅读但没有得到任何运气的故障排除方法:
删除 node_modules/ 目录并使用 npm install 命令重新安装
已在该实例的安全组的入站规则内正确允许端口 80 上的 HTTP 流量(我只有一个实例在运行)
跑 netstat -nplt | grep 80 ,它给了我输出:
tcp6 0 0 :::80 :::* 听
我在 package.json 文件中添加了一个脚本,app.js 文件将通过该脚本运行
在我的 app.js 文件中,我正在监听端口 80:
app.listen(80, async function(){
console.log("server has started");
})
我还缺少什么?
解决方案
看来您只允许安全组的入站流量使用 IP v6 地址。
未添加允许 IPv4 地址的权限..
添加以下规则
HTTP tcp 0.0.0.0/0 80
如果您同时添加了规则(IPV4 和 IPV6),那么
sudo netstat -tnlp | grep :80
应该显示在两条线下面..
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
tcp6 0 0 :::80 :::* LISTEN
但在你的情况下它只显示 tcp6
推荐阅读
- android - 检测不允许从后台打开 Activity 的 Android 设备
- powershell - Powershell:获取远程计算机名称
- reactjs - 在 react-admin 中保存后 CheckboxGroupInput 不呈现
- c# - 如何在 WPF 中实现等效的拆分视图容器?
- python - Windows Defender 阻止我的愚蠢程序
- javascript - ng-model 在值更改时不更新
- javascript - 使用 Material-ui 库反应渲染问题
- listview - ScrollController animateTo 方法在 NotifcationListener 的 onNotification 方法期间不会触发
- wpf - 如何在listview wpf VB.net中实现延迟加载
- mysql - 类型错误:无法读取未定义的属性“文件名”--multer