天天看点

uWSGI学习笔记5——uWSGI挂载多个Flask application用一个uWSGI部署多个Flask app

上一章讲了好多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访问这三个应用了。