【问题标题】:How can I run a https server on Heroku with docker?如何使用 docker 在 Heroku 上运行 https 服务器?
【发布时间】:2021-01-29 00:18:52
【问题描述】:

我有一个 .net core 3.1 web api,我将它包装在一个 docker 映像中,以便在 heroku 上发布。作为标准,我为我的服务器启用了 HTTPS 和从 HTTP 到 HTTPS 的重定向。它可以作为一个独立的组件运行,也可以在 docker 中运行。

当 Heroku 出现时,问题就出现了。我可以访问我的应用程序,但看起来 HTTP 端口是 heroku 路由器选择的端口,我自然会得到重定向(状态 307): 2021-01-28T23:39:23.806237+00:00 heroku[router]: at=info method=GET path="/matches" host=stg-inform-web-api.herokuapp.com request_id=xxx fwd="xxx" dyno=web.1 connect=0ms service=6ms status=307 bytes=192 protocol=https

我应该如何处理这个问题?是不是我真的不需要 https 来为我的服务器设置这个基础设施?

【问题讨论】:

    标签: .net docker heroku webapi


    【解决方案1】:

    Heroku 负责部署您的应用程序,提供主机名 (myapp.herokuapp.com) 和 SSL(通过 HTTPS 访问)。
    您需要确保您的 Web 应用程序可以绑定到 Heroku 在运行时分配的端口,这在 $PORT 环境变量中提供。

    Web 层由 Heroku 提供,因此您的应用只需要接受 HTTP 请求。

    【讨论】:

    • 那么我应该明白在这种情况下禁用我的服务器的 https 重定向不是反模式吗?在生产环境中也是这样吗?
    • Heroku 确保 HTTPS 并不是反模式:您的应用程序运行在 Heroku 网络服务器上,并且它没有暴露在互联网上(因此,如果不是可取的,在 http 上运行也可以 -即打火机)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-17
    • 2020-08-13
    • 2013-04-21
    • 2014-08-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多