根据 SO/SF 和其他网站上的建议,我使用 CherryPy 作为 WSGI 服务器来启动我用 Flask 构建的 Python Web 服务器的多个实例。每个实例都在自己的端口上运行并位于 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
问题是:
在 CherryPy 中包装 Flask 仍然是在生产中使用 Flask 的首选方法吗? https://stackoverflow.com/questions/4884541/cherrypy-vs-flask-werkzeug
这是使用 .conf 文件启动 CherryPy 并导入 Flask 应用程序的正确方法吗?我已经搜索了 CherryPy 文档,但是我找不到任何与我在这里具体尝试做的事情相匹配的用例。
在一台机器上启动多个 CherryPy/Flask 实例以执行多个cherryd命令(使用-d 等进行守护程序)的正确方法是否为每个要使用的端口(8891、8892 等)使用唯一的 .conf 文件?还是有更好的“CherryPy”方法来实现这一点?
感谢您的帮助和洞察力。