Nginx proxy_pass + / 问题:

location /api {
	proxy_pass http://api_proxy/;
}
# 访问: http://api.xxx.com/api/admin;
# 转发效果:http://api_proxy/admin;

由于Apisix 使用的是radixtree 的写法, 导致只支持匹配规则(Full match,Prefix matching) , 并且不会去掉匹配的路径, 这个时候, 为了去掉上面的 /api , 需要使用到插件:proxy-rewrite
Apisix-Router:https://apisix.apache.org/zh/docs/apisix/terminology/router
Proxy-rewrite:https://apisix.apache.org/zh/docs/apisix/plugins/proxy-rewrite
ngx_http_rewirte_module:https://nginx.org/en/docs/http/ngx_http_rewrite_module.html
ngx_http_proxy_module:https://nginx.org/en/docs/http/ngx_http_proxy_module.html
ngx_stream_proxy_module:http://nginx.org/en/docs/stream/ngx_stream_proxy_module.html

{
  "uri": "/api*",
  "name": "api",
  "id": "489259072256738721",
  "upstream": {
    "type": "roundrobin",
    "pass_host": "pass",
    "nodes": {
      "10.1.1.1:3030": 10
    },
    "timeout": {
      "send": 6,
      "connect": 6,
      "read": 6
    },
    "scheme": "http",
    "keepalive_pool": {
      "idle_timeout": 60,
      "requests": 1000,
      "size": 320
    }
  },
  "plugins": {
    "proxy-rewrite": {
      "regex_uri": [
        "^/api(.*)$",
        "$1"
      ]
    }
  },
  "status": 1,
  "host": "api.xxx.com"
}