我正在使用Nginx + uWSGI + Flask来构建Web服务API。
我按照下面的http://flask.pocoo.org/docs/0.10/deploying/uwsgi/
在Nginx中,我希望Flask处理所有请求appapi,其他人处理nginx。
离。
http://www.example.com/appapi/query?name=123将由烧瓶处理
http://www.example.com/将由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端口,并将加载烧瓶应用,在Flask应用程序代码中。我已经为appapi定义了路线
@app.route('/appapi/query', methods=['GET'])
def query():
print 'query()'
但我发现查询功能未被调用,并且在日志中。它返回404,未找到。
提前谢谢!
答案 0 :(得分:2)
你可以这样做:
@app.route('/query', methods=['GET'])
def query():
print 'query()'
然后在Nginx配置中:
location /appapi/ {
include uwsgi_params;
uwsgi_pass 127.0.0.1:3301;
}