2014-12-05 100 views
1

我在部署到AWS beanstalk时偶然发现了一些问题。 起初,我认为问题是与我的Node.js应用程序,但后来我试过干净的安装。 我用WebStorm创建了一个空的Node.js Express应用程序。在nginx 1.6.2上运行的AWS Beanstalk创建新的应用程序 然后我压缩我的应用程序并通过Beanstalk控制台进行部署。 上传成功完成,但是当我运行应用程序时,我得到502坏的网关。 我试图改变默认端口,因为Web Storm创建的应用程序在端口3000上运行,所以我将它更改为8081.但我仍然得到错误。在查找日志中的错误时,我得到以下内容。NodeJS部署到AWS Beanstalk错误

/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" 

任何想法,为什么发生这种情况? 感谢任何帮助。

+0

你能找到解决方案吗? @ vladimr-novick – theChinmay 2015-04-18 11:18:32

+0

没有。使用AWS EC2实例进行切换。我更喜欢它。多一点初始设置,但是你可以完全控制你的实例。 – 2015-07-25 08:37:40

回答

0

修复你的package.js!

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

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

    ... 
相关问题