我正在使用Nginx+uWSGI+Flask构建一个web服务API。
如下所示
在Nginx中,我希望Flask处理所有请求appapi,而其他请求则由Nginx处理。
前任。
http://flask.pocoo.org/docs/0.10/deploying/uwsgi/将由烧瓶处理
http://www.example.com/appapi/query?name=123将由nginx处理。
我添加下面的配置,让烧瓶处理。
location = /appapi { rewrite ^ /appapi /; }
location /appapi { try_files $uri @appapi ; }
location @appapi {
include uwsgi_params;
uwsgi_param SCRIPT_NAME /appapi;
uwsgi_modifier1 30;
uwsgi_pass 127.0.0.1:3301;
}
uWSGI有监听3301端口,将加载烧瓶应用程序,烧瓶应用程序代码。我已经为阿帕皮确定了路线
@app.route('/appapi/query', methods=['GET'])
def query():
print 'query()'
但是我发现查询函数没有被调用,并且在日志中。它返回404,未找到。
提前谢谢!
最佳答案
你可以这样做:
@app.route('/query', methods=['GET'])
def query():
print 'query()'
然后在Nginx配置中:
location /appapi/ {
include uwsgi_params;
uwsgi_pass 127.0.0.1:3301;
}