我正在使用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;
}

10-08 20:18