2017-01-04 17 views
16

Korzystam z aplikacji internetowej na Google Cloud Platform z App Engine i używam ExpressJS i MongoDB, które są hostowane na mLab.502 Bad Gateway z nginx | Google App Engine | Węzeł JS

Wszystko działało dobrze do 1 stycznia 2017 r. Miałem vm: true before, a teraz został zmuszony do zmiany env na flex. Teraz otrzymuję błąd 502 złą bramę z nginx. Silnik aplikacji nie pozwala nam na zmianę pliku konfiguracyjnego nginx.

Próbowałem sugestię z tego postu: Google App Engine 502 (Bad Gateway) with NodeJS ale nadal nie działa.

Z jakiegoś powodu, mam inną aplikację z dokładnie tymi samymi ustawieniami App Engine i działa idealnie.

Wszelkie sugestie będą bardzo mile widziane. Dziękuję Ci.

+0

Czy sprawdzić ekspozycję swojej aplikacji do rozbijających zmian pochodzących z tej migracji? https://cloud.google.com/appengine/docs/flexible/python/upgrading#breaking_changes –

+0

Mam ten sam problem. Wznowiłem Twoje pytanie. – Coder1000

+0

Hej chłopaki, otrzymałem ten sam błąd dzisiaj z tą samą konfiguracją (express i mlab). Czy udało Ci się rozwiązać ten problem? – skymk

Odpowiedz

2

502 niekoniecznie jest błąd z nginx sam, to może się zdarzyć, gdy najczęściej proxy nginx nie może mówić do swojej aplikacji pojemnika (zwykle dlatego, że aplikacja nie została uruchomiona). Jeśli otrzymasz 502 po migracji do "env: flex", jest to najprawdopodobniej spowodowane zmianami kodu wymaganymi w Twojej aplikacji, o czym wspomniano w artykule Upgrading to the Latest App Engine Flexible Environment Release.

Sprawdzanie application logs za błędy z KMP pomoże zdiagnozować dokładną przyczynę nieudanego rozruchu.

7

Sprawdź logi za ewentualne błędy wdrażania

$ gcloud app logs read 

ja natknąłem się na podobny problem z kodem dostarczonych przez tego poradnika (https://cloud.google.com/nodejs/getting-started/authenticate-users)

i znaleźli tam był brak zależności. Naprawiłem brakującą zależność, a aplikacja została wdrożona i działa poprawnie.

Szczegóły Do wydania: https://github.com/GoogleCloudPlatform/nodejs-getting-started/issues/106

+1

dzięki @SRAVAN to prowadzi mnie do mojego problemu – Ewert

0

miałem ten sam problem z Express. To, co rozwiązałem, to nie podać adresu IP dla aplikacji.

Więc mój stary kod byłoby:

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

To spowodowałoby 502 w App Engine.

Zdejmowanie ip była rozwiązaniem dla mnie.

server.listen(port); 
+0

Kolejną rzeczą, na którą należy zwrócić uwagę, jest to, czy SSL jest skonfigurowane na gcloud. Pracuję na localhost z samopodpisanym certyfikatem, aby umożliwić rozwój HTTPS (aby korzystać z Service Workers). Po wdrożeniu w gcloud sprawdź ustawienia swojego appengine na SSL. – MarsAndBack