116 Star 699 Fork 166

GVPiresty / Apache APISIX

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
route.md 2.75 KB
一键复制 编辑 原始数据 按行查看 历史
title
Route

Description

Routes match the client's request based on defined rules, load and execute the corresponding plugins, and forwards the request to the specified Upstream.

A Route mainly consists of three parts:

  1. Matching rules (uri, host, remote address)
  2. Plugin configuration (current-limit, rate-limit)
  3. Upstream information

The image below shows some example Route rules. Note that the values are of the same color if they are identical.

routes-example

All the parameters are configured directly in the Route. It is easy to set up, and each Route has a high degree of freedom.

When Routes have repetitive configurations (say, enabling the same plugin configuration or Upstream information), to update it, we need to traverse all the Routes and modify them. This adds a lot of complexity, making it difficult to maintain.

These shortcomings are independently abstracted in APISIX by two concepts: Service and Upstream.

Example

The Route example shown below proxies the request with the URL /index.html to the Upstream service with the address 127.0.0.1:1980.

$ curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -i -d '
{
    "uri": "/index.html",
    "upstream": {
        "type": "roundrobin",
        "nodes": {
            "127.0.0.1:1980": 1
        }
    }
}'
HTTP/1.1 201 Created
Date: Sat, 31 Aug 2019 01:17:15 GMT
Content-Type: text/plain
Transfer-Encoding: chunked
Connection: keep-alive
Server: APISIX web server

{"node":{"value":{"uri":"\/index.html","upstream":{"nodes":{"127.0.0.1:1980":1},"type":"roundrobin"}},"createdIndex":61925,"key":"\/apisix\/routes\/1","modifiedIndex":61925},"action":"create"}

A successful response indicates that the route was created.

Configuration

For specific options of Route, please refer to the Admin API.

Lua
1
https://gitee.com/iresty/apisix.git
git@gitee.com:iresty/apisix.git
iresty
apisix
Apache APISIX
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891