上一章讲了好多uWSGI的特性,本章再看一个好玩的特性——用一个uWSGI部署多个Flask application
用一个uWSGI部署多个Flask app
有的时候我们可能要同时部署多个服务应用,可以使用同一个uWSGI进程挂载多个Flask app
首先我们写三个flask app:
# app1.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return "<h1>I am Flask app 1</h1>"
# app2.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return "<h1>I am Flask app 2</h1>"
# app3.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return "<h1>I am Flask app 4</h1>"
我们可以使用--mount参数,将这三个app分别挂载到/app1,/app2,/app3
ini文件如下:
[uwsgi]
mount = /app1=app1.py
mount = /app2=app2.py
mount = /app3=app3.py
callable = app
manage-script-name = true
socket = 127.0.0.1:3031
其中manage-script-name = true将根据挂载点重写PATH_INFO和SCRIPT_NAME。
然后我们就可以在浏览器中分别通过/app1,/app2,/app3访问这三个应用了。