gpt4 book ai didi

node.js - 502 错误网关 Node JS/MongoDB AWS Elastic Beanstalk

转载 作者:太空宇宙 更新时间:2023-11-03 21:49:57 24 4
gpt4 key购买 nike

我尝试在 Elastic Beanstalk 上运行 NodeJS 应用程序时遇到 502 Bad Gateway 问题。我尝试遵循 stackoverflow 的答案,该答案告诉我将启动脚本从 server.js 更改为 main.js,但这不起作用。我使用的 env 变量是在 .env 文件中设置的,该文件不属于我的 git 存储库,这会导致此错误还是更多是由于启动脚本所致?

我的配置仪表板中的此部分是否应该更改为我的启动文件?

enter image description here

这是我的应用程序设置:

框架:Expressjs

数据库:MongoDB

Elastic Beanstalk 服务器:运行 Node.js 的 64 位 Amazon Linux 2014.09 v1.2.0

我检查了日志,在 /var/log/nginx/error.log 中没有发现任何内容,而且我能找到的唯一错误部分仅包含有关可能导致错误的信息。

{"status":"SUCCESS","api_version":"1.0","truncated":"false","results":[{"status":"SUCCESS","msg":"","returncode":0,"events":[{"msg":"No start scripts located in package.json. Node.js may have issues starting. Add start scripts or place code in a file named server.js or app.js.","severity":"ERROR","timestamp":1425234947517}]}]}

这是我的 package.json 文件:

{
"name": "expressjs-blog",
"main": "main.js",
"dependencies": {
"body-parser": "1.6.5",
"ejs": "^1.0.0",
"express": "^4.6.1",
"express-paginate": "0.0.2",
"mongoose": "~3.6.15",
"mongoose-paginate": "^3.1.0",
"serve-favicon": "*",
"passport" : "~0.1.17",
"passport-local" : "~0.1.6",
"connect-flash" : "~0.1.1",
"bcrypt-nodejs" : "latest",
"morgan": "~1.0.0",
"cookie-parser": "~1.0.0",
"method-override": "~1.0.0",
"express-session": "~1.0.0",
"aws-sdk": "*"
}
}

这是我的 main.js 文件:

//Load express
var express = require('express');
var app = express();
var router = express.Router(); // get an instance of the router
var bodyParser = require('body-parser'); // configure app to use bodyParser()
var mongoose = require('mongoose');
var passport = require('passport');
var flash = require('connect-flash');
var morgan = require('morgan');
var cookieParser = require('cookie-parser');
var session = require('express-session');
var aws = require('aws-sdk');

app.use(bodyParser.urlencoded({ extended: true})); // get data from a POST method
app.use(bodyParser.json());
app.use(morgan('dev'));
app.use(cookieParser());


var port = process.env.PORT || 8080; // set the port

var DB_CONFIG = process.env.DB_CONFIGURATION;
var AWS_ACCESS_KEY = process.env.AWS_ACCESS_KEY;
var AWS_SECRET_KEY = process.env.AWS_SECRET_KEY;
var S3_BUCKET = process.env.S3_BUCKET;

var blogDB = require('./config/blogDB.js');
mongoose.connect(blogDB.url);




require('./config/passport.js')(passport);


app.set('view engine', 'ejs'); // set ejs as the view engine

app.use(express.static(__dirname + '/public')); // set the public directory

app.use(session({ secret: 'thisisatest' }));
app.use(passport.initialize());
app.use(passport.session());

app.use(flash());


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

app.use(routes); // use routes.js


app.listen(port);
console.log('magic is happening on port' + port);

------------更新------------

我将环境变量添加到 Amazon 配置仪表板,使其能够查看连接到数据库和其他变量的位置。我现在收到错误日志:

/var/log/nginx/error.log:

2015/03/04 17:12:03 [error] 15978#0: *1 connect() failed (111: Connection refused) while connecting to upstream, client: xx.xx.xxx.xx, server: , request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:8081/", host: "xxxxx-d-xxxxxx-env-xxxxx.elasticbeanstalk.com"
2015/03/04 17:12:03 [error] 15978#0: *1 connect() failed (111: Connection refused) while connecting to upstream, client: xx.xx.xxx.xx, server: , request: "GET /favicon.ico HTTP/1.1", upstream: "http://127.0.0.1:8081/favicon.ico", host: "xxxxx-d-xxxxx-env-xxxxxx.elasticbeanstalk.com"
2015/03/04 17:16:27 [error] 15978#0: *4 connect() failed (111: Connection refused) while connecting to upstream, client: xxx.xxx.xx.xx, server: , request: "GET /phpMyAdmin/translators.html HTTP/1.1", upstream: "http://127.0.0.1:8081/phpMyAdmin/translators.html", host: "xx.xxx.xx.xx"
2015/03/04 17:20:02 [error] 15978#0: *6 connect() failed (111: Connection refused) while connecting to upstream, client: xx.xx.xx.xx, server: , request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:8081/", host: "xxx-d-philxxxxlips-env-rqsrxxe92stf.elasticbeanstalk.com"
2015/03/04 17:20:03 [error] 15978#0: *6 connect() failed (111: Connection refused) while connecting to upstream, client: xx.xx.xxx.xx, server: , request: "GET /favicon.ico HTTP/1.1", upstream: "http://127.0.0.1:8081/favicon.ico", host: "xxxx-d-xxx-env-rqsre92xxxstf.elasticbeanstalk.com"

最佳答案

已修复!我所要做的就是进入“配置”>“容器选项”并将 Node 命令设置为 node main.js

关于node.js - 502 错误网关 Node JS/MongoDB AWS Elastic Beanstalk,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28833391/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com