2017-01-04 3 views
16

Ich hosste die Web-App auf der Google Cloud Platform mit App Engine und verwende ExpressJS und MongoDB, die auf mLab gehostet werden.502 Bad Gateway mit nginx | Google App Engine | Node JS

Alles funktionierte gut bis 1.1.2017. Ich hatte vm: true vorher und war jetzt gezwungen, das env zu flex zu ändern. Jetzt bekomme ich 502 schlechten Gateway-Fehler mit Nginx. App-Engine erlaubt uns nicht, die Nginx-Konfigurationsdatei zu ändern.

Ich hatte den Vorschlag aus diesem Beitrag versucht: Google App Engine 502 (Bad Gateway) with NodeJS aber immer noch nicht funktioniert.

Aus irgendeinem Grund habe ich eine andere App mit genau der gleichen Einstellung auf App-Engine und es funktioniert perfekt.

Jeder Vorschlag wird sehr geschätzt. Vielen Dank.

+0

Haben Sie Ihre App Exposition gegenüber dem Bruch Änderungen überprüfen Sie mit dieser Migration zu kommen? https://cloud.google.com/appengine/docs/flexible/python/upgrading#breaking_changes –

+0

Ich habe das gleiche Problem. Upvoted Ihre Frage. – Coder1000

+0

Hey Leute, hab heute denselben Fehler mit der selben Config (Express und MLab). Haben Sie dieses Problem behoben? – skymk

Antwort

2

Ein 502 ist nicht unbedingt ein Fehler mit nginx selbst, er kann am häufigsten auftreten, wenn der nginx-Proxy nicht mit Ihrem App-Container kommunizieren kann (normalerweise, weil Ihre App nicht gestartet werden konnte). Wenn Sie nach der Migration auf "env: flex" einen 502 erhalten, liegt dies wahrscheinlich an einigen Codeänderungen, die in Ihrer App erforderlich sind (siehe Upgrading to the Latest App Engine Flexible Environment Release).

Wenn Sie Ihre application logs auf Fehler von NPM überprüfen, können Sie auch den genauen Grund für den fehlgeschlagenen Start diagnostizieren.

7

Schauen Sie sich die Protokolle für alle Bereitstellungsfehler

$ gcloud app logs read 

Ich habe kam über ein ähnliches Problem mit dem Code von diesem Tutorial zur Verfügung gestellt (https://cloud.google.com/nodejs/getting-started/authenticate-users)

Und fand es eine fehlende Abhängigkeit war. Ich habe die fehlende Abhängigkeit behoben und die App wird bereitgestellt und funktioniert einwandfrei.

Einzelheiten in der Frage: https://github.com/GoogleCloudPlatform/nodejs-getting-started/issues/106

+1

danke @SRAVAN das führte mich zu meinem Problem – Ewert

0

hatte ich das gleiche Problem mit Express. Was es für mich gelöst hat, war, keine IP-Adresse für die App anzugeben.

Also mein alter Code wäre:

var ip = "127.0.0.1"; 
var port = "8080"; 
var server = http.createServer(app); 
server.listen(port, ip); 

Dies in einem 502 in App Engine führen würde.

Das Entfernen der IP war die Lösung für mich.

server.listen(port); 
+0

Eine andere Sache zu betrachten ist, ob SSL auf gcloud eingerichtet ist. Ich entwickle auf localhost mit einem selbstsignierten Zertifikat, um HTTPS-Entwicklung zu ermöglichen (Service-Arbeiter zu verwenden). Überprüfen Sie nach der Bereitstellung in gcloud Ihre Einstellungen für die App für SSL. – MarsAndBack

Verwandte Themen