cph*_*ill 11 amazon-web-services node.js amazon-elastic-beanstalk
我今天遇到了一个问题,突然间我的Elastic Beanstalk应用程序将我发送到了一个502 Bad Gateway页面.现在我遇到过这个问题,之所以发生这种情况,是因为Node命令无法启动我的服务器.我通过输入Node command: node main.js来解决这个问题,直到今天早上我都没有遇到这个问题.突然它停止工作,我在错误日志中收到此错误:
2015/03/31 13:07:17 [error] 697#0: *519 connect() failed (111: Connection refused) while connecting to upstream, client: 54.146.12.189, server: , request: "HEAD / HTTP/1.1", upstream: "http://127.0.0.1:8081/", host: "54.152.12.19"
2015/03/31 13:07:17 [error] 697#0: *521 connect() failed (111: Connection refused) while connecting to upstream, client: 54.146.18.189, server: , request: "GET /clientaccesspolicy.xml HTTP/1.1", upstream: "http://127.0.0.1:8081/clientaccesspolicy.xml", host: "54.152.12.19"
2015/03/31 13:16:02 [error] 697#0: *523 connect() failed (111: Connection refused) while connecting to upstream, client: 69.204.65.1321, server: , request: "GET /blog/the-differences-in-segmenting-your-data-by-users-and-sessions HTTP/1.1", upstream: "http://127.0.0.1:8081/blog/the-differences-in-segmenting-your-data-by-users-and-sessions", host: "www.mywebsite.com"
Run Code Online (Sandbox Code Playgroud)
我应该如何解决这个问题呢?
这是我的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);
Run Code Online (Sandbox Code Playgroud)
Jos*_*vis 13
一个502 Bad Gateway错误通常表明代理(Nginx的中的NodeJS的情况下),不能找到一个目的地路由流量.
查看原始错误日志,看起来nginx正试图去http://127.0.0.1:8081.但是main.js除非PORT设置了ENV变量,否则将端口8080作为后备.
我不知道您是否设置了该变量,但尝试切换您的NodeJS应用程序以侦听端口8081并查看是否有帮助.
另外,我写了这个答案,解释了可能有用的流量的NodeJS设置:弹性beanstalk奇怪的nginx配置
如果您仍然遇到问题,可能需要提供有关设置的更多信息.
| 归档时间: |
|
| 查看次数: |
22564 次 |
| 最近记录: |