使用 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