【问题标题】:Can't access to express server on AWS using HTTP无法使用 HTTP 访问 AWS 上的 Express 服务器
【发布时间】:2018-01-30 00:12:38
【问题描述】:

为了熟悉节点、AWS 和网络托管,我决定创建一个托管在节点/express 服务器上的简单网络应用程序,然后尝试将其托管在 AWS 实例上。

我的应用程序在我的机器上本地运行,这是 server.js 代码:

import express from 'express';
import path from 'path';
import open from 'open';
import config from '../webpack.config.dev';
import webpack from 'webpack';

const port = 80;
const app = express();
const compiler =webpack(config);

app.use(express.static('dist'))

app.use(require('webpack-dev-middleware')(compiler,{
  noInfo: true,
  publicPath: config.output.publicPath
}));

app.get('/', function(req, res){
  res.sendFile(path.join(__dirname, '../src/index.html'));
});

app.listen(port, function(err){
  if(err){
    console.log(err);
  }else{
    open('http://localhost:' + port);
  }
});

但是当我尝试在 AWS 实例上部署和运行它时,我似乎无法访问正在运行的节点服务器,

以下是我遵循的步骤:

1。要启动 AWS 实例,我选择 Amazon Linux instance

2.对于安全规则,这是我应用的入站规则:

3。我 SSH 进入我的实例,安装节点,然后 git 从 github 获取我的应用程序

4。这是我克隆存储库并安装节点依赖项后我的 home/ec2-user/testRep 文件夹的样子:

5。我使用npm start 运行服务器

6.服务器似乎启动没有任何问题:

但是当我使用浏览器访问公共 DNS 实例时,我发现找不到站点

不确定我在这里做错了什么。

【问题讨论】:

  • 您是否确认您在公共网络中创建了您的实例?有公网IP吗?您是否将 nodeJS 服务器运行为 0.0.0.0:80?
  • 如果您使用的是 webpack,请尝试将启动命令放在末尾:--host 0.0.0.0。启动命令应该类似于 -> webpack-dev-server --open --config webpack.dev.js --host 0.0.0.0。 (根据您的环境替换产品的开发服务器)
  • 不需要公共(弹性)IP,因为 AWS 生成 FQDN 并使用端口 80。尝试使用 telnet telnet xxx.ec2domainanme 80 进行测试,看看是否可以通过。
  • 我尝试通过 puty 进行远程登录,似乎它给出了“连接被拒绝”

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


【解决方案1】:

您正在本地主机中部署,在您的监听功能中您应该输入如下内容:

app.listen(port, function(err){
  if(err){
    console.log(err);
  }else{
    open('http://0.0.0.0:' + port);
  }
});

另外别忘了用所有权限运行它(通常80端口需要更大的权限,比如root)

【讨论】:

  • 这似乎没有改变任何东西:(
  • 当你在机器内部并且你对IP进行wget时,它是否有效?
  • 抱歉,我无法在该端口上运行我的服务器,我收到 EACCES 错误
  • 我现在运行它,我必须使用 0.0.0.0 端口使用 Root 访问权限运行,您可以附加“并以 root 身份运行 'sudo npm start'”然后我可以接受你的答案
  • 所以有可能有其他东西正在那里运行。尝试在不同的端口上运行您的服务器并告诉我
猜你喜欢
  • 2015-06-13
  • 2018-08-21
  • 1970-01-01
  • 2021-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-21
  • 2021-06-11
相关资源
最近更新 更多