Maison >développement back-end >Golang >Pourquoi mon application Go est-elle construite avec succès sur Heroku mais échoue-t-elle avec une « erreur d'application » ?
Déploiement d'une application Golang sur Heroku : la construction réussit mais une erreur d'application
Les premières tentatives de déploiement d'une application GoLang sur Heroku à l'aide du support Godep ont abouti à une construction réussie mais une « Erreur d'application » lors de l'accès au point de terminaison de l'application. Pour résoudre ce problème, examinons le problème et sa solution.
Présentation du problème :
L'application déployée ne répond pas lors de l'accès à son point de terminaison (par exemple, '/ '). Les journaux Heroku affichent une erreur indiquant que « Le processus Web n'a pas réussi à se lier à $PORT ».
Solution :
Heroku demande aux applications de lier leurs serveurs Web au port. spécifié par la variable d'environnement PORT. Cependant, le code de l'application démarre actuellement le serveur sur le port 9000.
Pour résoudre ce problème, le serveur de l'application doit être démarré sur le PORT spécifié par Heroku. Voici comment procéder :
import "os" func main() { // ... (your existing code) // Get the port from the PORT environment variable, or default to 9000 if not set port := os.Getenv("PORT") if port == "" { port = "9000" // Default port if not specified } // Start the server on the specified port err := grace.Serve(":" + port, context.ClearHandler(http.DefaultServeMux)) // ... (your existing code) }
En se liant au bon port, l'application ne rencontrera plus l'erreur « Boot timeout » et sera en mesure de répondre avec succès aux requêtes sur les ports HTTP et HTTPS via Heroku. passerelles.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!