鉴于以下配置:Nginx,Uwsgi和Flask。
如果我将Flask应用程序从/ test /移动到生产,我必须更新Nginx配置,最好只更新该配置。因此,如果Flask @ app.route('/ test /')是相对的,那么在非现有语法中就是一个解决方案:@ app.route('[root]')。我无法找到实现这一目标的方法。话虽如此,我认为有一种方法,因为如果我必须改变Flask中的所有路径似乎是不切实际的。
Nginx的:
location /test/ {
uwsgi_pass 127.0.0.01:3031;
include uwsgi_params;
}
Uwsgi:
uwsgi --socket 127.0.0.1:3031 --wsgi-file myflaskapp.py --callable app --proces$
烧瓶中:
from flask import Flask
app = Flask(__name__)
@app.route('/test/')
def index():
return "<span style='color:red'>I am app 1</span>"
我正在努力将我的应用程序移动到域的任何子路径(site.com/apps,site.com/congres/等等),并且只更新NGINX配置。
答案 0 :(得分:2)
你可能在考虑@app.route('/')
。路径URL似乎是绝对的,但它实际上是相对于应用程序的根URL。
这实际上涵盖在Flask's documentation中。您只需在nginx配置中指定将应用程序绑定到的URL; Flask应该能够从WSGI环境中检测到这个位置并相应地构建它的路径。