Согласно предложениям на 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
Вопросы:
Оборачивание Flask внутри CherryPy по-прежнему является предпочтительным методом используете Flask в производстве? https: //stackoverflow.com/questions/4884541/cherrypy-vs-flask-werkzeug
Правильно ли это использовать файл .conf для запуска CherryPy и импорта приложения Flask? Я просмотрел документацию CherryPy, но я не могу найти никаких вариантов использования, которые соответствовали бы тому, что я пытаюсь сделать здесь конкретно.
Это правильный способ запустить несколько экземпляров CherryPy / Flask на одной машине для выполнения нескольких команд Cherryd (демонизация с -d и т. д.) с уникальными файлами .conf для каждого используемого порта (8891, 8892 и т. д.)? Или есть лучший способ "CherryPy" сделать это?
Спасибо за любую помощь и понимание.