2015-09-08 3 views
1

После this tutorial все работает локально. После того, как я раскрываю мое приложение для Heroku и посетить приложение в браузере я получаю 503 Error и сообщение:Ошибка Heroku Go

Ошибка приложения произошла ошибка в приложении, и ваша страница не может быть обслужен. Пожалуйста, попробуйте снова через пару минут. Если вы являетесь владельцем приложения, проверьте свои журналы для получения более подробной информации.

Журналы говорят:

2015-09-08T16:31:53.976824+00:00 heroku[web.1]: State changed from crashed to starting 
2015-09-08T16:31:56.174376+00:00 heroku[web.1]: Starting process with command `mywebsite` 
2015-09-08T16:31:59.312461+00:00 app[web.1]: Listening on port: 39461 
2015-09-08T16:32:56.471550+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch 
2015-09-08T16:32:56.471550+00:00 heroku[web.1]: Stopping process with SIGKILL 
2015-09-08T16:32:57.390752+00:00 heroku[web.1]: Process exited with status 137 
2015-09-08T16:32:57.404208+00:00 heroku[web.1]: State changed from starting to crashed 
2015-09-08T16:32:57.645135+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=boiling-eyrie-6897.herokuapp.com request_id=ec26... fwd="xx.xxx.xxx.xxx" dyno= connect= service= status=503 bytes= 
2015-09-08T16:32:58.233774+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=boiling-eyrie-6897.herokuapp.com request_id=ef40...fwd="xx.xxx.xxx.xxx" dyno= connect= service= status=503 bytes= 

Я понимаю, что эти ошибки, но как такая маленькая обучающая приложение быть причиной загрузки тайм-аут (R10)?

Как я могу отладить это лучше и исправить приложение, чтобы оно работало?

+0

возможно ли это ваше приложение привязки правый порт, но только в локальном цикле соединений, а не на всех из них (что сделает платформу не обнаруживать порт как связанный и сбой приложения). –

+0

@DamienMATHIEU Извините, я не уверен, что вы говорите. Что означает «на локальном контуре соединения, а не на всех из них»? – sargas

+0

Если ваше приложение прослушивает только «localhost», наблюдатель процесса не может определить связанный порт. Вам необходимо привязать все доступные сетевые подключения. См. Https://github.com/heroku/go-getting-started/blob/master/cmd/go-getting-started/main.go#L27 –

ответ

4

Вашему устройству необходимо прослушать все сетевые подключения. Если он только слушает на localhost, наблюдатель процесса героя не сможет обнаружить, что вы связали порт и не отправляли запросы в свое приложение.

Это означает, что вместо того, чтобы:

http.ListenAndServe("127.0.0.1:"+port, nil) 

Вам нужно позвонить:

http.ListenAndServe(":"+port, nil) 

Смотри также Heroku начала работы с Go приложения: https://github.com/heroku/go-getting-started/blob/master/cmd/go-getting-started/main.go#L27

Смежные вопросы