NodeJS connect() failed (111: Connexion refusée) lors de la connexion à l'amont
Je suis en cours d'exécution dans un problème d'aujourd'hui, où tout d'un coup mon Elastic Beanstalk application est de m'envoyer un 502 Bad Gateway
page. Maintenant, j'ai rencontré ce problème dans le passé et la raison pour laquelle ce qui se passait était parce que le Nœud de commande n'a pas pu démarrer mon serveur. J'ai fixé ce, par l'introduction de Node command: node main.js
et je n'ai jamais rencontré ce problème jusqu'à ce que de façon aléatoire, ce matin. Tout d'un coup, il a cessé de travailler et j'obtiens cette erreur, dans mon journal d'erreur:
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"
Comment devrais-je m'approche de la résolution de ce problème?
Voici mon main.js
fichier:
//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);
OriginalL'auteur cphill | 2015-03-31
Vous devez vous connecter pour publier un commentaire.
Un
502 Bad Gateway
erreur généralement suggère que le proxy (Nginx en NodeJS cas) ne peut pas trouver une destination pour acheminer le trafic à.En regardant les originaux de vos journaux d'erreur, il ressemble à nginx est d'essayer d'aller à
http://127.0.0.1:8081
. Mais votremain.js
a le port 8080 comme le secours, à moins que la variable ENVPORT
est réglé.Je ne sais pas si vous définissez cette variable, mais essayez de faire passer votre NodeJS app pour écouter sur le port 8081 et voir si cela aide.
En outre, j'ai écrit cette réponse qui explique l'installation de NodeJS pour le trafic qui pourraient vous aider: elastic beanstalk bizarre de configuration de nginx
Si vous avez encore des questions, vous pourriez avoir à donner plus d'info sur votre installation.
OriginalL'auteur Josh Davis
Si vous rencontrez des erreurs en amont définir à l'ipv6 --> [::1], remplacez localhost 127.0.0.1 dans votre conf nginx.
OriginalL'auteur keithics
Je sais que c'est un super vieux post, mais je viens d'avoir le même problème avec mon serveur de nœud en cours de redémarrage par mon fournisseur d'hébergement. Lors de la réinitialisation du serveur il a également provoqué de mongoDB être arrêté.
Lorsque vous utilisez jamais d'essayer de redémarrer le nœud serveurs:
Les fichiers journaux n'indiquent pas que c'est une erreur de mongo en particulier, mais si vous essayez de démarrer le serveur manuellement:
Une fois que mongoDB est redémarré le serveur peut être redémarré:
Et puis il suffit de redémarrer votre serveur et vous êtes bon pour aller.
OriginalL'auteur Husk Rekoms
Il est important d'ajouter le Nœud de commande lors de la Configuration de Modifier le logiciel de votre beanstalk application, si votre application que vous utilisez la commande de démarrage, afin de l'utiliser en tant que nœud de commande, "npm démarrer" qui permettra de démarrer votre application correctement, cela se produit également lorsque vous utilisez le dossier et le fichier bin/www démarrer le serveur Nodejs.
OriginalL'auteur Héctor BlisS
Réponse
Ces tout point à aucun serveur http de la réponse, ce qui signifie que votre serveur http n'est pas de répondre à la demande.
La part exacte que les points de ça dans les journaux, est le suivant.
Assurez-vous d'avoir pris des mesures pour commencer, et de veiller à son actuellement en cours d'exécution au moment où l'erreur est généré.
Il peut aussi peut-être d'une erreur de configuration sur le serveur http js fichier lui-même.
Pour obtenir une meilleure idée, d'afficher les journaux d'erreur dans /var/log/nginx/erreur.journal. Si vous voyez des erreurs de connexion à votre mandataire backend, comme ci-dessus, alors que c'est probablement le cas.
Pour savoir si c'est un problème de connexion à un serveur proxy qui a été défini. Assurez-vous que le nœud gestionnaire de processus est en cours d'exécution et configuré correctement sur ce proxy port. par exemple, Si votre exécution d'un nœud de l'application, voir pour les pm2, ou tout noeud module vous permet de démarrer votre serveur http avec.
Les OA des suppositions sur votre adossés était tout simplement mal configuré, et n'était pas clair que l'ensemble d'un serveur http a été nécessaire derrière elle. Certains utilisateurs tentent de lancer des applications qui contiennent des tâches gestionnaires qui tentent de lancer des choses qui fait exister, et ne pas réaliser ensemble du back-end n'était pas nécessaire ou en cours d'exécution, comme moi à l'instant.
OriginalL'auteur blamb
Sous beanstalk, allez à configuration, puis sur le logiciel, ajouter mnp démarrer sur le nœud de commande. Ce sera vos paramètres par défaut. Nginx fonctionne très bien avec ses paramètres par défaut
OriginalL'auteur Ally Makongo