Rumah >pembangunan bahagian belakang >Golang >Mengapa Apl Golang Saya pada Heroku Menunjukkan 'Ralat Aplikasi' Selepas Pembinaan Berjaya?

Mengapa Apl Golang Saya pada Heroku Menunjukkan 'Ralat Aplikasi' Selepas Pembinaan Berjaya?

DDD
DDDasal
2024-12-14 07:02:08800semak imbas

Why Does My Golang App on Heroku Show an

Menggunakan Apl Golang pada Heroku: Membina Kejayaan, Tetapi Ralat Aplikasi

Apabila menggunakan aplikasi Golang pada Heroku dengan sokongan pergantungan Go, anda mungkin menghadapi "Ralat Aplikasi" semasa cuba mengakses titik akhir. Isu ini timbul apabila pelayan web tidak terikat dengan betul pada port yang sesuai pada Heroku.

Mesej log aplikasi anda menunjukkan ralat berikut:

Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch

Punca:

Isu ini disebabkan oleh percubaan untuk memulakan pelayan pada port berkod keras (9000) dan bukannya mengikatnya pada port yang ditentukan oleh Pembolehubah persekitaran $PORT Heroku.

Penyelesaian:

Untuk menyelesaikan isu ini, mulakan pelayan pada port yang betul dengan menggunakan pembolehubah persekitaran $PORT. Gantikan kod sedia ada anda:

err := grace.Serve(":9000", context.ClearHandler(http.DefaultServeMux))

Dengan yang berikut:

port := os.Getenv("PORT")
if port == "" {
    port = "9000" // Default port if not specified
}
err := grace.Serve(":" + port, context.ClearHandler(http.DefaultServeMux))

Perubahan ini memastikan pelayan mengikat dengan betul pada port yang ditentukan oleh Heroku, menyelesaikan isu "Ralat Aplikasi".

Atas ialah kandungan terperinci Mengapa Apl Golang Saya pada Heroku Menunjukkan 'Ralat Aplikasi' Selepas Pembinaan Berjaya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn