使用 uWSGI 运行 Flask 应用程序
内置的 werkzeug
服务器当然不适合运行生产服务器。最明显的原因是 werkzeug
服务器是单线程的,因此一次只能处理一个请求。
因此,我们希望使用 uWSGI 服务器来代替我们的应用程序。在这个例子中,我们将安装 uWSGI 并使用它运行一个简单的测试应用程序。
安装 uWSGI :
pip install uwsgi
它是如此简单。如果你不确定你的 pip 使用的 python 版本是否明确:
python3 -m pip install uwsgi # for python3
python2 -m pip install uwsgi # for python2
现在让我们创建一个简单的测试应用程序:
app.py
from flask import Flask
from sys import version
app = Flask(__name__)
@app.route("/")
def index():
return "Hello uWSGI from python version: <br>" + version
application = app
在 Flask 中,应用程序的常规名称是 app
,但 uWSGI 默认查找 application
。这就是我们在最后一行为我们的应用程序创建别名的原因。
现在是时候运行应用程序了:
uwsgi --wsgi-file app.py --http :5000
你应该通过将浏览器指向 localhost:5000
来看到消息“Hello uWSGI …”
为了不在每次都输入完整命令,我们将创建一个 uwsgi.ini
文件来存储该配置:
uwsgi.ini
[uwsgi]
http = :9090
wsgi-file = app.py
single-interpreter = true
enable-threads = true
master = true
http
和 wsgi-file
选项与手动命令中的选项相同。但还有三个选择:
-
single-interpreter
:建议打开它,因为它可能会干扰下一个选项 -
enable-threads
:如果你在应用程序中使用其他线程,则需要打开它。我们现在不使用它们,但现在我们不必担心它。 -
master
:应该出于各种原因启用主模式
现在我们可以使用此命令运行应用程序:
uwsgi --ini uwsgi.ini