我的Dash应用程序前面是否需要反向代理(Nginx)?

时间:2018-09-07 10:35:04

标签: nginx flask digital-ocean plotly-dash

我正在开发一个Dash应用程序,该应用程序向两个Flask-RESTful应用程序发出请求以获取数据并填充不同的表和图形。我打算将这些应用程序部署在DigitalOcean Droplet上,然后将它们放入Docker容器中。我了解到Flask内置服务器有一些局限性,并且主要适用于开发目的。我的用户群不大(最多10人),但是我想知道当我的应用程序需要处理多个请求时是否会遇到一些问题。我需要在Dash应用程序前面使用反向代理(例如Nginx)吗?为什么?

1 个答案:

答案 0 :(得分:0)

我的理解是Flask仅用于开发,因为

  • 安全原因
  • Flask无法处理并行性(因此所有请求都将按顺序处理)

即使您的用户群不大,我也建议您使用其他WSGI HTTP服务器。 gunicorn是您的理想选择。它是用python编写的,与Flask或Dash一起使用非常简单。

如果您在python文件中的Flask应用程序名称为app,而文件名为dash_app.py,则使用起来就很简单

CMD gunicorn -b 0.0.0.0:7000 -w 4 dash_app:app

使用4个工作程序在7000端口上的主界面上启动应用程序。

如果您仅没有Flask服务器变量,而您的dash_app.py中只有Dash变量,它将像

CMD gunicorn -b 0.0.0.0:7000 -w 4 dash_app:app.server

有关详细信息,请参见https://www.digitalocean.com/community/tutorials/how-to-serve-flask-applications-with-gunicorn-and-nginx-on-ubuntu-18-04