【问题标题】:NodeJS Deployment to AWS Beanstalk errorsNodeJS 部署到 AWS Beanstalk 错误
【发布时间】:2015-02-03 19:03:57
【问题描述】:

我在部署到 AWS beanstalk 时偶然发现了一些问题。 起初我认为问题出在我的 Node.js 应用程序上,但后来我尝试了全新安装。 我用 WebStorm 创建了空白的 Node.js Express 应用程序。在 nginx 1.6.2 上运行的 AWS Beanstalk 创建了新应用程序 然后我压缩我的应用程序并通过 Beanstalk 控制台部署它。 上传成功完成,但是当我运行应用程序时,我得到 502 bad gateway。 我试图更改默认端口,因为 Web Storm 创建了在端口 3000 上运行的应用程序,所以我将其更改为 8081。但我仍然收到错误消息。在日志中查找错误时,我得到以下信息。

/var/log/nodejs/nodejs.log

at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/var/app/current/app.js:8:14)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)module.js:340
throw err;

Error: Cannot find module '/var/app/current/routes/index'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/var/app/current/app.js:8:14)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)

module.js:340

很明显,问题是因为节点由于相对路径而无法找到模块,所以我将所有具有相对路径的条目都更改为使用绝对路径。举例

var app = require('../app');

我已经改成

var path = require('path');
var app = require(path.join(__dirname, '../app'));

我还是遇到同样的错误。

我在 nginx 日志中也收到以下错误:

/var/log/nginx/error.log

-------------------------------------
2014/12/05 14:28:35 [error] 23444#0: *7 connect() failed (111: Connection refused) while connecting to upstream, client: 172.31.25.31, server: , request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:8081/", host: "nodesampleapp-env.elasticbeanstalk.com"

知道为什么会这样吗? 感谢任何帮助。

【问题讨论】:

  • 您能找到解决方案吗? @vladimr-novick
  • 不。使用 AWS EC2 实例切换。我更喜欢它。更多的初始设置,但是您可以完全控制您的实例。

标签: node.js amazon-web-services express nginx amazon-elastic-beanstalk


【解决方案1】:

修复你的 package.js!

在我的情况下,节点文件名是错误的。

{
  "name": "your application-name",
  "version": "0.0.1",
  "private": true,
  "scripts": 
    {
      "start": "node app_bot.js"
    },

    ...

【讨论】:

    猜你喜欢
    • 2019-02-22
    • 2016-08-06
    • 2014-12-16
    • 2021-08-28
    • 2017-10-04
    • 2016-03-09
    • 2020-04-25
    • 2014-06-28
    • 2017-12-09
    相关资源
    最近更新 更多