【问题标题】:Deploying a Dash app with Gunicorn on Ubuntu+Nginx在 Ubuntu+Nginx 上使用 Gunicorn 部署 Dash 应用程序
【发布时间】:2021-12-14 00:45:44
【问题描述】:

我一直在按照 DigitalOcean 教程 (https://www.digitalocean.com/community/tutorials/how-to-serve-flask-applications-with-gunicorn-and-nginx-on-ubuntu-18-04) 的大纲在 nginx/ubuntu 上部署烧瓶应用程序,并尝试部署 Dash 应用程序。

尝试使用命令 gunicorn --bind 0.0.0.0:5000 wsgi:app 时出现错误:Application object must be callable

我调用应用的方式是:

wsgi.py

from __init__ import app

if __name__ == "__main__":
    app.run_server()

和:

__init__.py

#code

if __name__ == '__main__':
    app.run_server(port=5000,host='0.0.0.0',debug=True)

应用程序本身在 app.py 中声明(遵循 Dash 教程中的多页模板)

app.py

import dash

app = dash.Dash(__name__, suppress_callback_exceptions=True)
server = app.server

当我使用 python3 wsgi.py 启动应用程序时,它在本地主机上运行,​​但由于某种原因我无法通过 IP:5000 访问它。

我怀疑 gunicorn 命令需要修改为引用服务器,而不仅仅是 wsgi:app,但我不确定正确的格式是什么。

【问题讨论】:

    标签: ubuntu nginx flask digital-ocean plotly-dash


    【解决方案1】:

    我设法通过改变来解决这个问题

    wsgi:server
    
    wsgi.py
    
    from __init__ import app
    from __init__ import server
    
    if __name__ == "__main__":
        app.run_server(port=5000, debug = True)
    

    【讨论】:

    • 我写了一个答案来回答某人提出的另一个问题(即没有理由在此处关闭/合并您的问题)关于专门使用某些 Dash dcc 和部署 Gunicorn,但是,您可能会发现任何有用的东西/help/关于 Gunicorn 部署的新想法:stackoverflow.com/questions/69785448/… 在我的 github 上还有一个包含 nginx.conf 文件的破折号 Web 应用程序模板。我想我(最终)最终理解了所有这一切,哈哈,但是,也许共同继续……
    • 向 GH 存储库致敬,也许(可能),一个更好的或至少已经建立的存储库(尽管可能不存在),比如说,只是一般的各种破折号样板归结为最低限度的模板。我还(在我的 github 应用程序模板中,顺便说一句,它仍然是 WIP - 虽然它是功能性的,但它有点,嗯,不像我想要的那样最小)创建自定义 systemd 服务的说明,如在我相信 gunicorn docs nginx 示例。向您发送了邀请,希望它是您仍在使用的正确帐户
    • 赞成 +1(但建议阅读:stackoverflow.com/a/42862399/6714627)或考虑创建一个 launch_gunicorn.sh 脚本 above 包含 wsgi 文件的主应用程序目录,这样在wsgi 文件可以避免不推荐使用from __init__ import
    猜你喜欢
    • 1970-01-01
    • 2016-08-06
    • 2017-01-07
    • 1970-01-01
    • 2021-09-24
    • 1970-01-01
    • 2020-01-10
    • 2023-03-31
    • 2020-10-30
    相关资源
    最近更新 更多