Heim > Backend-Entwicklung > Golang > Warum zeigt meine Golang-App auf Heroku nach einem erfolgreichen Build einen „Anwendungsfehler' an?

Warum zeigt meine Golang-App auf Heroku nach einem erfolgreichen Build einen „Anwendungsfehler' an?

Linda Hamilton
Freigeben: 2024-12-08 01:33:12
Original
847 Leute haben es durchsucht

Why is my Golang app on Heroku showing an

Bereitstellung einer Golang-App auf Heroku, Build erfolgreich, aber Anwendungsfehler

Bei der Bereitstellung einer Golang-Anwendung auf Heroku ist es wichtig, die Anwendung sicherzustellen ist an den richtigen Port gebunden. Andernfalls kann es dazu kommen, dass die Anwendung nicht gestartet werden kann und beim Zugriff auf Endpunkte die Meldung „Anwendungsfehler“ angezeigt wird.

In Ihrem Fall weisen die Protokolle darauf hin, dass die Anwendung innerhalb von 60 Sekunden nach dem Start aufgrund von beendet wird Der Webprozess kann sich nicht an den angegebenen Port binden. Um dieses Problem zu beheben, müssen Sie Ihren Webserver an den Port binden, der durch die Umgebungsvariable $PORT angegeben wird. Heroku setzt diese Umgebungsvariable automatisch auf die Standard-HTTP- und HTTPS-Ports, sodass Ihre Anwendung öffentlich zugänglich ist.

Um Ihren HTTP-Server an den erwarteten Port zu binden, ändern Sie Ihren Code wie folgt:

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)
}
Nach dem Login kopieren

Durch diese Änderung wird Ihre Anwendung nun an den von Heroku angegebenen Port gebunden und ist über Standard-HTTP- und HTTPS-Ports öffentlich zugänglich, wodurch das Problem „Anwendungsfehler“ behoben wird.

Das obige ist der detaillierte Inhalt vonWarum zeigt meine Golang-App auf Heroku nach einem erfolgreichen Build einen „Anwendungsfehler' an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage