heroku에 golang 앱 배포, 빌드는 성공했지만 애플리케이션 오류 발생
Heroku에 golang 애플리케이션을 배포할 때 애플리케이션을 확인하는 것이 중요합니다. 올바른 포트에 바인딩되어 있습니다. 그렇지 않으면 애플리케이션이 시작되지 않고 엔드포인트에 액세스할 때 "애플리케이션 오류" 메시지가 표시될 수 있습니다.
귀하의 경우, 로그에는 애플리케이션이 시작 후 60초 이내에 종료되는 것으로 나타납니다. 웹 프로세스가 지정된 포트에 바인딩할 수 없습니다. 이 문제를 해결하려면 웹 서버를 $PORT 환경 변수에 지정된 포트에 바인딩해야 합니다. Heroku는 자동으로 이 환경 변수를 기본 HTTP 및 HTTPS 포트로 설정하여 애플리케이션이 공개적으로 액세스할 수 있도록 합니다.
HTTP 서버를 예상 포트에 바인딩하려면 다음과 같이 코드를 수정하세요.
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) }
이렇게 변경하면 이제 애플리케이션이 Heroku가 지정한 포트에 바인딩되고 기본 HTTP 및 HTTPS 포트에서 공개적으로 액세스할 수 있어 "애플리케이션 오류" 문제가 해결됩니다.
위 내용은 Heroku의 Golang 앱이 빌드 성공 후 '애플리케이션 오류'를 표시하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!