Я пытаюсь развернуть один из примеров actix-web , который предлагает поддержку HTTP / 2 в Heroku, после небольшого изменения его для прослушивания по предоставленному номеру $PORT
, а также способав котором загружаются сертификаты - вместо чтения из файла он получает открытый и закрытый ключи из среды.
Проблема в том, что при каждом запросе маршрутизатор Heroku регистрирует, что соединение закрывается без ответа.
heroku[router]:
at=error
code=H13
desc="Connection closed without response"
method=GET
status=503
bytes=0
protocol=https
Поскольку это работало локально, я подозреваю, что проблема у моего администратораКонфигурация, которая является хобби ($ 7 / мес), особенно в разделе сертификатов.Поскольку приложение ожидает получить информацию о сертификате от переменных среды, и поскольку Heroku не предоставляет вам доступ к их сертификатам (например, cert для xxxxx.herokuapp.com), я купил доменное имя в надежде создать собственное.Я сделал, используя следующую страницу .
С самогенерируемым сертификатом, я до сих пор пробовал следующее, приводя к любому из следующих случаев:
- Чтобы предоставить ту же пару ключей для dyno и приложения.Журналы выдают ошибку, упомянутую выше.
- Не для обеспечения конфигурации SSL для dyno, а для приложения.Таким образом, доступ
https
отключен, и dyno даже не ударил. - Не для обеспечения конфигурации сертификатов для приложения, но для dyno.Приложение вылетает во время загрузки.
Однако, если я удаляю соответствующие строки rustls
, все работает гладко, но используется протокол HTTP/1.1
.
Поэтому яЯ хотел бы спросить вас:
- Есть ли что-то принципиально плохое в том, что приложение ожидает загрузки сертификатов?
- Стоит ли попробовать других провайдеров?(например, DigitalOcean, AWS, Google Cloud)
- У вас есть идеи, что может заставить его работать в Heroku?