Ho un'applicazione Web completa che utilizza NodeJS, MongoDB (Mongoose come driver) e ExpressJS.Google App Engine 502 (Gateway non valido) con NodeJS
Il progetto funziona perfettamente sul mio computer locale. Oggi ho deciso di spostare tutto alla produzione. Sto utilizzando Google App Engine per ospitare la mia applicazione e Compose (formalmente MongoHQ) per ospitare il mio database.
App Engine server perfettamente la mia applicazione, anche se la mia API non sembra funzionare. La mia API viene pubblicata da example.com/api
e ogni richiesta (GET
, POST
, DELETE
e PUT
) restituisce un errore 502 (gateway non valido).
Ho provato a eseguire l'applicazione sul mio computer locale mentre ero connesso al mio database MongoDB remoto e questo ha funzionato perfettamente. Quindi deve essere un problema con App Engine o NodeJS, non con MongoDB.
Ho provato a controllare tutti i log degli errori in Google Cloud, anche se non ci sono errori.
Perché App Engine/NodeJS serve perfettamente il contenuto statico della mia applicazione, sebbene non consenta alcuna richiesta alla mia API?
Ebbene ecco un colpo di scena. Semplicemente aggiungendo 'manual_scaling: instances: 5' al mio file' app.yaml' e la sua distribuzione ha risolto l'intero problema. Qualche idea sul perché sarebbe? – Fizzix
Sebbene, durante il tentativo di accedere a una delle mie API più avanzate, come il caricamento delle immagini, non riesce ancora. Questo è probabilmente perché sto inviando una grande stringa Base64 alla mia API. C'è un modo per aumentare la quantità di dati che possono essere inviati all'API dei miei server? – Fizzix
Wow, ho appena realizzato che intendevo manual_scaling: istanze impostate su 1, non su 5! In questo modo sai per certo quale richiesta stai guardando. Seguirò comunque il resto di questi passaggi per vedere se non riesci a trovare i log degli errori. Ad ogni modo, se i tuoi pacchetti sono troppo grandi per il buffer, non c'è modo di aumentare direttamente, quindi la soluzione migliore è capire come interrompere i dati che devi trasmettere in più pacchetti. –