Использование CherryPy / Cherryd для запуска нескольких экземпляров Flask

Согласно предложениям на SO / SF и других сайтах, я использую CherryPy в качестве сервера WSGI для запуска нескольких экземпляров веб-сервера Python, который я создал с помощью Flask. Каждый экземпляр работает на своем собственном порту и находится за Nginx. Я должен отметить, что приведенное ниже работает для меня, но меня беспокоит, что я поступил неправильно, и это работает «случайно».

Вот мой текущий файл cherrypy.conf:

[global]
server.socket_host = '0.0.0.0'
server.socket_port = 8891
request.dispatch: cherrypy.dispatch.MethodDispatcher()
tree.mount = {'/':my_flask_server.app}

Без погружений слишком далеко в моем сервере Flask, вот как он запускается:

import flask
app = flask.Flask(__name__)

@app.route('/')
def hello_world():
    return "hello"

И вот команда, которую я запускаю в командной строке для запуска с Cherryd:

cherryd -c cherrypy.conf -i my_flask_server

Вопросы:

  1. Оборачивание Flask внутри CherryPy по-прежнему является предпочтительным методом используете Flask в производстве? https: //stackoverflow.com/questions/4884541/cherrypy-vs-flask-werkzeug

  2. Правильно ли это использовать файл .conf для запуска CherryPy и импорта приложения Flask? Я просмотрел документацию CherryPy, но я не могу найти никаких вариантов использования, которые соответствовали бы тому, что я пытаюсь сделать здесь конкретно.

  3. Это правильный способ запустить несколько экземпляров CherryPy / Flask на одной машине для выполнения нескольких команд Cherryd (демонизация с -d и т. д.) с уникальными файлами .conf для каждого используемого порта (8891, 8892 и т. д.)? Или есть лучший способ "CherryPy" сделать это?

Спасибо за любую помощь и понимание.

10
задан Community 23 May 2017 в 12:22
поделиться