尝试创建可公开访问的 AWS Cloud9 URL
Trying to make a publicly accessible AWS Cloud9 URL
我正在使用 AWS Cloud9 并且一直很顺利,但现在我正在尝试 URL public 以便我可以在 Postman 中发出 HTTP 请求,而且我真的很挣扎。我是一名初学者全栈开发人员,如有任何帮助,我们将不胜感激。
谢谢,
史蒂文
我正在尝试正确遵循本指南:
https://docs.aws.amazon.com/cloud9/latest/user-guide/app-preview.html
具体来说,我进入了第 4 步,它要求我更改代码中的 IP 地址。当我将 Node JS Express 应用程序的 app.listen IP 地址更改为我的 EC2 实例 IP 地址时,出现错误。
我想我已经成功地让我的 EC2 实例 public 可以访问,只是我的代码没有正确监听(这些步骤似乎很容易遵循,但我可能是错的。
var express = require("express");
var app = express();
app.set("view engine", "ejs");
app.get("/", function (req, res){
res.render("helloWorld");
});
app.listen(8080, '**AWS EC2 instance IP**', function(){
console.log("Server Has Started!");
});
如果我没有在 app.listen 中指定 IP 地址,运行 没问题,但当然我只能从同一浏览器中的不同选项卡访问服务器。这是当我 运行 包含 AWS EC2 实例 IP 的代码时控制台吐出的内容:
events.js:174
throw er; // Unhandled 'error' event
^
Error: listen EADDRNOTAVAIL: address not available **AWS EC2 instance IP**:8080
at Server.setupListenHandle [as _listen2] (net.js:1262:19)
at listenInCluster (net.js:1327:12)
at doListen (net.js:1460:7)
at process._tickCallback (internal/process/next_tick.js:63:19)
at Function.Module.runMain (internal/modules/cjs/loader.js:832:11)
at startup (internal/bootstrap/node.js:283:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)
Emitted 'error' event at:
at emitErrorNT (net.js:1306:8)
at process._tickCallback (internal/process/next_tick.js:63:19)
[... lines matching original stack trace ...]
at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)
EC2 实例没有将其 public IP 绑定到 IP 堆栈。从 public IP 到实例私有 IP 的转换由 Internet 网关自动处理。
指定实例的私有 IP 是您实际需要做的,尽管这可能不是正确的直觉。或者,如指南所示,使用 0.0.0.0
表示 "all interfaces."
我正在使用 AWS Cloud9 并且一直很顺利,但现在我正在尝试 URL public 以便我可以在 Postman 中发出 HTTP 请求,而且我真的很挣扎。我是一名初学者全栈开发人员,如有任何帮助,我们将不胜感激。
谢谢, 史蒂文
我正在尝试正确遵循本指南:
https://docs.aws.amazon.com/cloud9/latest/user-guide/app-preview.html
具体来说,我进入了第 4 步,它要求我更改代码中的 IP 地址。当我将 Node JS Express 应用程序的 app.listen IP 地址更改为我的 EC2 实例 IP 地址时,出现错误。
我想我已经成功地让我的 EC2 实例 public 可以访问,只是我的代码没有正确监听(这些步骤似乎很容易遵循,但我可能是错的。
var express = require("express");
var app = express();
app.set("view engine", "ejs");
app.get("/", function (req, res){
res.render("helloWorld");
});
app.listen(8080, '**AWS EC2 instance IP**', function(){
console.log("Server Has Started!");
});
如果我没有在 app.listen 中指定 IP 地址,运行 没问题,但当然我只能从同一浏览器中的不同选项卡访问服务器。这是当我 运行 包含 AWS EC2 实例 IP 的代码时控制台吐出的内容:
events.js:174
throw er; // Unhandled 'error' event
^
Error: listen EADDRNOTAVAIL: address not available **AWS EC2 instance IP**:8080
at Server.setupListenHandle [as _listen2] (net.js:1262:19)
at listenInCluster (net.js:1327:12)
at doListen (net.js:1460:7)
at process._tickCallback (internal/process/next_tick.js:63:19)
at Function.Module.runMain (internal/modules/cjs/loader.js:832:11)
at startup (internal/bootstrap/node.js:283:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)
Emitted 'error' event at:
at emitErrorNT (net.js:1306:8)
at process._tickCallback (internal/process/next_tick.js:63:19)
[... lines matching original stack trace ...]
at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)
EC2 实例没有将其 public IP 绑定到 IP 堆栈。从 public IP 到实例私有 IP 的转换由 Internet 网关自动处理。
指定实例的私有 IP 是您实际需要做的,尽管这可能不是正确的直觉。或者,如指南所示,使用 0.0.0.0
表示 "all interfaces."