Skip to main content
 首页 » 编程设计

nginx之Flask 和 nginx 路由

2025年12月25日27jackei

我已经配置了 nginx + uwsgi + flask ,现在我正在努力为我的 flask 定义的路由添加路径。基本问题是:它甚至可能吗?

假设我有一条路线 app.route('/login')我想配置 nginx 来访问这个路由,比如从地址 /api/login .

我当前的配置看起来像这样,但它不起作用

location = /api { rewrite ^ /api/; } 
location /api { try_files $uri @api; } 
location @api { 
        include            uwsgi_params; 
        uwsgi_pass         uwsgicluster; 
 
    proxy_redirect     off; 
    proxy_set_header   Host $host; 
    proxy_set_header   X-Real-IP $remote_addr; 
    proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header   X-Forwarded-Host $server_name; 
} 

谢谢你的帮助。

请您参考如下方法:

一个建议是将路由逻辑保留在您的应用程序中:

app.route('/api/login') 

或者使用 '/api' 的 url_prefix 实现一个 'api' 蓝图:

文件:api/views.py
from flask import Blueprint, render_template, abort 
from jinja2 import TemplateNotFound 
 
api = Blueprint('api', __name__, url_prefix='/api') 
 
@api.route('/', defaults={'page': 'index'}) 
@api.route('/<page>') 
def show(page): 
    if page == 'login': 
        # do something 
    try: 
        return render_template('pages/%s.html' % page) 
    except TemplateNotFound: 
        abort(404) 

文件:app.py
from flask import Flask 
from .api import api 
 
app = Flask(__name__) 
app.register_blueprint(api)