如何通过烧瓶处理web api

时间:2014-12-08 03:04:53

标签: python nginx flask

我正在使用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,未找到。
提前谢谢!

1 个答案:

答案 0 :(得分:2)

你可以这样做:

@app.route('/query', methods=['GET'])
def query():
    print 'query()'

然后在Nginx配置中:

location /appapi/ {
  include uwsgi_params;
  uwsgi_pass 127.0.0.1:3301;
}
相关问题