【问题标题】:multidomain configuration for flask application烧瓶应用程序的多域配置
【发布时间】:2015-07-27 20:47:59
【问题描述】:

我需要配置烧瓶应用程序来处理与 HTTP 标头中的任何主机的请求

如果在 SERVER_NAME 中指定了某些 fqdn,如果请求与任何其他域一起使用,则会出现 404 错误。 配置中SERVER_NAME应该如何定义?

如何请求/路由/蓝图化 HTTP 主机名?

【问题讨论】:

    标签: python flask


    【解决方案1】:

    如果您希望flask 接受任何主机名,请使用app.run(host='0.0.0.0')

    【讨论】:

    • 您的答案是将服务器绑定到所有 ip。我需要什么 - 处理任何域的请求(http 标头“主机”)。主机名作为参数传递给 create_app 而不是 app.run
    • 抱歉上一条评论中出现错误:'作为参数传递给 create_app' =>'是应用程序配置的一部分 (config['SERVER_NAME'])'
    • AFAIK,那是一回事。当请求whatever.com时,浏览器确定IP地址(例如123.123.123.123)并发送请求到123.123.123.123。该请求在 HTTP 标头中包含主机名 whatever.com。 Flask 将接收该请求并将来自 HTTP 标头的主机与作为 host 参数传递的主机进行比较。如果flask 以host='0.0.0.0' 启动,那将起作用,如果它以host='whatever.com' 启动,它仍然可以工作,但如果它以host='somethingelse.org' 启动,那么它将拒绝请求,即使somethingelse.org 可能会解决到同一个IP
    • 对不起,我认为你错了。 app.run 中的参数主机确定 Web 服务器应该监听的 IP。 host=0.0.0.0 表示监听所有接口。配置中的参数确定应该由我们的应用程序处理的主机名(更准确地说是烧瓶中的路由)。我想我刚刚找到了解决方案。我刚刚从配置中删除了 SERVER_NAME,它适用于所有主机名
    • 也许我错了。如果您有解决方案,请善待并将其发布为您问题的答案。其他人会很想知道你到底做了什么。
    【解决方案2】:

    要允许任何域名,只需从应用程序配置中删除“SERVER_NAME”

    【讨论】:

    • 不幸的是,我需要根据主机名创建不同的应用程序(具有不同的配置)。但是在创建应用程序之前请求不可用
    猜你喜欢
    • 1970-01-01
    • 2015-07-18
    • 1970-01-01
    • 1970-01-01
    • 2021-01-27
    • 2018-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多