Maison >développement back-end >Golang >Pourquoi mon application Golang sur Heroku affiche-t-elle une « Erreur d'application » après une build réussie ?

Pourquoi mon application Golang sur Heroku affiche-t-elle une « Erreur d'application » après une build réussie ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-08 01:33:12788parcourir

Why is my Golang app on Heroku showing an

Déploiement d'une application Golang sur Heroku, build réussi mais erreur d'application

Lors du déploiement d'une application Golang sur Heroku, il est important de s'assurer que l'application est lié au bon port. Dans le cas contraire, l'application peut ne pas démarrer et afficher un message « Erreur d'application » lors de l'accès aux points de terminaison.

Dans votre cas, les journaux indiquent que l'application est supprimée dans les 60 secondes suivant le lancement en raison de le processus Web étant incapable de se lier au port spécifié. Pour résoudre ce problème, vous devez lier votre serveur Web au port spécifié par la variable d'environnement $PORT. Heroku définit automatiquement cette variable d'environnement sur les ports HTTP et HTTPS par défaut, permettant à votre application d'être accessible publiquement.

Pour lier votre serveur HTTP au port attendu, modifiez votre code comme suit :

import (
    "os"
    
    "github.com/gorilla/mux"
    "github.com/gorilla/context"

    "gopkg.in/paytm/grace.v1"

)

func main() {
    log.Println("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ CHIT STARTED $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$")
    log.Println("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$")
    
    muxRouter := mux.NewRouter()
    
    muxRouter.HandleFunc("/", Articles)
    http.Handle("/", muxRouter)
    
    port := os.Getenv("PORT")
    if port == "" {
        port = "9000" // Default port if not specified
    }
    err := grace.Serve(":" + port, context.ClearHandler(http.DefaultServeMux))
    if err != nil {
        log.Println("[ERROR GRACEFUL]", err)
        os.Exit(1)
    }
    
    os.Exit(0)
}

En effectuant cette modification, votre application se liera désormais au port spécifié par Heroku et sera accessible publiquement sur les ports HTTP et HTTPS par défaut, résolvant ainsi le problème « Erreur d'application ».

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn