Нужен ли мне обратный прокси (Nginx) перед моим приложением Dash? - PullRequest
0 голосов
/ 07 сентября 2018

Я разрабатываю приложение Dash, которое отправляет запросы двум приложениям Flask-RESTful для получения данных и заполнения различных таблиц и графиков. Я планирую развернуть эти приложения на капле DigitalOcean, где они будут помещены в контейнеры Docker. Я читал, что встроенный сервер Flask имеет некоторые ограничения и в основном подходит для разработки. Моя пользовательская база невелика (максимум 10 человек), но мне интересно, столкнусь ли я с некоторыми проблемами, когда моему приложению нужно обрабатывать несколько запросов. Нужно ли использовать обратный прокси-сервер, такой как Nginx, перед моим приложением Dash и почему?

1 Ответ

0 голосов
/ 12 сентября 2018

Насколько я понимаю, Flask используется только для разработки из-за

  • соображения безопасности
  • Flask не может обрабатывать параллелизм (поэтому все запросы обрабатываются последовательно)

Даже если ваша пользовательская база невелика, я бы предложил использовать другой HTTP-сервер WSGI. Хорошим выбором для вас может быть gunicorn . Он написан на python, и использовать его с Flask или Dash очень просто.

Если имя вашего приложения Flask в вашем файле python - app, а ваш файл - имя dash_app.py, это так же просто, как использовать

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

для запуска прослушивания приложения на основном интерфейсе через порт 7000 с 4 рабочими.

Если у вас просто нет серверной переменной Flask, а есть только переменная Dash в вашем dash_app.py, это будет так же просто, как

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 для получения подробной информации.

...