You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@apisix.apache.org by gi...@apache.org on 2021/06/25 10:55:14 UTC

[apisix-website] branch asf-site updated: deploy: 637e8d42b8052976d825794952a3978a49c4d24c

This is an automated email from the ASF dual-hosted git repository.

github-bot pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/apisix-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new b6439e2  deploy: 637e8d42b8052976d825794952a3978a49c4d24c
b6439e2 is described below

commit b6439e2bcfc7d2e3dd0143dc2b9f650762242a2d
Author: juzhiyuan <ju...@users.noreply.github.com>
AuthorDate: Fri Jun 25 10:55:03 2021 +0000

    deploy: 637e8d42b8052976d825794952a3978a49c4d24c
---
 404.html                                           |  8 ++---
 assets/js/0436cf63.a2674fdc.js                     |  1 +
 assets/js/19945770.66719b0c.js                     |  1 +
 assets/js/19945770.e639baff.js                     |  1 -
 assets/js/20303563.0a471863.js                     |  1 -
 assets/js/20303563.b795ac01.js                     |  1 +
 assets/js/2d8fe9ee.4711d6b9.js                     |  1 -
 assets/js/2d8fe9ee.cbac2130.js                     |  1 +
 assets/js/2ebb7cd9.6ef3f39f.js                     |  1 -
 .../{3393d167.b7dd95aa.js => 3393d167.a31ad98b.js} |  2 +-
 .../{358566b4.380fc203.js => 358566b4.c0a2fb37.js} |  2 +-
 .../{3dc9f306.deb1be3e.js => 3dc9f306.1b7864fe.js} |  2 +-
 .../{40fb2fae.1451f9af.js => 40fb2fae.0f71a7ce.js} |  2 +-
 .../{4c20006b.e58fbd93.js => 4c20006b.be760fc5.js} |  2 +-
 assets/js/4e7ac528.0a8092da.js                     |  1 +
 assets/js/4e7ac528.ff0dea2e.js                     |  1 -
 .../{50facf8e.bd5cecaa.js => 50facf8e.efc94831.js} |  2 +-
 .../{601c6eaa.eac0024c.js => 601c6eaa.d8986d25.js} |  2 +-
 .../{66fbb9c2.138e0255.js => 66fbb9c2.79a27488.js} |  2 +-
 assets/js/6f487a38.6fa199b6.js                     |  1 +
 assets/js/7af3052c.31b8afd9.js                     |  1 -
 assets/js/7af3052c.d4d683c5.js                     |  1 +
 assets/js/8762737c.caefc176.js                     |  1 -
 assets/js/8e784bf3.273df94c.js                     |  1 -
 assets/js/8e784bf3.53c92c3b.js                     |  1 +
 .../{8eb4e46b.0a14448c.js => 8eb4e46b.d86748b8.js} |  2 +-
 assets/js/9ce9a606.762b9a04.js                     |  1 +
 assets/js/9e346bbc.0d60ba86.js                     |  1 +
 assets/js/9e346bbc.5af86188.js                     |  1 -
 assets/js/adbb350b.1efb5399.js                     |  1 -
 assets/js/adbb350b.ad53642e.js                     |  1 +
 .../{b2b675dd.6ed61664.js => b2b675dd.80b31116.js} |  2 +-
 assets/js/ca1759fb.fa133f43.js                     |  1 +
 assets/js/cee7ae10.3c5372e6.js                     |  1 -
 assets/js/cee7ae10.e33d2178.js                     |  1 +
 .../{d18db9b0.deae5e1a.js => d18db9b0.55bc5779.js} |  2 +-
 .../{e94802f7.90c10ef1.js => e94802f7.3f7c8477.js} |  2 +-
 assets/js/ec0fe986.8c54c5bc.js                     |  1 +
 assets/js/ec609538.b503cc95.js                     |  1 +
 assets/js/ec609538.e9b26d68.js                     |  1 -
 assets/js/main.e5ba0273.js                         |  2 --
 assets/js/main.f30ebc00.js                         |  2 ++
 .../js/main.f30ebc00.js.LICENSE.txt                |  0
 assets/js/runtime~main.a930ad85.js                 |  1 +
 assets/js/runtime~main.da0c8bde.js                 |  1 -
 blog/2020/08/22/new-website/index.html             | 10 +++----
 .../index.html                                     | 10 +++----
 .../index.html                                     | 10 +++----
 .../index.html                                     | 10 +++----
 .../21/run-ingress-apisix-on-amazon-eks/index.html | 10 +++----
 .../index.html                                     | 10 +++----
 .../index.html                                     | 10 +++----
 .../index.html                                     | 10 +++----
 .../index.html                                     | 10 +++----
 .../index.html"                                    | 10 +++----
 .../index.html"                                    | 10 +++----
 .../index.html                                     | 10 +++----
 .../index.html                                     | 10 +++----
 .../index.html                                     | 10 +++----
 .../index.html                                     | 10 +++----
 .../index.html                                     | 10 +++----
 .../index.html                                     | 12 ++++----
 .../06/25/release-apache-apisix-2.7/index.html     | 27 -----------------
 blog/atom.xml                                      |  9 +-----
 blog/index.html                                    | 10 +++----
 blog/page/2/index.html                             | 10 +++----
 blog/rss.xml                                       |  9 +-----
 docs/apisix/2.4/FAQ/index.html                     |  8 ++---
 docs/apisix/2.4/IGNORE_DOC/index.html              |  8 ++---
 docs/apisix/2.4/admin-api/index.html               |  8 ++---
 docs/apisix/2.4/architecture-design/index.html     |  8 ++---
 docs/apisix/2.4/aws/index.html                     |  8 ++---
 docs/apisix/2.4/batch-processor/index.html         |  8 ++---
 docs/apisix/2.4/benchmark/index.html               |  8 ++---
 docs/apisix/2.4/control-api/index.html             |  8 ++---
 .../2.4/customize-nginx-configuration/index.html   |  8 ++---
 docs/apisix/2.4/debug-function/index.html          |  8 ++---
 docs/apisix/2.4/discovery/consul_kv/index.html     |  8 ++---
 docs/apisix/2.4/discovery/index.html               |  8 ++---
 docs/apisix/2.4/dns/index.html                     |  8 ++---
 .../index.html                                     |  8 ++---
 docs/apisix/2.4/getting-started/index.html         |  8 ++---
 docs/apisix/2.4/grpc-proxy/index.html              |  8 ++---
 docs/apisix/2.4/health-check/index.html            |  8 ++---
 docs/apisix/2.4/how-to-build/index.html            |  8 ++---
 docs/apisix/2.4/https/index.html                   |  8 ++---
 docs/apisix/2.4/install-dependencies/index.html    |  8 ++---
 docs/apisix/2.4/mtls/index.html                    |  8 ++---
 docs/apisix/2.4/plugin-develop/index.html          |  8 ++---
 docs/apisix/2.4/plugin-interceptors/index.html     |  8 ++---
 docs/apisix/2.4/plugins/api-breaker/index.html     |  8 ++---
 docs/apisix/2.4/plugins/authz-keycloak/index.html  |  8 ++---
 docs/apisix/2.4/plugins/basic-auth/index.html      |  8 ++---
 docs/apisix/2.4/plugins/batch-requests/index.html  |  8 ++---
 .../2.4/plugins/consumer-restriction/index.html    |  8 ++---
 docs/apisix/2.4/plugins/cors/index.html            |  8 ++---
 docs/apisix/2.4/plugins/dubbo-proxy/index.html     |  8 ++---
 docs/apisix/2.4/plugins/echo/index.html            |  8 ++---
 .../apisix/2.4/plugins/error-log-logger/index.html |  8 ++---
 docs/apisix/2.4/plugins/fault-injection/index.html |  8 ++---
 docs/apisix/2.4/plugins/grpc-transcode/index.html  |  8 ++---
 docs/apisix/2.4/plugins/hmac-auth/index.html       |  8 ++---
 docs/apisix/2.4/plugins/http-logger/index.html     |  8 ++---
 docs/apisix/2.4/plugins/index.html                 |  8 ++---
 docs/apisix/2.4/plugins/ip-restriction/index.html  |  8 ++---
 docs/apisix/2.4/plugins/jwt-auth/index.html        |  8 ++---
 docs/apisix/2.4/plugins/kafka-logger/index.html    |  8 ++---
 docs/apisix/2.4/plugins/key-auth/index.html        |  8 ++---
 docs/apisix/2.4/plugins/limit-conn/index.html      |  8 ++---
 docs/apisix/2.4/plugins/limit-count/index.html     |  8 ++---
 docs/apisix/2.4/plugins/limit-req/index.html       |  8 ++---
 docs/apisix/2.4/plugins/log-rotate/index.html      |  8 ++---
 docs/apisix/2.4/plugins/mqtt-proxy/index.html      |  8 ++---
 docs/apisix/2.4/plugins/node-status/index.html     |  8 ++---
 docs/apisix/2.4/plugins/openid-connect/index.html  |  8 ++---
 docs/apisix/2.4/plugins/prometheus/index.html      |  8 ++---
 docs/apisix/2.4/plugins/proxy-cache/index.html     |  8 ++---
 docs/apisix/2.4/plugins/proxy-mirror/index.html    |  8 ++---
 docs/apisix/2.4/plugins/proxy-rewrite/index.html   |  8 ++---
 docs/apisix/2.4/plugins/redirect/index.html        |  8 ++---
 .../2.4/plugins/referer-restriction/index.html     |  8 ++---
 docs/apisix/2.4/plugins/request-id/index.html      |  8 ++---
 .../2.4/plugins/request-validation/index.html      |  8 ++---
 .../apisix/2.4/plugins/response-rewrite/index.html |  8 ++---
 docs/apisix/2.4/plugins/server-info/index.html     |  8 ++---
 docs/apisix/2.4/plugins/serverless/index.html      |  8 ++---
 docs/apisix/2.4/plugins/skywalking/index.html      |  8 ++---
 docs/apisix/2.4/plugins/sls-logger/index.html      |  8 ++---
 docs/apisix/2.4/plugins/syslog/index.html          |  8 ++---
 docs/apisix/2.4/plugins/tcp-logger/index.html      |  8 ++---
 docs/apisix/2.4/plugins/traffic-split/index.html   |  8 ++---
 docs/apisix/2.4/plugins/udp-logger/index.html      |  8 ++---
 docs/apisix/2.4/plugins/uri-blocker/index.html     |  8 ++---
 docs/apisix/2.4/plugins/wolf-rbac/index.html       |  8 ++---
 docs/apisix/2.4/plugins/zipkin/index.html          |  8 ++---
 docs/apisix/2.4/powered-by/index.html              |  8 ++---
 docs/apisix/2.4/profile/index.html                 |  8 ++---
 docs/apisix/2.4/router-radixtree/index.html        |  8 ++---
 docs/apisix/2.4/stand-alone/index.html             |  8 ++---
 docs/apisix/2.4/stream-proxy/index.html            |  8 ++---
 docs/apisix/2.5/FAQ/index.html                     |  8 ++---
 docs/apisix/2.5/IGNORE_DOC/index.html              |  8 ++---
 docs/apisix/2.5/admin-api/index.html               |  8 ++---
 .../2.5/architecture-design/apisix/index.html      |  8 ++---
 .../2.5/architecture-design/consumer/index.html    |  8 ++---
 .../2.5/architecture-design/debug-mode/index.html  |  8 ++---
 .../2.5/architecture-design/global-rule/index.html |  8 ++---
 docs/apisix/2.5/architecture-design/index.html     |  8 ++---
 .../architecture-design/plugin-config/index.html   |  8 ++---
 .../2.5/architecture-design/plugin/index.html      |  8 ++---
 .../2.5/architecture-design/route/index.html       |  8 ++---
 .../2.5/architecture-design/router/index.html      |  8 ++---
 .../2.5/architecture-design/script/index.html      |  8 ++---
 .../2.5/architecture-design/service/index.html     |  8 ++---
 .../2.5/architecture-design/upstream/index.html    |  8 ++---
 docs/apisix/2.5/aws/index.html                     |  8 ++---
 docs/apisix/2.5/batch-processor/index.html         |  8 ++---
 docs/apisix/2.5/benchmark/index.html               |  8 ++---
 docs/apisix/2.5/control-api/index.html             |  8 ++---
 .../2.5/customize-nginx-configuration/index.html   |  8 ++---
 docs/apisix/2.5/debug-function/index.html          |  8 ++---
 docs/apisix/2.5/discovery/consul_kv/index.html     |  8 ++---
 docs/apisix/2.5/discovery/dns/index.html           |  8 ++---
 docs/apisix/2.5/discovery/index.html               |  8 ++---
 docs/apisix/2.5/dns/index.html                     |  8 ++---
 .../index.html                                     |  8 ++---
 docs/apisix/2.5/getting-started/index.html         |  8 ++---
 docs/apisix/2.5/grpc-proxy/index.html              |  8 ++---
 docs/apisix/2.5/health-check/index.html            |  8 ++---
 docs/apisix/2.5/how-to-build/index.html            |  8 ++---
 docs/apisix/2.5/https/index.html                   |  8 ++---
 docs/apisix/2.5/install-dependencies/index.html    |  8 ++---
 docs/apisix/2.5/mtls/index.html                    |  8 ++---
 docs/apisix/2.5/plugin-develop/index.html          |  8 ++---
 docs/apisix/2.5/plugin-interceptors/index.html     |  8 ++---
 docs/apisix/2.5/plugins/api-breaker/index.html     |  8 ++---
 docs/apisix/2.5/plugins/authz-keycloak/index.html  |  8 ++---
 docs/apisix/2.5/plugins/basic-auth/index.html      |  8 ++---
 docs/apisix/2.5/plugins/batch-requests/index.html  |  8 ++---
 .../2.5/plugins/consumer-restriction/index.html    |  8 ++---
 docs/apisix/2.5/plugins/cors/index.html            |  8 ++---
 docs/apisix/2.5/plugins/dubbo-proxy/index.html     |  8 ++---
 docs/apisix/2.5/plugins/echo/index.html            |  8 ++---
 .../apisix/2.5/plugins/error-log-logger/index.html |  8 ++---
 docs/apisix/2.5/plugins/fault-injection/index.html |  8 ++---
 docs/apisix/2.5/plugins/grpc-transcode/index.html  |  8 ++---
 docs/apisix/2.5/plugins/hmac-auth/index.html       |  8 ++---
 docs/apisix/2.5/plugins/http-logger/index.html     |  8 ++---
 docs/apisix/2.5/plugins/index.html                 |  8 ++---
 docs/apisix/2.5/plugins/ip-restriction/index.html  |  8 ++---
 docs/apisix/2.5/plugins/jwt-auth/index.html        |  8 ++---
 docs/apisix/2.5/plugins/kafka-logger/index.html    |  8 ++---
 docs/apisix/2.5/plugins/key-auth/index.html        |  8 ++---
 docs/apisix/2.5/plugins/limit-conn/index.html      |  8 ++---
 docs/apisix/2.5/plugins/limit-count/index.html     |  8 ++---
 docs/apisix/2.5/plugins/limit-req/index.html       |  8 ++---
 docs/apisix/2.5/plugins/log-rotate/index.html      |  8 ++---
 docs/apisix/2.5/plugins/mqtt-proxy/index.html      |  8 ++---
 docs/apisix/2.5/plugins/node-status/index.html     |  8 ++---
 docs/apisix/2.5/plugins/openid-connect/index.html  |  8 ++---
 docs/apisix/2.5/plugins/prometheus/index.html      |  8 ++---
 docs/apisix/2.5/plugins/proxy-cache/index.html     |  8 ++---
 docs/apisix/2.5/plugins/proxy-mirror/index.html    |  8 ++---
 docs/apisix/2.5/plugins/proxy-rewrite/index.html   |  8 ++---
 docs/apisix/2.5/plugins/redirect/index.html        |  8 ++---
 .../2.5/plugins/referer-restriction/index.html     |  8 ++---
 docs/apisix/2.5/plugins/request-id/index.html      |  8 ++---
 .../2.5/plugins/request-validation/index.html      |  8 ++---
 .../apisix/2.5/plugins/response-rewrite/index.html |  8 ++---
 docs/apisix/2.5/plugins/server-info/index.html     |  8 ++---
 docs/apisix/2.5/plugins/serverless/index.html      |  8 ++---
 docs/apisix/2.5/plugins/skywalking/index.html      |  8 ++---
 docs/apisix/2.5/plugins/sls-logger/index.html      |  8 ++---
 docs/apisix/2.5/plugins/syslog/index.html          |  8 ++---
 docs/apisix/2.5/plugins/tcp-logger/index.html      |  8 ++---
 docs/apisix/2.5/plugins/traffic-split/index.html   |  8 ++---
 docs/apisix/2.5/plugins/udp-logger/index.html      |  8 ++---
 docs/apisix/2.5/plugins/uri-blocker/index.html     |  8 ++---
 docs/apisix/2.5/plugins/wolf-rbac/index.html       |  8 ++---
 docs/apisix/2.5/plugins/zipkin/index.html          |  8 ++---
 docs/apisix/2.5/powered-by/index.html              |  8 ++---
 docs/apisix/2.5/profile/index.html                 |  8 ++---
 docs/apisix/2.5/router-radixtree/index.html        |  8 ++---
 docs/apisix/2.5/stand-alone/index.html             |  8 ++---
 docs/apisix/2.5/stream-proxy/index.html            |  8 ++---
 docs/apisix/2.6/FAQ/index.html                     |  8 ++---
 docs/apisix/2.6/IGNORE_DOC/index.html              |  8 ++---
 docs/apisix/2.6/admin-api/index.html               |  8 ++---
 .../2.6/architecture-design/apisix/index.html      |  8 ++---
 .../2.6/architecture-design/consumer/index.html    |  8 ++---
 .../2.6/architecture-design/debug-mode/index.html  |  8 ++---
 .../2.6/architecture-design/global-rule/index.html |  8 ++---
 docs/apisix/2.6/architecture-design/index.html     |  8 ++---
 .../architecture-design/plugin-config/index.html   |  8 ++---
 .../2.6/architecture-design/plugin/index.html      |  8 ++---
 .../2.6/architecture-design/route/index.html       |  8 ++---
 .../2.6/architecture-design/router/index.html      |  8 ++---
 .../2.6/architecture-design/script/index.html      |  8 ++---
 .../2.6/architecture-design/service/index.html     |  8 ++---
 .../2.6/architecture-design/upstream/index.html    |  8 ++---
 docs/apisix/2.6/aws/index.html                     |  8 ++---
 docs/apisix/2.6/batch-processor/index.html         |  8 ++---
 docs/apisix/2.6/benchmark/index.html               |  8 ++---
 docs/apisix/2.6/control-api/index.html             |  8 ++---
 .../2.6/customize-nginx-configuration/index.html   |  8 ++---
 docs/apisix/2.6/debug-function/index.html          |  8 ++---
 docs/apisix/2.6/discovery/consul_kv/index.html     |  8 ++---
 docs/apisix/2.6/discovery/dns/index.html           |  8 ++---
 docs/apisix/2.6/discovery/eureka/index.html        |  8 ++---
 docs/apisix/2.6/discovery/index.html               |  8 ++---
 docs/apisix/2.6/discovery/nacos/index.html         |  8 ++---
 docs/apisix/2.6/dns/index.html                     |  8 ++---
 .../index.html                                     |  8 ++---
 docs/apisix/2.6/getting-started/index.html         |  8 ++---
 docs/apisix/2.6/grpc-proxy/index.html              |  8 ++---
 docs/apisix/2.6/health-check/index.html            |  8 ++---
 docs/apisix/2.6/how-to-build/index.html            |  8 ++---
 docs/apisix/2.6/https/index.html                   |  8 ++---
 docs/apisix/2.6/install-dependencies/index.html    |  8 ++---
 docs/apisix/2.6/mtls/index.html                    |  8 ++---
 docs/apisix/2.6/plugin-develop/index.html          |  8 ++---
 docs/apisix/2.6/plugin-interceptors/index.html     |  8 ++---
 docs/apisix/2.6/plugins/api-breaker/index.html     |  8 ++---
 docs/apisix/2.6/plugins/authz-keycloak/index.html  |  8 ++---
 docs/apisix/2.6/plugins/basic-auth/index.html      |  8 ++---
 docs/apisix/2.6/plugins/batch-requests/index.html  |  8 ++---
 .../2.6/plugins/consumer-restriction/index.html    |  8 ++---
 docs/apisix/2.6/plugins/cors/index.html            |  8 ++---
 docs/apisix/2.6/plugins/dubbo-proxy/index.html     |  8 ++---
 docs/apisix/2.6/plugins/echo/index.html            |  8 ++---
 .../apisix/2.6/plugins/error-log-logger/index.html |  8 ++---
 docs/apisix/2.6/plugins/fault-injection/index.html |  8 ++---
 docs/apisix/2.6/plugins/grpc-transcode/index.html  |  8 ++---
 docs/apisix/2.6/plugins/hmac-auth/index.html       |  8 ++---
 docs/apisix/2.6/plugins/http-logger/index.html     |  8 ++---
 docs/apisix/2.6/plugins/index.html                 |  8 ++---
 docs/apisix/2.6/plugins/ip-restriction/index.html  |  8 ++---
 docs/apisix/2.6/plugins/jwt-auth/index.html        |  8 ++---
 docs/apisix/2.6/plugins/kafka-logger/index.html    |  8 ++---
 docs/apisix/2.6/plugins/key-auth/index.html        |  8 ++---
 docs/apisix/2.6/plugins/limit-conn/index.html      |  8 ++---
 docs/apisix/2.6/plugins/limit-count/index.html     |  8 ++---
 docs/apisix/2.6/plugins/limit-req/index.html       |  8 ++---
 docs/apisix/2.6/plugins/log-rotate/index.html      |  8 ++---
 docs/apisix/2.6/plugins/mqtt-proxy/index.html      |  8 ++---
 docs/apisix/2.6/plugins/node-status/index.html     |  8 ++---
 docs/apisix/2.6/plugins/openid-connect/index.html  |  8 ++---
 docs/apisix/2.6/plugins/prometheus/index.html      |  8 ++---
 docs/apisix/2.6/plugins/proxy-cache/index.html     |  8 ++---
 docs/apisix/2.6/plugins/proxy-mirror/index.html    |  8 ++---
 docs/apisix/2.6/plugins/proxy-rewrite/index.html   |  8 ++---
 docs/apisix/2.6/plugins/redirect/index.html        |  8 ++---
 .../2.6/plugins/referer-restriction/index.html     |  8 ++---
 docs/apisix/2.6/plugins/request-id/index.html      |  8 ++---
 .../2.6/plugins/request-validation/index.html      |  8 ++---
 .../apisix/2.6/plugins/response-rewrite/index.html |  8 ++---
 docs/apisix/2.6/plugins/server-info/index.html     |  8 ++---
 docs/apisix/2.6/plugins/serverless/index.html      |  8 ++---
 docs/apisix/2.6/plugins/skywalking/index.html      |  8 ++---
 docs/apisix/2.6/plugins/sls-logger/index.html      |  8 ++---
 docs/apisix/2.6/plugins/syslog/index.html          |  8 ++---
 docs/apisix/2.6/plugins/tcp-logger/index.html      |  8 ++---
 docs/apisix/2.6/plugins/traffic-split/index.html   |  8 ++---
 docs/apisix/2.6/plugins/udp-logger/index.html      |  8 ++---
 docs/apisix/2.6/plugins/uri-blocker/index.html     |  8 ++---
 docs/apisix/2.6/plugins/wolf-rbac/index.html       |  8 ++---
 docs/apisix/2.6/plugins/zipkin/index.html          |  8 ++---
 docs/apisix/2.6/powered-by/index.html              |  8 ++---
 docs/apisix/2.6/profile/index.html                 |  8 ++---
 docs/apisix/2.6/router-radixtree/index.html        |  8 ++---
 docs/apisix/2.6/stand-alone/index.html             |  8 ++---
 docs/apisix/2.6/stream-proxy/index.html            |  8 ++---
 docs/apisix/FAQ/index.html                         |  8 ++---
 docs/apisix/IGNORE_DOC/index.html                  |  8 ++---
 docs/apisix/admin-api/index.html                   |  8 ++---
 docs/apisix/architecture-design/apisix/index.html  |  8 ++---
 .../apisix/architecture-design/consumer/index.html |  8 ++---
 .../architecture-design/debug-mode/index.html      |  8 ++---
 .../architecture-design/global-rule/index.html     |  8 ++---
 docs/apisix/architecture-design/index.html         |  8 ++---
 .../architecture-design/plugin-config/index.html   |  8 ++---
 docs/apisix/architecture-design/plugin/index.html  |  8 ++---
 docs/apisix/architecture-design/route/index.html   |  8 ++---
 docs/apisix/architecture-design/router/index.html  |  8 ++---
 docs/apisix/architecture-design/script/index.html  |  8 ++---
 docs/apisix/architecture-design/service/index.html |  8 ++---
 .../apisix/architecture-design/upstream/index.html |  8 ++---
 docs/apisix/aws/index.html                         |  8 ++---
 docs/apisix/batch-processor/index.html             |  8 ++---
 docs/apisix/benchmark/index.html                   |  8 ++---
 docs/apisix/certificate/index.html                 |  8 ++---
 docs/apisix/control-api/index.html                 |  8 ++---
 .../customize-nginx-configuration/index.html       |  8 ++---
 docs/apisix/debug-function/index.html              |  8 ++---
 docs/apisix/discovery/consul_kv/index.html         |  8 ++---
 docs/apisix/discovery/dns/index.html               |  8 ++---
 docs/apisix/discovery/eureka/index.html            |  8 ++---
 docs/apisix/discovery/index.html                   |  8 ++---
 docs/apisix/discovery/nacos/index.html             |  8 ++---
 docs/apisix/dns/index.html                         |  8 ++---
 .../index.html                                     |  8 ++---
 docs/apisix/external-plugin/index.html             |  8 ++---
 docs/apisix/getting-started/index.html             |  8 ++---
 docs/apisix/grpc-proxy/index.html                  |  8 ++---
 docs/apisix/health-check/index.html                |  8 ++---
 docs/apisix/how-to-build/index.html                |  8 ++---
 docs/apisix/https/index.html                       |  8 ++---
 docs/apisix/install-dependencies/index.html        |  8 ++---
 docs/apisix/mtls/index.html                        |  8 ++---
 docs/apisix/next/FAQ/index.html                    |  8 ++---
 docs/apisix/next/IGNORE_DOC/index.html             | 10 +++----
 docs/apisix/next/admin-api/index.html              |  8 ++---
 .../next/architecture-design/apisix/index.html     |  8 ++---
 .../next/architecture-design/consumer/index.html   |  8 ++---
 .../next/architecture-design/debug-mode/index.html |  8 ++---
 .../architecture-design/global-rule/index.html     |  8 ++---
 docs/apisix/next/architecture-design/index.html    |  8 ++---
 .../architecture-design/plugin-config/index.html   |  8 ++---
 .../next/architecture-design/plugin/index.html     |  8 ++---
 .../next/architecture-design/route/index.html      |  8 ++---
 .../next/architecture-design/router/index.html     |  8 ++---
 .../next/architecture-design/script/index.html     |  8 ++---
 .../next/architecture-design/service/index.html    |  8 ++---
 .../next/architecture-design/upstream/index.html   |  8 ++---
 docs/apisix/next/aws/index.html                    |  8 ++---
 docs/apisix/next/batch-processor/index.html        |  8 ++---
 docs/apisix/next/benchmark/index.html              |  8 ++---
 docs/apisix/next/certificate/index.html            |  8 ++---
 docs/apisix/next/control-api/index.html            |  8 ++---
 .../next/customize-nginx-configuration/index.html  |  8 ++---
 docs/apisix/next/debug-function/index.html         |  8 ++---
 docs/apisix/next/discovery/consul_kv/index.html    |  8 ++---
 docs/apisix/next/discovery/dns/index.html          |  8 ++---
 docs/apisix/next/discovery/eureka/index.html       |  8 ++---
 docs/apisix/next/discovery/index.html              |  8 ++---
 docs/apisix/next/discovery/nacos/index.html        |  8 ++---
 docs/apisix/next/dns/index.html                    |  8 ++---
 .../index.html                                     |  8 ++---
 docs/apisix/next/external-plugin/index.html        |  8 ++---
 docs/apisix/next/getting-started/index.html        |  8 ++---
 docs/apisix/next/grpc-proxy/index.html             |  8 ++---
 docs/apisix/next/health-check/index.html           |  8 ++---
 docs/apisix/next/how-to-build/index.html           |  8 ++---
 docs/apisix/next/https/index.html                  |  8 ++---
 docs/apisix/next/install-dependencies/index.html   |  8 ++---
 docs/apisix/next/mtls/index.html                   |  8 ++---
 docs/apisix/next/plugin-develop/index.html         |  8 ++---
 docs/apisix/next/plugin-interceptors/index.html    |  8 ++---
 docs/apisix/next/plugins/api-breaker/index.html    |  8 ++---
 docs/apisix/next/plugins/authz-keycloak/index.html |  8 ++---
 docs/apisix/next/plugins/basic-auth/index.html     |  8 ++---
 docs/apisix/next/plugins/batch-requests/index.html |  8 ++---
 docs/apisix/next/plugins/client-control/index.html |  8 ++---
 .../next/plugins/consumer-restriction/index.html   |  8 ++---
 docs/apisix/next/plugins/cors/index.html           |  8 ++---
 docs/apisix/next/plugins/dubbo-proxy/index.html    |  8 ++---
 docs/apisix/next/plugins/echo/index.html           |  8 ++---
 .../next/plugins/error-log-logger/index.html       |  8 ++---
 .../next/plugins/ext-plugin-post-req/index.html    |  8 ++---
 .../next/plugins/ext-plugin-pre-req/index.html     |  8 ++---
 .../apisix/next/plugins/fault-injection/index.html |  8 ++---
 docs/apisix/next/plugins/grpc-transcode/index.html |  8 ++---
 docs/apisix/next/plugins/hmac-auth/index.html      |  8 ++---
 docs/apisix/next/plugins/http-logger/index.html    |  8 ++---
 docs/apisix/next/plugins/index.html                |  8 ++---
 docs/apisix/next/plugins/ip-restriction/index.html |  8 ++---
 docs/apisix/next/plugins/jwt-auth/index.html       |  8 ++---
 docs/apisix/next/plugins/kafka-logger/index.html   |  8 ++---
 docs/apisix/next/plugins/key-auth/index.html       |  8 ++---
 docs/apisix/next/plugins/limit-conn/index.html     |  8 ++---
 docs/apisix/next/plugins/limit-count/index.html    |  8 ++---
 docs/apisix/next/plugins/limit-req/index.html      |  8 ++---
 docs/apisix/next/plugins/log-rotate/index.html     |  8 ++---
 docs/apisix/next/plugins/mqtt-proxy/index.html     |  8 ++---
 docs/apisix/next/plugins/node-status/index.html    |  8 ++---
 docs/apisix/next/plugins/openid-connect/index.html |  8 ++---
 docs/apisix/next/plugins/prometheus/index.html     |  8 ++---
 docs/apisix/next/plugins/proxy-cache/index.html    |  8 ++---
 docs/apisix/next/plugins/proxy-mirror/index.html   |  8 ++---
 docs/apisix/next/plugins/proxy-rewrite/index.html  |  8 ++---
 docs/apisix/next/plugins/redirect/index.html       |  8 ++---
 .../next/plugins/referer-restriction/index.html    |  8 ++---
 docs/apisix/next/plugins/request-id/index.html     |  8 ++---
 .../next/plugins/request-validation/index.html     |  8 ++---
 .../next/plugins/response-rewrite/index.html       |  8 ++---
 docs/apisix/next/plugins/server-info/index.html    |  8 ++---
 docs/apisix/next/plugins/serverless/index.html     |  8 ++---
 docs/apisix/next/plugins/skywalking/index.html     |  8 ++---
 docs/apisix/next/plugins/sls-logger/index.html     |  8 ++---
 docs/apisix/next/plugins/syslog/index.html         |  8 ++---
 docs/apisix/next/plugins/tcp-logger/index.html     |  8 ++---
 docs/apisix/next/plugins/traffic-split/index.html  |  8 ++---
 docs/apisix/next/plugins/udp-logger/index.html     |  8 ++---
 docs/apisix/next/plugins/uri-blocker/index.html    |  8 ++---
 docs/apisix/next/plugins/wolf-rbac/index.html      |  8 ++---
 docs/apisix/next/plugins/zipkin/index.html         |  8 ++---
 docs/apisix/next/powered-by/index.html             |  8 ++---
 docs/apisix/next/profile/index.html                |  8 ++---
 docs/apisix/next/router-radixtree/index.html       |  8 ++---
 docs/apisix/next/stand-alone/index.html            |  8 ++---
 docs/apisix/next/stream-proxy/index.html           |  8 ++---
 docs/apisix/plugin-develop/index.html              |  8 ++---
 docs/apisix/plugin-interceptors/index.html         |  8 ++---
 docs/apisix/plugins/api-breaker/index.html         |  8 ++---
 docs/apisix/plugins/authz-keycloak/index.html      |  8 ++---
 docs/apisix/plugins/basic-auth/index.html          |  8 ++---
 docs/apisix/plugins/batch-requests/index.html      |  8 ++---
 docs/apisix/plugins/client-control/index.html      |  8 ++---
 .../apisix/plugins/consumer-restriction/index.html |  8 ++---
 docs/apisix/plugins/cors/index.html                |  8 ++---
 docs/apisix/plugins/dubbo-proxy/index.html         |  8 ++---
 docs/apisix/plugins/echo/index.html                |  8 ++---
 docs/apisix/plugins/error-log-logger/index.html    |  8 ++---
 docs/apisix/plugins/ext-plugin-post-req/index.html |  8 ++---
 docs/apisix/plugins/ext-plugin-pre-req/index.html  |  8 ++---
 docs/apisix/plugins/fault-injection/index.html     |  8 ++---
 docs/apisix/plugins/grpc-transcode/index.html      |  8 ++---
 docs/apisix/plugins/hmac-auth/index.html           |  8 ++---
 docs/apisix/plugins/http-logger/index.html         |  8 ++---
 docs/apisix/plugins/index.html                     |  8 ++---
 docs/apisix/plugins/ip-restriction/index.html      |  8 ++---
 docs/apisix/plugins/jwt-auth/index.html            |  8 ++---
 docs/apisix/plugins/kafka-logger/index.html        |  8 ++---
 docs/apisix/plugins/key-auth/index.html            |  8 ++---
 docs/apisix/plugins/limit-conn/index.html          |  8 ++---
 docs/apisix/plugins/limit-count/index.html         |  8 ++---
 docs/apisix/plugins/limit-req/index.html           |  8 ++---
 docs/apisix/plugins/log-rotate/index.html          |  8 ++---
 docs/apisix/plugins/mqtt-proxy/index.html          |  8 ++---
 docs/apisix/plugins/node-status/index.html         |  8 ++---
 docs/apisix/plugins/openid-connect/index.html      |  8 ++---
 docs/apisix/plugins/prometheus/index.html          |  8 ++---
 docs/apisix/plugins/proxy-cache/index.html         |  8 ++---
 docs/apisix/plugins/proxy-mirror/index.html        |  8 ++---
 docs/apisix/plugins/proxy-rewrite/index.html       |  8 ++---
 docs/apisix/plugins/redirect/index.html            |  8 ++---
 docs/apisix/plugins/referer-restriction/index.html |  8 ++---
 docs/apisix/plugins/request-id/index.html          |  8 ++---
 docs/apisix/plugins/request-validation/index.html  |  8 ++---
 docs/apisix/plugins/response-rewrite/index.html    |  8 ++---
 docs/apisix/plugins/server-info/index.html         |  8 ++---
 docs/apisix/plugins/serverless/index.html          |  8 ++---
 docs/apisix/plugins/skywalking/index.html          |  8 ++---
 docs/apisix/plugins/sls-logger/index.html          |  8 ++---
 docs/apisix/plugins/syslog/index.html              |  8 ++---
 docs/apisix/plugins/tcp-logger/index.html          |  8 ++---
 docs/apisix/plugins/traffic-split/index.html       |  8 ++---
 docs/apisix/plugins/udp-logger/index.html          |  8 ++---
 docs/apisix/plugins/uri-blocker/index.html         |  8 ++---
 docs/apisix/plugins/wolf-rbac/index.html           |  8 ++---
 docs/apisix/plugins/zipkin/index.html              |  8 ++---
 docs/apisix/powered-by/index.html                  |  8 ++---
 docs/apisix/profile/index.html                     |  8 ++---
 docs/apisix/router-radixtree/index.html            |  8 ++---
 docs/apisix/stand-alone/index.html                 |  8 ++---
 docs/apisix/stream-proxy/index.html                |  8 ++---
 docs/dashboard/2.5/FAQ/index.html                  |  8 ++---
 docs/dashboard/2.5/I18N_USER_GUIDE/index.html      |  8 ++---
 docs/dashboard/2.5/IGNORE_DOC/index.html           |  8 ++---
 .../2.5/IMPORT_OPENAPI_USER_GUIDE/index.html       |  8 ++---
 docs/dashboard/2.5/USER_GUIDE/index.html           |  8 ++---
 docs/dashboard/2.5/api/api/index.html              |  8 ++---
 docs/dashboard/2.5/back-end-tests/index.html       |  8 ++---
 docs/dashboard/2.5/deploy-with-docker/index.html   |  8 ++---
 docs/dashboard/2.5/deploy-with-rpm/index.html      |  8 ++---
 docs/dashboard/2.5/deploy/index.html               |  8 ++---
 docs/dashboard/2.5/develop/index.html              |  8 ++---
 docs/dashboard/2.5/front-end-e2e/index.html        |  8 ++---
 docs/dashboard/2.6.1/FAQ/index.html                |  8 ++---
 docs/dashboard/2.6.1/I18N_USER_GUIDE/index.html    |  8 ++---
 docs/dashboard/2.6.1/IGNORE_DOC/index.html         |  8 ++---
 .../2.6.1/IMPORT_OPENAPI_USER_GUIDE/index.html     |  8 ++---
 docs/dashboard/2.6.1/USER_GUIDE/index.html         |  8 ++---
 docs/dashboard/2.6.1/api/api/index.html            |  8 ++---
 docs/dashboard/2.6.1/back-end-tests/index.html     |  8 ++---
 docs/dashboard/2.6.1/deploy-with-docker/index.html |  8 ++---
 docs/dashboard/2.6.1/deploy-with-rpm/index.html    |  8 ++---
 docs/dashboard/2.6.1/deploy/index.html             |  8 ++---
 docs/dashboard/2.6.1/develop/index.html            |  8 ++---
 docs/dashboard/2.6.1/front-end-e2e/index.html      |  8 ++---
 docs/dashboard/2.6/FAQ/index.html                  |  8 ++---
 docs/dashboard/2.6/I18N_USER_GUIDE/index.html      |  8 ++---
 docs/dashboard/2.6/IGNORE_DOC/index.html           |  8 ++---
 .../2.6/IMPORT_OPENAPI_USER_GUIDE/index.html       |  8 ++---
 docs/dashboard/2.6/USER_GUIDE/index.html           |  8 ++---
 docs/dashboard/2.6/api/api/index.html              |  8 ++---
 docs/dashboard/2.6/back-end-tests/index.html       |  8 ++---
 docs/dashboard/2.6/deploy-with-docker/index.html   |  8 ++---
 docs/dashboard/2.6/deploy-with-rpm/index.html      |  8 ++---
 docs/dashboard/2.6/deploy/index.html               |  8 ++---
 docs/dashboard/2.6/develop/index.html              |  8 ++---
 docs/dashboard/2.6/front-end-e2e/index.html        |  8 ++---
 docs/dashboard/FAQ/index.html                      |  8 ++---
 docs/dashboard/I18N_USER_GUIDE/index.html          |  8 ++---
 docs/dashboard/IGNORE_DOC/index.html               |  8 ++---
 .../dashboard/IMPORT_OPENAPI_USER_GUIDE/index.html |  8 ++---
 docs/dashboard/USER_GUIDE/index.html               |  8 ++---
 docs/dashboard/api/api/index.html                  |  8 ++---
 docs/dashboard/back-end-tests/index.html           |  8 ++---
 docs/dashboard/deploy-with-docker/index.html       |  8 ++---
 docs/dashboard/deploy-with-rpm/index.html          |  8 ++---
 docs/dashboard/deploy/index.html                   |  8 ++---
 docs/dashboard/develop/index.html                  |  8 ++---
 docs/dashboard/front-end-e2e/index.html            |  8 ++---
 docs/dashboard/next/FAQ/index.html                 |  8 ++---
 docs/dashboard/next/I18N_USER_GUIDE/index.html     |  8 ++---
 docs/dashboard/next/IGNORE_DOC/index.html          | 10 +++----
 .../next/IMPORT_OPENAPI_USER_GUIDE/index.html      |  8 ++---
 docs/dashboard/next/USER_GUIDE/index.html          |  8 ++---
 docs/dashboard/next/api/api/index.html             |  8 ++---
 docs/dashboard/next/back-end-tests/index.html      |  8 ++---
 docs/dashboard/next/deploy-with-docker/index.html  |  8 ++---
 docs/dashboard/next/deploy-with-rpm/index.html     |  8 ++---
 docs/dashboard/next/deploy/index.html              |  8 ++---
 docs/dashboard/next/develop/index.html             |  8 ++---
 docs/dashboard/next/front-end-e2e/index.html       |  8 ++---
 docs/docker/IGNORE_DOC/index.html                  | 10 +++----
 docs/docker/build/index.html                       |  8 ++---
 docs/docker/example/index.html                     |  8 ++---
 docs/docker/manual/index.html                      |  8 ++---
 docs/general/2fa/index.html                        | 10 +++----
 docs/general/committer-guide/index.html            | 10 +++----
 docs/general/contributor-guide/index.html          | 10 +++----
 .../general/integrate-with-project-docs/index.html | 10 +++----
 docs/general/release-guide/index.html              | 10 +++----
 docs/general/security/index.html                   | 10 +++----
 docs/general/subscribe-guide/index.html            | 10 +++----
 docs/helm-chart/IGNORE_DOC/index.html              | 10 +++----
 docs/helm-chart/apisix-dashboard/index.html        |  8 ++---
 .../apisix-ingress-controller/index.html           |  8 ++---
 docs/helm-chart/apisix/index.html                  |  8 ++---
 docs/index.html                                    |  8 ++---
 docs/ingress-controller/FAQ/index.html             |  8 ++---
 docs/ingress-controller/IGNORE_DOC/index.html      | 10 +++----
 .../concepts/annotations/index.html                |  8 ++---
 .../concepts/apisix_cluster_config/index.html      |  8 ++---
 .../concepts/apisix_route/index.html               |  8 ++---
 .../concepts/apisix_tls/index.html                 |  8 ++---
 .../concepts/apisix_upstream/index.html            |  8 ++---
 docs/ingress-controller/contribute/index.html      |  8 ++---
 docs/ingress-controller/deployments/ack/index.html |  8 ++---
 docs/ingress-controller/deployments/aws/index.html |  8 ++---
 .../deployments/azure/index.html                   |  8 ++---
 docs/ingress-controller/deployments/gke/index.html |  8 ++---
 .../deployments/k3s-rke/index.html                 |  8 ++---
 .../deployments/kubesphere/index.html              |  8 ++---
 .../deployments/minikube/index.html                |  8 ++---
 docs/ingress-controller/deployments/tke/index.html |  8 ++---
 docs/ingress-controller/design/index.html          |  8 ++---
 docs/ingress-controller/development/index.html     |  8 ++---
 docs/ingress-controller/getting-started/index.html |  8 ++---
 .../practices/check-crd-status/index.html          |  8 ++---
 docs/ingress-controller/practices/index/index.html |  8 ++---
 docs/ingress-controller/practices/mtls/index.html  |  8 ++---
 .../index.html                                     |  8 ++---
 .../practices/proxy-the-httpbin-service/index.html |  8 ++---
 .../practices/the-hard-way/index.html              |  8 ++---
 .../references/apisix_cluster_config/index.html    |  8 ++---
 .../references/apisix_route_v1/index.html          |  8 ++---
 .../references/apisix_route_v2alpha1/index.html    |  8 ++---
 .../references/apisix_tls/index.html               |  8 ++---
 .../references/apisix_upstream/index.html          |  8 ++---
 docs/java-plugin-runner/IGNORE_DOC/index.html      | 12 ++++----
 docs/java-plugin-runner/development/index.html     | 12 ++++----
 docs/java-plugin-runner/how-it-works/index.html    | 12 ++++----
 docs/java-plugin-runner/next/IGNORE_DOC/index.html | 27 +++++++++++++++++
 .../java-plugin-runner/next/development/index.html | 34 ++++++++++++++++++++++
 .../{ => next}/how-it-works/index.html             | 14 ++++-----
 .../index.html                                     | 33 +++++++++++++++++++++
 .../index.html                                     | 12 ++++----
 downloads/ProjectCard/index.html                   |  8 ++---
 downloads/index.html                               |  8 ++---
 .../index.html                                     |  8 ++---
 .../index.html                                     |  8 ++---
 .../02/09/release-apache-apisix-2.3/index.html     |  8 ++---
 .../index.html                                     |  8 ++---
 .../release-apache-apisix-dashboard-2.4/index.html |  8 ++---
 .../03/05/release-apache-apisix-2.4/index.html     |  8 ++---
 .../index.html                                     |  8 ++---
 .../04/05/release-apache-apisix-2.5/index.html     |  8 ++---
 .../index.html                                     |  8 ++---
 .../release-apache-apisix-dashboard-2.6/index.html |  8 ++---
 .../05/24/release-apache-apisix-2.6/index.html     |  8 ++---
 .../index.html                                     |  8 ++---
 .../release-apache-apisix-dashboard-2.7/index.html |  8 ++---
 .../06/25/release-apache-apisix-2.7/index.html     |  8 ++---
 events/index.html                                  |  8 ++---
 events/page/2/index.html                           |  8 ++---
 help/index.html                                    |  8 ++---
 index.html                                         |  8 ++---
 search/index.html                                  | 10 +++----
 sitemap.xml                                        |  2 +-
 team/index.html                                    |  8 ++---
 zh/404.html                                        |  8 ++---
 zh/assets/js/0436cf63.cac137e1.js                  |  1 +
 zh/assets/js/19945770.0dee5a12.js                  |  1 +
 zh/assets/js/19945770.68c9cc5e.js                  |  1 -
 zh/assets/js/20303563.955d73f8.js                  |  1 -
 zh/assets/js/20303563.a9d64d30.js                  |  1 +
 zh/assets/js/2d8fe9ee.bef383db.js                  |  1 -
 zh/assets/js/2d8fe9ee.fe13bcfa.js                  |  1 +
 zh/assets/js/2ebb7cd9.e102f356.js                  |  1 -
 .../{3393d167.1cfd601c.js => 3393d167.2ff20568.js} |  2 +-
 .../{358566b4.e88bbef8.js => 358566b4.ca7f4465.js} |  2 +-
 .../{3a332aed.f67f46b1.js => 3a332aed.a8251bf0.js} |  2 +-
 .../{3dc9f306.fe943d68.js => 3dc9f306.f2f31d40.js} |  2 +-
 .../{40fb2fae.21695e6b.js => 40fb2fae.37384ad6.js} |  2 +-
 .../{4c20006b.37995bde.js => 4c20006b.73d1be75.js} |  2 +-
 zh/assets/js/4e7ac528.376b6338.js                  |  1 +
 zh/assets/js/4e7ac528.4a71a0fc.js                  |  1 -
 .../{50facf8e.57c55784.js => 50facf8e.6e537eb8.js} |  2 +-
 .../{601c6eaa.d35b0c8f.js => 601c6eaa.6445bc09.js} |  2 +-
 .../{66fbb9c2.032b6249.js => 66fbb9c2.f915d4f0.js} |  2 +-
 zh/assets/js/6f487a38.18d2eb61.js                  |  1 +
 zh/assets/js/7af3052c.30414dfa.js                  |  1 -
 zh/assets/js/7af3052c.513d1691.js                  |  1 +
 zh/assets/js/8762737c.a7e06745.js                  |  1 -
 zh/assets/js/8e784bf3.4b82df99.js                  |  1 +
 zh/assets/js/8e784bf3.f7e0103a.js                  |  1 -
 zh/assets/js/9ce9a606.26957975.js                  |  1 +
 zh/assets/js/9e346bbc.188506db.js                  |  1 -
 zh/assets/js/9e346bbc.7b4d93d1.js                  |  1 +
 zh/assets/js/adbb350b.00ebae08.js                  |  1 -
 zh/assets/js/adbb350b.49a3d254.js                  |  1 +
 zh/assets/js/ca1759fb.d8527843.js                  |  1 +
 zh/assets/js/cee7ae10.d91f420a.js                  |  1 +
 zh/assets/js/cee7ae10.e1323d44.js                  |  1 -
 .../{d14629a4.b4c9e448.js => d14629a4.2bc519cc.js} |  2 +-
 .../{d18db9b0.e0c1aa0c.js => d18db9b0.30cc17c3.js} |  2 +-
 .../{e94802f7.031940a3.js => e94802f7.55473010.js} |  2 +-
 zh/assets/js/ec0fe986.db2ab4ee.js                  |  1 +
 zh/assets/js/ec609538.651c3e65.js                  |  1 +
 zh/assets/js/ec609538.929b8515.js                  |  1 -
 zh/assets/js/main.93cf96e0.js                      |  2 ++
 .../assets/js/main.93cf96e0.js.LICENSE.txt         |  0
 zh/assets/js/main.d024ffc2.js                      |  2 --
 zh/assets/js/runtime~main.2f7cfe1a.js              |  1 +
 zh/assets/js/runtime~main.95add17b.js              |  1 -
 zh/blog/2020/08/22/new-website/index.html          | 10 +++----
 .../index.html                                     | 10 +++----
 .../index.html                                     | 10 +++----
 .../index.html                                     | 10 +++----
 .../21/run-ingress-apisix-on-amazon-eks/index.html | 10 +++----
 .../index.html                                     | 10 +++----
 .../index.html                                     | 10 +++----
 .../index.html                                     | 10 +++----
 .../index.html                                     | 10 +++----
 .../index.html"                                    | 10 +++----
 .../index.html"                                    | 10 +++----
 .../index.html                                     | 10 +++----
 .../index.html                                     | 10 +++----
 .../index.html                                     | 10 +++----
 .../index.html                                     | 10 +++----
 .../index.html                                     | 10 +++----
 .../index.html                                     | 12 ++++----
 .../06/25/release-apache-apisix-2.7/index.html     | 27 -----------------
 zh/blog/atom.xml                                   |  9 +-----
 zh/blog/index.html                                 | 10 +++----
 zh/blog/page/2/index.html                          | 10 +++----
 zh/blog/rss.xml                                    |  9 +-----
 zh/docs/apisix/2.4/FAQ/index.html                  |  8 ++---
 zh/docs/apisix/2.4/IGNORE_DOC/index.html           |  8 ++---
 zh/docs/apisix/2.4/admin-api/index.html            |  8 ++---
 zh/docs/apisix/2.4/architecture-design/index.html  |  8 ++---
 zh/docs/apisix/2.4/aws/index.html                  |  8 ++---
 zh/docs/apisix/2.4/batch-processor/index.html      |  8 ++---
 zh/docs/apisix/2.4/benchmark/index.html            |  8 ++---
 zh/docs/apisix/2.4/control-api/index.html          |  8 ++---
 .../2.4/customize-nginx-configuration/index.html   |  8 ++---
 zh/docs/apisix/2.4/debug-function/index.html       |  8 ++---
 zh/docs/apisix/2.4/discovery/consul_kv/index.html  |  8 ++---
 zh/docs/apisix/2.4/discovery/index.html            |  8 ++---
 zh/docs/apisix/2.4/dns/index.html                  |  8 ++---
 .../index.html                                     |  8 ++---
 zh/docs/apisix/2.4/getting-started/index.html      |  8 ++---
 zh/docs/apisix/2.4/grpc-proxy/index.html           |  8 ++---
 zh/docs/apisix/2.4/health-check/index.html         |  8 ++---
 zh/docs/apisix/2.4/how-to-build/index.html         |  8 ++---
 zh/docs/apisix/2.4/https/index.html                |  8 ++---
 zh/docs/apisix/2.4/install-dependencies/index.html |  8 ++---
 zh/docs/apisix/2.4/mtls/index.html                 |  8 ++---
 zh/docs/apisix/2.4/plugin-develop/index.html       |  8 ++---
 zh/docs/apisix/2.4/plugin-interceptors/index.html  |  8 ++---
 zh/docs/apisix/2.4/plugins/api-breaker/index.html  |  8 ++---
 .../apisix/2.4/plugins/authz-keycloak/index.html   |  8 ++---
 zh/docs/apisix/2.4/plugins/basic-auth/index.html   |  8 ++---
 .../apisix/2.4/plugins/batch-requests/index.html   |  8 ++---
 .../2.4/plugins/consumer-restriction/index.html    |  8 ++---
 zh/docs/apisix/2.4/plugins/cors/index.html         |  8 ++---
 zh/docs/apisix/2.4/plugins/dubbo-proxy/index.html  |  8 ++---
 zh/docs/apisix/2.4/plugins/echo/index.html         |  8 ++---
 .../apisix/2.4/plugins/error-log-logger/index.html |  8 ++---
 .../apisix/2.4/plugins/fault-injection/index.html  |  8 ++---
 .../apisix/2.4/plugins/grpc-transcode/index.html   |  8 ++---
 zh/docs/apisix/2.4/plugins/hmac-auth/index.html    |  8 ++---
 zh/docs/apisix/2.4/plugins/http-logger/index.html  |  8 ++---
 zh/docs/apisix/2.4/plugins/index.html              |  8 ++---
 .../apisix/2.4/plugins/ip-restriction/index.html   |  8 ++---
 zh/docs/apisix/2.4/plugins/jwt-auth/index.html     |  8 ++---
 zh/docs/apisix/2.4/plugins/kafka-logger/index.html |  8 ++---
 zh/docs/apisix/2.4/plugins/key-auth/index.html     |  8 ++---
 zh/docs/apisix/2.4/plugins/limit-conn/index.html   |  8 ++---
 zh/docs/apisix/2.4/plugins/limit-count/index.html  |  8 ++---
 zh/docs/apisix/2.4/plugins/limit-req/index.html    |  8 ++---
 zh/docs/apisix/2.4/plugins/log-rotate/index.html   |  8 ++---
 zh/docs/apisix/2.4/plugins/mqtt-proxy/index.html   |  8 ++---
 zh/docs/apisix/2.4/plugins/node-status/index.html  |  8 ++---
 .../apisix/2.4/plugins/openid-connect/index.html   |  8 ++---
 zh/docs/apisix/2.4/plugins/prometheus/index.html   |  8 ++---
 zh/docs/apisix/2.4/plugins/proxy-cache/index.html  |  8 ++---
 zh/docs/apisix/2.4/plugins/proxy-mirror/index.html |  8 ++---
 .../apisix/2.4/plugins/proxy-rewrite/index.html    |  8 ++---
 zh/docs/apisix/2.4/plugins/redirect/index.html     |  8 ++---
 .../2.4/plugins/referer-restriction/index.html     |  8 ++---
 zh/docs/apisix/2.4/plugins/request-id/index.html   |  8 ++---
 .../2.4/plugins/request-validation/index.html      |  8 ++---
 .../apisix/2.4/plugins/response-rewrite/index.html |  8 ++---
 zh/docs/apisix/2.4/plugins/server-info/index.html  |  8 ++---
 zh/docs/apisix/2.4/plugins/serverless/index.html   |  8 ++---
 zh/docs/apisix/2.4/plugins/skywalking/index.html   |  8 ++---
 zh/docs/apisix/2.4/plugins/sls-logger/index.html   |  8 ++---
 zh/docs/apisix/2.4/plugins/syslog/index.html       |  8 ++---
 zh/docs/apisix/2.4/plugins/tcp-logger/index.html   |  8 ++---
 .../apisix/2.4/plugins/traffic-split/index.html    |  8 ++---
 zh/docs/apisix/2.4/plugins/udp-logger/index.html   |  8 ++---
 zh/docs/apisix/2.4/plugins/uri-blocker/index.html  |  8 ++---
 zh/docs/apisix/2.4/plugins/wolf-rbac/index.html    |  8 ++---
 zh/docs/apisix/2.4/plugins/zipkin/index.html       |  8 ++---
 zh/docs/apisix/2.4/powered-by/index.html           |  8 ++---
 zh/docs/apisix/2.4/profile/index.html              |  8 ++---
 zh/docs/apisix/2.4/router-radixtree/index.html     |  8 ++---
 zh/docs/apisix/2.4/stand-alone/index.html          |  8 ++---
 zh/docs/apisix/2.4/stream-proxy/index.html         |  8 ++---
 zh/docs/apisix/2.5/FAQ/index.html                  |  8 ++---
 zh/docs/apisix/2.5/IGNORE_DOC/index.html           |  8 ++---
 zh/docs/apisix/2.5/admin-api/index.html            |  8 ++---
 .../2.5/architecture-design/apisix/index.html      |  8 ++---
 .../2.5/architecture-design/consumer/index.html    |  8 ++---
 .../2.5/architecture-design/debug-mode/index.html  |  8 ++---
 .../2.5/architecture-design/global-rule/index.html |  8 ++---
 zh/docs/apisix/2.5/architecture-design/index.html  |  8 ++---
 .../architecture-design/plugin-config/index.html   |  8 ++---
 .../2.5/architecture-design/plugin/index.html      |  8 ++---
 .../2.5/architecture-design/route/index.html       |  8 ++---
 .../2.5/architecture-design/router/index.html      |  8 ++---
 .../2.5/architecture-design/script/index.html      |  8 ++---
 .../2.5/architecture-design/service/index.html     |  8 ++---
 .../2.5/architecture-design/upstream/index.html    |  8 ++---
 zh/docs/apisix/2.5/aws/index.html                  |  8 ++---
 zh/docs/apisix/2.5/batch-processor/index.html      |  8 ++---
 zh/docs/apisix/2.5/benchmark/index.html            |  8 ++---
 zh/docs/apisix/2.5/control-api/index.html          |  8 ++---
 .../2.5/customize-nginx-configuration/index.html   |  8 ++---
 zh/docs/apisix/2.5/debug-function/index.html       |  8 ++---
 zh/docs/apisix/2.5/discovery/consul_kv/index.html  |  8 ++---
 zh/docs/apisix/2.5/discovery/dns/index.html        |  8 ++---
 zh/docs/apisix/2.5/discovery/index.html            |  8 ++---
 zh/docs/apisix/2.5/dns/index.html                  |  8 ++---
 .../index.html                                     |  8 ++---
 zh/docs/apisix/2.5/getting-started/index.html      |  8 ++---
 zh/docs/apisix/2.5/grpc-proxy/index.html           |  8 ++---
 zh/docs/apisix/2.5/health-check/index.html         |  8 ++---
 zh/docs/apisix/2.5/how-to-build/index.html         |  8 ++---
 zh/docs/apisix/2.5/https/index.html                |  8 ++---
 zh/docs/apisix/2.5/install-dependencies/index.html |  8 ++---
 zh/docs/apisix/2.5/mtls/index.html                 |  8 ++---
 zh/docs/apisix/2.5/plugin-develop/index.html       |  8 ++---
 zh/docs/apisix/2.5/plugin-interceptors/index.html  |  8 ++---
 zh/docs/apisix/2.5/plugins/api-breaker/index.html  |  8 ++---
 .../apisix/2.5/plugins/authz-keycloak/index.html   |  8 ++---
 zh/docs/apisix/2.5/plugins/basic-auth/index.html   |  8 ++---
 .../apisix/2.5/plugins/batch-requests/index.html   |  8 ++---
 .../2.5/plugins/consumer-restriction/index.html    |  8 ++---
 zh/docs/apisix/2.5/plugins/cors/index.html         |  8 ++---
 zh/docs/apisix/2.5/plugins/dubbo-proxy/index.html  |  8 ++---
 zh/docs/apisix/2.5/plugins/echo/index.html         |  8 ++---
 .../apisix/2.5/plugins/error-log-logger/index.html |  8 ++---
 .../apisix/2.5/plugins/fault-injection/index.html  |  8 ++---
 .../apisix/2.5/plugins/grpc-transcode/index.html   |  8 ++---
 zh/docs/apisix/2.5/plugins/hmac-auth/index.html    |  8 ++---
 zh/docs/apisix/2.5/plugins/http-logger/index.html  |  8 ++---
 zh/docs/apisix/2.5/plugins/index.html              |  8 ++---
 .../apisix/2.5/plugins/ip-restriction/index.html   |  8 ++---
 zh/docs/apisix/2.5/plugins/jwt-auth/index.html     |  8 ++---
 zh/docs/apisix/2.5/plugins/kafka-logger/index.html |  8 ++---
 zh/docs/apisix/2.5/plugins/key-auth/index.html     |  8 ++---
 zh/docs/apisix/2.5/plugins/limit-conn/index.html   |  8 ++---
 zh/docs/apisix/2.5/plugins/limit-count/index.html  |  8 ++---
 zh/docs/apisix/2.5/plugins/limit-req/index.html    |  8 ++---
 zh/docs/apisix/2.5/plugins/log-rotate/index.html   |  8 ++---
 zh/docs/apisix/2.5/plugins/mqtt-proxy/index.html   |  8 ++---
 zh/docs/apisix/2.5/plugins/node-status/index.html  |  8 ++---
 .../apisix/2.5/plugins/openid-connect/index.html   |  8 ++---
 zh/docs/apisix/2.5/plugins/prometheus/index.html   |  8 ++---
 zh/docs/apisix/2.5/plugins/proxy-cache/index.html  |  8 ++---
 zh/docs/apisix/2.5/plugins/proxy-mirror/index.html |  8 ++---
 .../apisix/2.5/plugins/proxy-rewrite/index.html    |  8 ++---
 zh/docs/apisix/2.5/plugins/redirect/index.html     |  8 ++---
 .../2.5/plugins/referer-restriction/index.html     |  8 ++---
 zh/docs/apisix/2.5/plugins/request-id/index.html   |  8 ++---
 .../2.5/plugins/request-validation/index.html      |  8 ++---
 .../apisix/2.5/plugins/response-rewrite/index.html |  8 ++---
 zh/docs/apisix/2.5/plugins/server-info/index.html  |  8 ++---
 zh/docs/apisix/2.5/plugins/serverless/index.html   |  8 ++---
 zh/docs/apisix/2.5/plugins/skywalking/index.html   |  8 ++---
 zh/docs/apisix/2.5/plugins/sls-logger/index.html   |  8 ++---
 zh/docs/apisix/2.5/plugins/syslog/index.html       |  8 ++---
 zh/docs/apisix/2.5/plugins/tcp-logger/index.html   |  8 ++---
 .../apisix/2.5/plugins/traffic-split/index.html    |  8 ++---
 zh/docs/apisix/2.5/plugins/udp-logger/index.html   |  8 ++---
 zh/docs/apisix/2.5/plugins/uri-blocker/index.html  |  8 ++---
 zh/docs/apisix/2.5/plugins/wolf-rbac/index.html    |  8 ++---
 zh/docs/apisix/2.5/plugins/zipkin/index.html       |  8 ++---
 zh/docs/apisix/2.5/powered-by/index.html           |  8 ++---
 zh/docs/apisix/2.5/profile/index.html              |  8 ++---
 zh/docs/apisix/2.5/router-radixtree/index.html     |  8 ++---
 zh/docs/apisix/2.5/stand-alone/index.html          |  8 ++---
 zh/docs/apisix/2.5/stream-proxy/index.html         |  8 ++---
 zh/docs/apisix/2.6/FAQ/index.html                  |  8 ++---
 zh/docs/apisix/2.6/IGNORE_DOC/index.html           |  8 ++---
 zh/docs/apisix/2.6/admin-api/index.html            |  8 ++---
 .../2.6/architecture-design/apisix/index.html      |  8 ++---
 .../2.6/architecture-design/consumer/index.html    |  8 ++---
 .../2.6/architecture-design/debug-mode/index.html  |  8 ++---
 .../2.6/architecture-design/global-rule/index.html |  8 ++---
 zh/docs/apisix/2.6/architecture-design/index.html  |  8 ++---
 .../architecture-design/plugin-config/index.html   |  8 ++---
 .../2.6/architecture-design/plugin/index.html      |  8 ++---
 .../2.6/architecture-design/route/index.html       |  8 ++---
 .../2.6/architecture-design/router/index.html      |  8 ++---
 .../2.6/architecture-design/script/index.html      |  8 ++---
 .../2.6/architecture-design/service/index.html     |  8 ++---
 .../2.6/architecture-design/upstream/index.html    |  8 ++---
 zh/docs/apisix/2.6/aws/index.html                  |  8 ++---
 zh/docs/apisix/2.6/batch-processor/index.html      |  8 ++---
 zh/docs/apisix/2.6/benchmark/index.html            |  8 ++---
 zh/docs/apisix/2.6/control-api/index.html          |  8 ++---
 .../2.6/customize-nginx-configuration/index.html   |  8 ++---
 zh/docs/apisix/2.6/debug-function/index.html       |  8 ++---
 zh/docs/apisix/2.6/discovery/consul_kv/index.html  |  8 ++---
 zh/docs/apisix/2.6/discovery/dns/index.html        |  8 ++---
 zh/docs/apisix/2.6/discovery/eureka/index.html     |  8 ++---
 zh/docs/apisix/2.6/discovery/index.html            |  8 ++---
 zh/docs/apisix/2.6/discovery/nacos/index.html      |  8 ++---
 zh/docs/apisix/2.6/dns/index.html                  |  8 ++---
 .../index.html                                     |  8 ++---
 zh/docs/apisix/2.6/getting-started/index.html      |  8 ++---
 zh/docs/apisix/2.6/grpc-proxy/index.html           |  8 ++---
 zh/docs/apisix/2.6/health-check/index.html         |  8 ++---
 zh/docs/apisix/2.6/how-to-build/index.html         |  8 ++---
 zh/docs/apisix/2.6/https/index.html                |  8 ++---
 zh/docs/apisix/2.6/install-dependencies/index.html |  8 ++---
 zh/docs/apisix/2.6/mtls/index.html                 |  8 ++---
 zh/docs/apisix/2.6/plugin-develop/index.html       |  8 ++---
 zh/docs/apisix/2.6/plugin-interceptors/index.html  |  8 ++---
 zh/docs/apisix/2.6/plugins/api-breaker/index.html  |  8 ++---
 .../apisix/2.6/plugins/authz-keycloak/index.html   |  8 ++---
 zh/docs/apisix/2.6/plugins/basic-auth/index.html   |  8 ++---
 .../apisix/2.6/plugins/batch-requests/index.html   |  8 ++---
 .../2.6/plugins/consumer-restriction/index.html    |  8 ++---
 zh/docs/apisix/2.6/plugins/cors/index.html         |  8 ++---
 zh/docs/apisix/2.6/plugins/dubbo-proxy/index.html  |  8 ++---
 zh/docs/apisix/2.6/plugins/echo/index.html         |  8 ++---
 .../apisix/2.6/plugins/error-log-logger/index.html |  8 ++---
 .../apisix/2.6/plugins/fault-injection/index.html  |  8 ++---
 .../apisix/2.6/plugins/grpc-transcode/index.html   |  8 ++---
 zh/docs/apisix/2.6/plugins/hmac-auth/index.html    |  8 ++---
 zh/docs/apisix/2.6/plugins/http-logger/index.html  |  8 ++---
 zh/docs/apisix/2.6/plugins/index.html              |  8 ++---
 .../apisix/2.6/plugins/ip-restriction/index.html   |  8 ++---
 zh/docs/apisix/2.6/plugins/jwt-auth/index.html     |  8 ++---
 zh/docs/apisix/2.6/plugins/kafka-logger/index.html |  8 ++---
 zh/docs/apisix/2.6/plugins/key-auth/index.html     |  8 ++---
 zh/docs/apisix/2.6/plugins/limit-conn/index.html   |  8 ++---
 zh/docs/apisix/2.6/plugins/limit-count/index.html  |  8 ++---
 zh/docs/apisix/2.6/plugins/limit-req/index.html    |  8 ++---
 zh/docs/apisix/2.6/plugins/log-rotate/index.html   |  8 ++---
 zh/docs/apisix/2.6/plugins/mqtt-proxy/index.html   |  8 ++---
 zh/docs/apisix/2.6/plugins/node-status/index.html  |  8 ++---
 .../apisix/2.6/plugins/openid-connect/index.html   |  8 ++---
 zh/docs/apisix/2.6/plugins/prometheus/index.html   |  8 ++---
 zh/docs/apisix/2.6/plugins/proxy-cache/index.html  |  8 ++---
 zh/docs/apisix/2.6/plugins/proxy-mirror/index.html |  8 ++---
 .../apisix/2.6/plugins/proxy-rewrite/index.html    |  8 ++---
 zh/docs/apisix/2.6/plugins/redirect/index.html     |  8 ++---
 .../2.6/plugins/referer-restriction/index.html     |  8 ++---
 zh/docs/apisix/2.6/plugins/request-id/index.html   |  8 ++---
 .../2.6/plugins/request-validation/index.html      |  8 ++---
 .../apisix/2.6/plugins/response-rewrite/index.html |  8 ++---
 zh/docs/apisix/2.6/plugins/server-info/index.html  |  8 ++---
 zh/docs/apisix/2.6/plugins/serverless/index.html   |  8 ++---
 zh/docs/apisix/2.6/plugins/skywalking/index.html   |  8 ++---
 zh/docs/apisix/2.6/plugins/sls-logger/index.html   |  8 ++---
 zh/docs/apisix/2.6/plugins/syslog/index.html       |  8 ++---
 zh/docs/apisix/2.6/plugins/tcp-logger/index.html   |  8 ++---
 .../apisix/2.6/plugins/traffic-split/index.html    |  8 ++---
 zh/docs/apisix/2.6/plugins/udp-logger/index.html   |  8 ++---
 zh/docs/apisix/2.6/plugins/uri-blocker/index.html  |  8 ++---
 zh/docs/apisix/2.6/plugins/wolf-rbac/index.html    |  8 ++---
 zh/docs/apisix/2.6/plugins/zipkin/index.html       |  8 ++---
 zh/docs/apisix/2.6/powered-by/index.html           |  8 ++---
 zh/docs/apisix/2.6/profile/index.html              |  8 ++---
 zh/docs/apisix/2.6/router-radixtree/index.html     |  8 ++---
 zh/docs/apisix/2.6/stand-alone/index.html          |  8 ++---
 zh/docs/apisix/2.6/stream-proxy/index.html         |  8 ++---
 zh/docs/apisix/FAQ/index.html                      |  8 ++---
 zh/docs/apisix/IGNORE_DOC/index.html               |  8 ++---
 zh/docs/apisix/admin-api/index.html                |  8 ++---
 .../apisix/architecture-design/apisix/index.html   |  8 ++---
 .../apisix/architecture-design/consumer/index.html |  8 ++---
 .../architecture-design/debug-mode/index.html      |  8 ++---
 .../architecture-design/global-rule/index.html     |  8 ++---
 zh/docs/apisix/architecture-design/index.html      |  8 ++---
 .../architecture-design/plugin-config/index.html   |  8 ++---
 .../apisix/architecture-design/plugin/index.html   |  8 ++---
 .../apisix/architecture-design/route/index.html    |  8 ++---
 .../apisix/architecture-design/router/index.html   |  8 ++---
 .../apisix/architecture-design/script/index.html   |  8 ++---
 .../apisix/architecture-design/service/index.html  |  8 ++---
 .../apisix/architecture-design/upstream/index.html |  8 ++---
 zh/docs/apisix/aws/index.html                      |  8 ++---
 zh/docs/apisix/batch-processor/index.html          |  8 ++---
 zh/docs/apisix/benchmark/index.html                |  8 ++---
 zh/docs/apisix/certificate/index.html              |  8 ++---
 zh/docs/apisix/control-api/index.html              |  8 ++---
 .../customize-nginx-configuration/index.html       |  8 ++---
 zh/docs/apisix/debug-function/index.html           |  8 ++---
 zh/docs/apisix/discovery/consul_kv/index.html      |  8 ++---
 zh/docs/apisix/discovery/dns/index.html            |  8 ++---
 zh/docs/apisix/discovery/eureka/index.html         |  8 ++---
 zh/docs/apisix/discovery/index.html                |  8 ++---
 zh/docs/apisix/discovery/nacos/index.html          |  8 ++---
 zh/docs/apisix/dns/index.html                      |  8 ++---
 .../index.html                                     |  8 ++---
 zh/docs/apisix/external-plugin/index.html          |  8 ++---
 zh/docs/apisix/getting-started/index.html          |  8 ++---
 zh/docs/apisix/grpc-proxy/index.html               |  8 ++---
 zh/docs/apisix/health-check/index.html             |  8 ++---
 zh/docs/apisix/how-to-build/index.html             |  8 ++---
 zh/docs/apisix/https/index.html                    |  8 ++---
 zh/docs/apisix/install-dependencies/index.html     |  8 ++---
 zh/docs/apisix/mtls/index.html                     |  8 ++---
 zh/docs/apisix/next/FAQ/index.html                 |  8 ++---
 zh/docs/apisix/next/IGNORE_DOC/index.html          | 10 +++----
 zh/docs/apisix/next/admin-api/index.html           |  8 ++---
 .../next/architecture-design/apisix/index.html     |  8 ++---
 .../next/architecture-design/consumer/index.html   |  8 ++---
 .../next/architecture-design/debug-mode/index.html |  8 ++---
 .../architecture-design/global-rule/index.html     |  8 ++---
 zh/docs/apisix/next/architecture-design/index.html |  8 ++---
 .../architecture-design/plugin-config/index.html   |  8 ++---
 .../next/architecture-design/plugin/index.html     |  8 ++---
 .../next/architecture-design/route/index.html      |  8 ++---
 .../next/architecture-design/router/index.html     |  8 ++---
 .../next/architecture-design/script/index.html     |  8 ++---
 .../next/architecture-design/service/index.html    |  8 ++---
 .../next/architecture-design/upstream/index.html   |  8 ++---
 zh/docs/apisix/next/aws/index.html                 |  8 ++---
 zh/docs/apisix/next/batch-processor/index.html     |  8 ++---
 zh/docs/apisix/next/benchmark/index.html           |  8 ++---
 zh/docs/apisix/next/certificate/index.html         |  8 ++---
 zh/docs/apisix/next/control-api/index.html         |  8 ++---
 .../next/customize-nginx-configuration/index.html  |  8 ++---
 zh/docs/apisix/next/debug-function/index.html      |  8 ++---
 zh/docs/apisix/next/discovery/consul_kv/index.html |  8 ++---
 zh/docs/apisix/next/discovery/dns/index.html       |  8 ++---
 zh/docs/apisix/next/discovery/eureka/index.html    |  8 ++---
 zh/docs/apisix/next/discovery/index.html           |  8 ++---
 zh/docs/apisix/next/discovery/nacos/index.html     |  8 ++---
 zh/docs/apisix/next/dns/index.html                 |  8 ++---
 .../index.html                                     |  8 ++---
 zh/docs/apisix/next/external-plugin/index.html     |  8 ++---
 zh/docs/apisix/next/getting-started/index.html     |  8 ++---
 zh/docs/apisix/next/grpc-proxy/index.html          |  8 ++---
 zh/docs/apisix/next/health-check/index.html        |  8 ++---
 zh/docs/apisix/next/how-to-build/index.html        |  8 ++---
 zh/docs/apisix/next/https/index.html               |  8 ++---
 .../apisix/next/install-dependencies/index.html    |  8 ++---
 zh/docs/apisix/next/mtls/index.html                |  8 ++---
 zh/docs/apisix/next/plugin-develop/index.html      |  8 ++---
 zh/docs/apisix/next/plugin-interceptors/index.html |  8 ++---
 zh/docs/apisix/next/plugins/api-breaker/index.html |  8 ++---
 .../apisix/next/plugins/authz-keycloak/index.html  |  8 ++---
 zh/docs/apisix/next/plugins/basic-auth/index.html  |  8 ++---
 .../apisix/next/plugins/batch-requests/index.html  |  8 ++---
 .../apisix/next/plugins/client-control/index.html  |  8 ++---
 .../next/plugins/consumer-restriction/index.html   |  8 ++---
 zh/docs/apisix/next/plugins/cors/index.html        |  8 ++---
 zh/docs/apisix/next/plugins/dubbo-proxy/index.html |  8 ++---
 zh/docs/apisix/next/plugins/echo/index.html        |  8 ++---
 .../next/plugins/error-log-logger/index.html       |  8 ++---
 .../next/plugins/ext-plugin-post-req/index.html    |  8 ++---
 .../next/plugins/ext-plugin-pre-req/index.html     |  8 ++---
 .../apisix/next/plugins/fault-injection/index.html |  8 ++---
 .../apisix/next/plugins/grpc-transcode/index.html  |  8 ++---
 zh/docs/apisix/next/plugins/hmac-auth/index.html   |  8 ++---
 zh/docs/apisix/next/plugins/http-logger/index.html |  8 ++---
 zh/docs/apisix/next/plugins/index.html             |  8 ++---
 .../apisix/next/plugins/ip-restriction/index.html  |  8 ++---
 zh/docs/apisix/next/plugins/jwt-auth/index.html    |  8 ++---
 .../apisix/next/plugins/kafka-logger/index.html    |  8 ++---
 zh/docs/apisix/next/plugins/key-auth/index.html    |  8 ++---
 zh/docs/apisix/next/plugins/limit-conn/index.html  |  8 ++---
 zh/docs/apisix/next/plugins/limit-count/index.html |  8 ++---
 zh/docs/apisix/next/plugins/limit-req/index.html   |  8 ++---
 zh/docs/apisix/next/plugins/log-rotate/index.html  |  8 ++---
 zh/docs/apisix/next/plugins/mqtt-proxy/index.html  |  8 ++---
 zh/docs/apisix/next/plugins/node-status/index.html |  8 ++---
 .../apisix/next/plugins/openid-connect/index.html  |  8 ++---
 zh/docs/apisix/next/plugins/prometheus/index.html  |  8 ++---
 zh/docs/apisix/next/plugins/proxy-cache/index.html |  8 ++---
 .../apisix/next/plugins/proxy-mirror/index.html    |  8 ++---
 .../apisix/next/plugins/proxy-rewrite/index.html   |  8 ++---
 zh/docs/apisix/next/plugins/redirect/index.html    |  8 ++---
 .../next/plugins/referer-restriction/index.html    |  8 ++---
 zh/docs/apisix/next/plugins/request-id/index.html  |  8 ++---
 .../next/plugins/request-validation/index.html     |  8 ++---
 .../next/plugins/response-rewrite/index.html       |  8 ++---
 zh/docs/apisix/next/plugins/server-info/index.html |  8 ++---
 zh/docs/apisix/next/plugins/serverless/index.html  |  8 ++---
 zh/docs/apisix/next/plugins/skywalking/index.html  |  8 ++---
 zh/docs/apisix/next/plugins/sls-logger/index.html  |  8 ++---
 zh/docs/apisix/next/plugins/syslog/index.html      |  8 ++---
 zh/docs/apisix/next/plugins/tcp-logger/index.html  |  8 ++---
 .../apisix/next/plugins/traffic-split/index.html   |  8 ++---
 zh/docs/apisix/next/plugins/udp-logger/index.html  |  8 ++---
 zh/docs/apisix/next/plugins/uri-blocker/index.html |  8 ++---
 zh/docs/apisix/next/plugins/wolf-rbac/index.html   |  8 ++---
 zh/docs/apisix/next/plugins/zipkin/index.html      |  8 ++---
 zh/docs/apisix/next/powered-by/index.html          |  8 ++---
 zh/docs/apisix/next/profile/index.html             |  8 ++---
 zh/docs/apisix/next/router-radixtree/index.html    |  8 ++---
 zh/docs/apisix/next/stand-alone/index.html         |  8 ++---
 zh/docs/apisix/next/stream-proxy/index.html        |  8 ++---
 zh/docs/apisix/plugin-develop/index.html           |  8 ++---
 zh/docs/apisix/plugin-interceptors/index.html      |  8 ++---
 zh/docs/apisix/plugins/api-breaker/index.html      |  8 ++---
 zh/docs/apisix/plugins/authz-keycloak/index.html   |  8 ++---
 zh/docs/apisix/plugins/basic-auth/index.html       |  8 ++---
 zh/docs/apisix/plugins/batch-requests/index.html   |  8 ++---
 zh/docs/apisix/plugins/client-control/index.html   |  8 ++---
 .../apisix/plugins/consumer-restriction/index.html |  8 ++---
 zh/docs/apisix/plugins/cors/index.html             |  8 ++---
 zh/docs/apisix/plugins/dubbo-proxy/index.html      |  8 ++---
 zh/docs/apisix/plugins/echo/index.html             |  8 ++---
 zh/docs/apisix/plugins/error-log-logger/index.html |  8 ++---
 .../apisix/plugins/ext-plugin-post-req/index.html  |  8 ++---
 .../apisix/plugins/ext-plugin-pre-req/index.html   |  8 ++---
 zh/docs/apisix/plugins/fault-injection/index.html  |  8 ++---
 zh/docs/apisix/plugins/grpc-transcode/index.html   |  8 ++---
 zh/docs/apisix/plugins/hmac-auth/index.html        |  8 ++---
 zh/docs/apisix/plugins/http-logger/index.html      |  8 ++---
 zh/docs/apisix/plugins/index.html                  |  8 ++---
 zh/docs/apisix/plugins/ip-restriction/index.html   |  8 ++---
 zh/docs/apisix/plugins/jwt-auth/index.html         |  8 ++---
 zh/docs/apisix/plugins/kafka-logger/index.html     |  8 ++---
 zh/docs/apisix/plugins/key-auth/index.html         |  8 ++---
 zh/docs/apisix/plugins/limit-conn/index.html       |  8 ++---
 zh/docs/apisix/plugins/limit-count/index.html      |  8 ++---
 zh/docs/apisix/plugins/limit-req/index.html        |  8 ++---
 zh/docs/apisix/plugins/log-rotate/index.html       |  8 ++---
 zh/docs/apisix/plugins/mqtt-proxy/index.html       |  8 ++---
 zh/docs/apisix/plugins/node-status/index.html      |  8 ++---
 zh/docs/apisix/plugins/openid-connect/index.html   |  8 ++---
 zh/docs/apisix/plugins/prometheus/index.html       |  8 ++---
 zh/docs/apisix/plugins/proxy-cache/index.html      |  8 ++---
 zh/docs/apisix/plugins/proxy-mirror/index.html     |  8 ++---
 zh/docs/apisix/plugins/proxy-rewrite/index.html    |  8 ++---
 zh/docs/apisix/plugins/redirect/index.html         |  8 ++---
 .../apisix/plugins/referer-restriction/index.html  |  8 ++---
 zh/docs/apisix/plugins/request-id/index.html       |  8 ++---
 .../apisix/plugins/request-validation/index.html   |  8 ++---
 zh/docs/apisix/plugins/response-rewrite/index.html |  8 ++---
 zh/docs/apisix/plugins/server-info/index.html      |  8 ++---
 zh/docs/apisix/plugins/serverless/index.html       |  8 ++---
 zh/docs/apisix/plugins/skywalking/index.html       |  8 ++---
 zh/docs/apisix/plugins/sls-logger/index.html       |  8 ++---
 zh/docs/apisix/plugins/syslog/index.html           |  8 ++---
 zh/docs/apisix/plugins/tcp-logger/index.html       |  8 ++---
 zh/docs/apisix/plugins/traffic-split/index.html    |  8 ++---
 zh/docs/apisix/plugins/udp-logger/index.html       |  8 ++---
 zh/docs/apisix/plugins/uri-blocker/index.html      |  8 ++---
 zh/docs/apisix/plugins/wolf-rbac/index.html        |  8 ++---
 zh/docs/apisix/plugins/zipkin/index.html           |  8 ++---
 zh/docs/apisix/powered-by/index.html               |  8 ++---
 zh/docs/apisix/profile/index.html                  |  8 ++---
 zh/docs/apisix/router-radixtree/index.html         |  8 ++---
 zh/docs/apisix/stand-alone/index.html              |  8 ++---
 zh/docs/apisix/stream-proxy/index.html             |  8 ++---
 zh/docs/dashboard/2.5/FAQ/index.html               |  8 ++---
 zh/docs/dashboard/2.5/I18N_USER_GUIDE/index.html   |  8 ++---
 zh/docs/dashboard/2.5/IGNORE_DOC/index.html        |  8 ++---
 .../2.5/IMPORT_OPENAPI_USER_GUIDE/index.html       |  8 ++---
 zh/docs/dashboard/2.5/USER_GUIDE/index.html        |  8 ++---
 zh/docs/dashboard/2.5/api/api/index.html           |  8 ++---
 zh/docs/dashboard/2.5/back-end-tests/index.html    |  8 ++---
 .../dashboard/2.5/deploy-with-docker/index.html    |  8 ++---
 zh/docs/dashboard/2.5/deploy-with-rpm/index.html   |  8 ++---
 zh/docs/dashboard/2.5/deploy/index.html            |  8 ++---
 zh/docs/dashboard/2.5/develop/index.html           |  8 ++---
 zh/docs/dashboard/2.5/front-end-e2e/index.html     |  8 ++---
 zh/docs/dashboard/2.6.1/FAQ/index.html             |  8 ++---
 zh/docs/dashboard/2.6.1/I18N_USER_GUIDE/index.html |  8 ++---
 zh/docs/dashboard/2.6.1/IGNORE_DOC/index.html      |  8 ++---
 .../2.6.1/IMPORT_OPENAPI_USER_GUIDE/index.html     |  8 ++---
 zh/docs/dashboard/2.6.1/USER_GUIDE/index.html      |  8 ++---
 zh/docs/dashboard/2.6.1/api/api/index.html         |  8 ++---
 zh/docs/dashboard/2.6.1/back-end-tests/index.html  |  8 ++---
 .../dashboard/2.6.1/deploy-with-docker/index.html  |  8 ++---
 zh/docs/dashboard/2.6.1/deploy-with-rpm/index.html |  8 ++---
 zh/docs/dashboard/2.6.1/deploy/index.html          |  8 ++---
 zh/docs/dashboard/2.6.1/develop/index.html         |  8 ++---
 zh/docs/dashboard/2.6.1/front-end-e2e/index.html   |  8 ++---
 zh/docs/dashboard/2.6/FAQ/index.html               |  8 ++---
 zh/docs/dashboard/2.6/I18N_USER_GUIDE/index.html   |  8 ++---
 zh/docs/dashboard/2.6/IGNORE_DOC/index.html        |  8 ++---
 .../2.6/IMPORT_OPENAPI_USER_GUIDE/index.html       |  8 ++---
 zh/docs/dashboard/2.6/USER_GUIDE/index.html        |  8 ++---
 zh/docs/dashboard/2.6/api/api/index.html           |  8 ++---
 zh/docs/dashboard/2.6/back-end-tests/index.html    |  8 ++---
 .../dashboard/2.6/deploy-with-docker/index.html    |  8 ++---
 zh/docs/dashboard/2.6/deploy-with-rpm/index.html   |  8 ++---
 zh/docs/dashboard/2.6/deploy/index.html            |  8 ++---
 zh/docs/dashboard/2.6/develop/index.html           |  8 ++---
 zh/docs/dashboard/2.6/front-end-e2e/index.html     |  8 ++---
 zh/docs/dashboard/FAQ/index.html                   |  8 ++---
 zh/docs/dashboard/I18N_USER_GUIDE/index.html       |  8 ++---
 zh/docs/dashboard/IGNORE_DOC/index.html            |  8 ++---
 .../dashboard/IMPORT_OPENAPI_USER_GUIDE/index.html |  8 ++---
 zh/docs/dashboard/USER_GUIDE/index.html            |  8 ++---
 zh/docs/dashboard/api/api/index.html               |  8 ++---
 zh/docs/dashboard/back-end-tests/index.html        |  8 ++---
 zh/docs/dashboard/deploy-with-docker/index.html    |  8 ++---
 zh/docs/dashboard/deploy-with-rpm/index.html       |  8 ++---
 zh/docs/dashboard/deploy/index.html                |  8 ++---
 zh/docs/dashboard/develop/index.html               |  8 ++---
 zh/docs/dashboard/front-end-e2e/index.html         |  8 ++---
 zh/docs/dashboard/next/FAQ/index.html              |  8 ++---
 zh/docs/dashboard/next/I18N_USER_GUIDE/index.html  |  8 ++---
 zh/docs/dashboard/next/IGNORE_DOC/index.html       | 10 +++----
 .../next/IMPORT_OPENAPI_USER_GUIDE/index.html      |  8 ++---
 zh/docs/dashboard/next/USER_GUIDE/index.html       |  8 ++---
 zh/docs/dashboard/next/api/api/index.html          |  8 ++---
 zh/docs/dashboard/next/back-end-tests/index.html   |  8 ++---
 .../dashboard/next/deploy-with-docker/index.html   |  8 ++---
 zh/docs/dashboard/next/deploy-with-rpm/index.html  |  8 ++---
 zh/docs/dashboard/next/deploy/index.html           |  8 ++---
 zh/docs/dashboard/next/develop/index.html          |  8 ++---
 zh/docs/dashboard/next/front-end-e2e/index.html    |  8 ++---
 zh/docs/docker/IGNORE_DOC/index.html               | 10 +++----
 zh/docs/docker/build/index.html                    |  8 ++---
 zh/docs/docker/example/index.html                  |  8 ++---
 zh/docs/docker/manual/index.html                   |  8 ++---
 zh/docs/general/2fa/index.html                     | 10 +++----
 zh/docs/general/committer-guide/index.html         | 10 +++----
 zh/docs/general/contributor-guide/index.html       | 10 +++----
 .../general/integrate-with-project-docs/index.html | 10 +++----
 zh/docs/general/release-guide/index.html           | 10 +++----
 zh/docs/general/security/index.html                | 10 +++----
 zh/docs/general/subscribe-guide/index.html         | 10 +++----
 zh/docs/helm-chart/IGNORE_DOC/index.html           | 10 +++----
 zh/docs/helm-chart/apisix-dashboard/index.html     |  8 ++---
 .../apisix-ingress-controller/index.html           |  8 ++---
 zh/docs/helm-chart/apisix/index.html               |  8 ++---
 zh/docs/index.html                                 |  8 ++---
 zh/docs/ingress-controller/FAQ/index.html          |  8 ++---
 zh/docs/ingress-controller/IGNORE_DOC/index.html   | 10 +++----
 .../concepts/annotations/index.html                |  8 ++---
 .../concepts/apisix_cluster_config/index.html      |  8 ++---
 .../concepts/apisix_route/index.html               |  8 ++---
 .../concepts/apisix_tls/index.html                 |  8 ++---
 .../concepts/apisix_upstream/index.html            |  8 ++---
 zh/docs/ingress-controller/contribute/index.html   |  8 ++---
 .../ingress-controller/deployments/ack/index.html  |  8 ++---
 .../ingress-controller/deployments/aws/index.html  |  8 ++---
 .../deployments/azure/index.html                   |  8 ++---
 .../ingress-controller/deployments/gke/index.html  |  8 ++---
 .../deployments/k3s-rke/index.html                 |  8 ++---
 .../deployments/kubesphere/index.html              |  8 ++---
 .../deployments/minikube/index.html                |  8 ++---
 .../ingress-controller/deployments/tke/index.html  |  8 ++---
 zh/docs/ingress-controller/design/index.html       |  8 ++---
 zh/docs/ingress-controller/development/index.html  |  8 ++---
 .../ingress-controller/getting-started/index.html  |  8 ++---
 .../practices/check-crd-status/index.html          |  8 ++---
 .../ingress-controller/practices/index/index.html  |  8 ++---
 .../ingress-controller/practices/mtls/index.html   |  8 ++---
 .../index.html                                     |  8 ++---
 .../practices/proxy-the-httpbin-service/index.html |  8 ++---
 .../practices/the-hard-way/index.html              |  8 ++---
 .../references/apisix_cluster_config/index.html    |  8 ++---
 .../references/apisix_route_v1/index.html          |  8 ++---
 .../references/apisix_route_v2alpha1/index.html    |  8 ++---
 .../references/apisix_tls/index.html               |  8 ++---
 .../references/apisix_upstream/index.html          |  8 ++---
 zh/docs/java-plugin-runner/IGNORE_DOC/index.html   | 12 ++++----
 zh/docs/java-plugin-runner/development/index.html  | 12 ++++----
 zh/docs/java-plugin-runner/how-it-works/index.html | 12 ++++----
 .../java-plugin-runner/next/IGNORE_DOC/index.html  | 27 +++++++++++++++++
 .../java-plugin-runner/next/development/index.html | 34 ++++++++++++++++++++++
 .../{ => next}/how-it-works/index.html             | 14 ++++-----
 .../index.html                                     | 33 +++++++++++++++++++++
 .../index.html                                     | 12 ++++----
 zh/downloads/ProjectCard/index.html                |  8 ++---
 zh/downloads/index.html                            |  8 ++---
 .../index.html                                     |  8 ++---
 .../index.html                                     |  8 ++---
 .../02/09/release-apache-apisix-2.3/index.html     |  8 ++---
 .../index.html                                     |  8 ++---
 .../release-apache-apisix-dashboard-2.4/index.html |  8 ++---
 .../03/05/release-apache-apisix-2.4/index.html     |  8 ++---
 .../index.html                                     |  8 ++---
 .../04/05/release-apache-apisix-2.5/index.html     |  8 ++---
 .../index.html                                     |  8 ++---
 .../release-apache-apisix-dashboard-2.6/index.html |  8 ++---
 .../05/24/release-apache-apisix-2.6/index.html     |  8 ++---
 .../index.html                                     |  8 ++---
 .../release-apache-apisix-dashboard-2.7/index.html |  8 ++---
 .../06/25/release-apache-apisix-2.7/index.html     |  8 ++---
 zh/events/index.html                               |  8 ++---
 zh/events/page/2/index.html                        |  8 ++---
 zh/help/index.html                                 |  8 ++---
 zh/index.html                                      |  8 ++---
 zh/search/index.html                               | 10 +++----
 zh/sitemap.xml                                     |  2 +-
 zh/team/index.html                                 |  8 ++---
 1266 files changed, 4998 insertions(+), 4886 deletions(-)

diff --git a/404.html b/404.html
index dfec3b3..3e72280 100644
--- a/404.html
+++ b/404.html
@@ -15,13 +15,13 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Page Not Found | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Page Not Found | Apache APISIX™"><meta data-react-helmet="true" property="og:image" content="https://apisix.apache.org//img/favicon.png"><meta data-react-helmet="true" name="twitter:image" content="https://apisix.apache.org//img/favicon.png"> [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/assets/js/0436cf63.a2674fdc.js b/assets/js/0436cf63.a2674fdc.js
new file mode 100644
index 0000000..5d706bd
--- /dev/null
+++ b/assets/js/0436cf63.a2674fdc.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[48962],{3905:function(e,n,t){"use strict";t.d(n,{Zo:function(){return s},kt:function(){return m}});var r=t(67294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t [...]
\ No newline at end of file
diff --git a/assets/js/19945770.66719b0c.js b/assets/js/19945770.66719b0c.js
new file mode 100644
index 0000000..199d8b2
--- /dev/null
+++ b/assets/js/19945770.66719b0c.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[55067],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return p},kt:function(){return f}});var r=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n [...]
\ No newline at end of file
diff --git a/assets/js/19945770.e639baff.js b/assets/js/19945770.e639baff.js
deleted file mode 100644
index 43915da..0000000
--- a/assets/js/19945770.e639baff.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunk=self.webpackChunk||[]).push([[55067],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return p},kt:function(){return f}});var r=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n [...]
\ No newline at end of file
diff --git a/assets/js/20303563.0a471863.js b/assets/js/20303563.0a471863.js
deleted file mode 100644
index d4f5632..0000000
--- a/assets/js/20303563.0a471863.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunk=self.webpackChunk||[]).push([[38993],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return o},kt:function(){return g}});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n [...]
\ No newline at end of file
diff --git a/assets/js/20303563.b795ac01.js b/assets/js/20303563.b795ac01.js
new file mode 100644
index 0000000..985c105
--- /dev/null
+++ b/assets/js/20303563.b795ac01.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[38993],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return s},kt:function(){return g}});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n [...]
\ No newline at end of file
diff --git a/assets/js/2d8fe9ee.4711d6b9.js b/assets/js/2d8fe9ee.4711d6b9.js
deleted file mode 100644
index 607a06a..0000000
--- a/assets/js/2d8fe9ee.4711d6b9.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunk=self.webpackChunk||[]).push([[58898],{66353:function(e){"use strict";e.exports=JSON.parse('{"title":"Recent posts","items":[{"title":"Apache APISIX 2.7.0-Release \u6b63\u5f0f\u53d1\u5e03","permalink":"/blog/2021/06/25/release-apache-apisix-2.7"},{"title":"Rancher \xd7 Apache APISIX: \u6781\u901f\u90e8\u7f72\u66f4\u597d\u7528\u7684\u5f00\u6e90\u7f51\u5173\u548c Ingress Controller","permalink":"/blog/2021/06/23/deploy-great-open-source-gateway-and-ingress-controller-fast [...]
\ No newline at end of file
diff --git a/assets/js/2d8fe9ee.cbac2130.js b/assets/js/2d8fe9ee.cbac2130.js
new file mode 100644
index 0000000..12c89cd
--- /dev/null
+++ b/assets/js/2d8fe9ee.cbac2130.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[58898],{66353:function(e){"use strict";e.exports=JSON.parse('{"title":"Recent posts","items":[{"title":"Rancher \xd7 Apache APISIX: \u6781\u901f\u90e8\u7f72\u66f4\u597d\u7528\u7684\u5f00\u6e90\u7f51\u5173\u548c Ingress Controller","permalink":"/blog/2021/06/23/deploy-great-open-source-gateway-and-ingress-controller-fast"},{"title":"\u4f7f\u7528 Java \u7f16\u5199 Apache APISIX \u63d2\u4ef6","permalink":"/blog/2021/06/21/use-Java-to-write-Ap [...]
\ No newline at end of file
diff --git a/assets/js/2ebb7cd9.6ef3f39f.js b/assets/js/2ebb7cd9.6ef3f39f.js
deleted file mode 100644
index 197b62f..0000000
--- a/assets/js/2ebb7cd9.6ef3f39f.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunk=self.webpackChunk||[]).push([[24116],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return c},kt:function(){return h}});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n [...]
\ No newline at end of file
diff --git a/assets/js/3393d167.b7dd95aa.js b/assets/js/3393d167.a31ad98b.js
similarity index 89%
rename from assets/js/3393d167.b7dd95aa.js
rename to assets/js/3393d167.a31ad98b.js
index 0814f04..46453c4 100644
--- a/assets/js/3393d167.b7dd95aa.js
+++ b/assets/js/3393d167.a31ad98b.js
@@ -1 +1 @@
-(self.webpackChunk=self.webpackChunk||[]).push([[27314],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return s},kt:function(){return d}});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r [...]
\ No newline at end of file
+(self.webpackChunk=self.webpackChunk||[]).push([[27314],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return s},kt:function(){return d}});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r [...]
\ No newline at end of file
diff --git a/assets/js/358566b4.380fc203.js b/assets/js/358566b4.c0a2fb37.js
similarity index 90%
rename from assets/js/358566b4.380fc203.js
rename to assets/js/358566b4.c0a2fb37.js
index 16ad208..4c69ebd 100644
--- a/assets/js/358566b4.380fc203.js
+++ b/assets/js/358566b4.c0a2fb37.js
@@ -1 +1 @@
-(self.webpackChunk=self.webpackChunk||[]).push([[13553],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return l},kt:function(){return d}});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r [...]
\ No newline at end of file
+(self.webpackChunk=self.webpackChunk||[]).push([[13553],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return l},kt:function(){return d}});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r [...]
\ No newline at end of file
diff --git a/assets/js/3dc9f306.deb1be3e.js b/assets/js/3dc9f306.1b7864fe.js
similarity index 55%
rename from assets/js/3dc9f306.deb1be3e.js
rename to assets/js/3dc9f306.1b7864fe.js
index 62c2b92..6f4d881 100644
--- a/assets/js/3dc9f306.deb1be3e.js
+++ b/assets/js/3dc9f306.1b7864fe.js
@@ -1 +1 @@
-(self.webpackChunk=self.webpackChunk||[]).push([[38393],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return s},kt:function(){return f}});var r=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n [...]
\ No newline at end of file
+(self.webpackChunk=self.webpackChunk||[]).push([[38393],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return s},kt:function(){return f}});var r=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n [...]
\ No newline at end of file
diff --git a/assets/js/40fb2fae.1451f9af.js b/assets/js/40fb2fae.0f71a7ce.js
similarity index 89%
rename from assets/js/40fb2fae.1451f9af.js
rename to assets/js/40fb2fae.0f71a7ce.js
index 2d0ae8f..75ca227 100644
--- a/assets/js/40fb2fae.1451f9af.js
+++ b/assets/js/40fb2fae.0f71a7ce.js
@@ -1 +1 @@
-(self.webpackChunk=self.webpackChunk||[]).push([[32547],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return l},kt:function(){return m}});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r [...]
\ No newline at end of file
+(self.webpackChunk=self.webpackChunk||[]).push([[32547],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return l},kt:function(){return m}});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r [...]
\ No newline at end of file
diff --git a/assets/js/4c20006b.e58fbd93.js b/assets/js/4c20006b.be760fc5.js
similarity index 84%
rename from assets/js/4c20006b.e58fbd93.js
rename to assets/js/4c20006b.be760fc5.js
index 4456ead..843c61d 100644
--- a/assets/js/4c20006b.e58fbd93.js
+++ b/assets/js/4c20006b.be760fc5.js
@@ -1 +1 @@
-(self.webpackChunk=self.webpackChunk||[]).push([[91012],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return l},kt:function(){return O}});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r [...]
\ No newline at end of file
+(self.webpackChunk=self.webpackChunk||[]).push([[91012],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return l},kt:function(){return O}});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r [...]
\ No newline at end of file
diff --git a/assets/js/4e7ac528.0a8092da.js b/assets/js/4e7ac528.0a8092da.js
new file mode 100644
index 0000000..70feaad
--- /dev/null
+++ b/assets/js/4e7ac528.0a8092da.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[90596],{3905:function(e,n,t){"use strict";t.d(n,{Zo:function(){return c},kt:function(){return m}});var r=t(67294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t [...]
\ No newline at end of file
diff --git a/assets/js/4e7ac528.ff0dea2e.js b/assets/js/4e7ac528.ff0dea2e.js
deleted file mode 100644
index 3c57d62..0000000
--- a/assets/js/4e7ac528.ff0dea2e.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunk=self.webpackChunk||[]).push([[90596],{3905:function(e,n,t){"use strict";t.d(n,{Zo:function(){return c},kt:function(){return m}});var r=t(67294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t [...]
\ No newline at end of file
diff --git a/assets/js/50facf8e.bd5cecaa.js b/assets/js/50facf8e.efc94831.js
similarity index 57%
rename from assets/js/50facf8e.bd5cecaa.js
rename to assets/js/50facf8e.efc94831.js
index 89c925d..a48eca4 100644
--- a/assets/js/50facf8e.bd5cecaa.js
+++ b/assets/js/50facf8e.efc94831.js
@@ -1 +1 @@
-(self.webpackChunk=self.webpackChunk||[]).push([[87974],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return u},kt:function(){return d}});var i=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r [...]
\ No newline at end of file
+(self.webpackChunk=self.webpackChunk||[]).push([[87974],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return u},kt:function(){return d}});var i=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r [...]
\ No newline at end of file
diff --git a/assets/js/601c6eaa.eac0024c.js b/assets/js/601c6eaa.d8986d25.js
similarity index 84%
rename from assets/js/601c6eaa.eac0024c.js
rename to assets/js/601c6eaa.d8986d25.js
index e9319af..916ed6d 100644
--- a/assets/js/601c6eaa.eac0024c.js
+++ b/assets/js/601c6eaa.d8986d25.js
@@ -1 +1 @@
-(self.webpackChunk=self.webpackChunk||[]).push([[97117],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return l},kt:function(){return O}});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r [...]
\ No newline at end of file
+(self.webpackChunk=self.webpackChunk||[]).push([[97117],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return l},kt:function(){return O}});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r [...]
\ No newline at end of file
diff --git a/assets/js/66fbb9c2.138e0255.js b/assets/js/66fbb9c2.79a27488.js
similarity index 57%
rename from assets/js/66fbb9c2.138e0255.js
rename to assets/js/66fbb9c2.79a27488.js
index 41deaac..1d0dfff 100644
--- a/assets/js/66fbb9c2.138e0255.js
+++ b/assets/js/66fbb9c2.79a27488.js
@@ -1 +1 @@
-(self.webpackChunk=self.webpackChunk||[]).push([[7668],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return l},kt:function(){return y}});var n=r(67294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r, [...]
\ No newline at end of file
+(self.webpackChunk=self.webpackChunk||[]).push([[7668],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return p},kt:function(){return y}});var n=r(67294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r, [...]
\ No newline at end of file
diff --git a/assets/js/6f487a38.6fa199b6.js b/assets/js/6f487a38.6fa199b6.js
new file mode 100644
index 0000000..5ae7d4e
--- /dev/null
+++ b/assets/js/6f487a38.6fa199b6.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[11406],{64089:function(n){"use strict";n.exports=JSON.parse('{"pluginId":"docs-apisix-java-plugin-runner","version":"0.1","label":"0.1","isLast":true,"docsSidebars":{"version-0.1/docs":[{"type":"link","label":"Development","href":"/docs/java-plugin-runner/development"},{"type":"link","label":"How it works","href":"/docs/java-plugin-runner/how-it-works"},{"type":"link","label":"The internal of apisix java plugin runner","href":"/docs/java-p [...]
\ No newline at end of file
diff --git a/assets/js/7af3052c.31b8afd9.js b/assets/js/7af3052c.31b8afd9.js
deleted file mode 100644
index 34fb13c..0000000
--- a/assets/js/7af3052c.31b8afd9.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunk=self.webpackChunk||[]).push([[25032],{3905:function(e,a,t){"use strict";t.d(a,{Zo:function(){return d},kt:function(){return u}});var n=t(67294);function i(e,a,t){return a in e?Object.defineProperty(e,a,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[a]=t,e}function r(e,a){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);a&&(n=n.filter((function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),t.push.apply(t [...]
\ No newline at end of file
diff --git a/assets/js/7af3052c.d4d683c5.js b/assets/js/7af3052c.d4d683c5.js
new file mode 100644
index 0000000..62a9153
--- /dev/null
+++ b/assets/js/7af3052c.d4d683c5.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[25032],{3905:function(e,a,t){"use strict";t.d(a,{Zo:function(){return d},kt:function(){return u}});var n=t(67294);function i(e,a,t){return a in e?Object.defineProperty(e,a,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[a]=t,e}function r(e,a){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);a&&(n=n.filter((function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),t.push.apply(t [...]
\ No newline at end of file
diff --git a/assets/js/8762737c.caefc176.js b/assets/js/8762737c.caefc176.js
deleted file mode 100644
index 7cf4a7e..0000000
--- a/assets/js/8762737c.caefc176.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunk=self.webpackChunk||[]).push([[22104],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return l},kt:function(){return m}});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r [...]
\ No newline at end of file
diff --git a/assets/js/8e784bf3.273df94c.js b/assets/js/8e784bf3.273df94c.js
deleted file mode 100644
index 4dcb578..0000000
--- a/assets/js/8e784bf3.273df94c.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunk=self.webpackChunk||[]).push([[78216],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return m},kt:function(){return d}});var r=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n [...]
\ No newline at end of file
diff --git a/assets/js/8e784bf3.53c92c3b.js b/assets/js/8e784bf3.53c92c3b.js
new file mode 100644
index 0000000..50cd7de
--- /dev/null
+++ b/assets/js/8e784bf3.53c92c3b.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[78216],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return m},kt:function(){return d}});var r=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n [...]
\ No newline at end of file
diff --git a/assets/js/8eb4e46b.0a14448c.js b/assets/js/8eb4e46b.d86748b8.js
similarity index 67%
rename from assets/js/8eb4e46b.0a14448c.js
rename to assets/js/8eb4e46b.d86748b8.js
index 8a3aebd..ade26c8 100644
--- a/assets/js/8eb4e46b.0a14448c.js
+++ b/assets/js/8eb4e46b.d86748b8.js
@@ -1 +1 @@
-(self.webpackChunk=self.webpackChunk||[]).push([[10001],{61421:function(e){"use strict";e.exports=JSON.parse('{"permalink":"/blog/page/2","page":2,"postsPerPage":10,"totalPages":2,"totalCount":18,"previousPage":"/blog","nextPage":null,"blogDescription":"Blog","blogTitle":"Blog"}')}}]);
\ No newline at end of file
+(self.webpackChunk=self.webpackChunk||[]).push([[10001],{61421:function(e){"use strict";e.exports=JSON.parse('{"permalink":"/blog/page/2","page":2,"postsPerPage":10,"totalPages":2,"totalCount":17,"previousPage":"/blog","nextPage":null,"blogDescription":"Blog","blogTitle":"Blog"}')}}]);
\ No newline at end of file
diff --git a/assets/js/9ce9a606.762b9a04.js b/assets/js/9ce9a606.762b9a04.js
new file mode 100644
index 0000000..d8ec0cc
--- /dev/null
+++ b/assets/js/9ce9a606.762b9a04.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[14897],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return s},kt:function(){return d}});var r=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n [...]
\ No newline at end of file
diff --git a/assets/js/9e346bbc.0d60ba86.js b/assets/js/9e346bbc.0d60ba86.js
new file mode 100644
index 0000000..cd2aa67
--- /dev/null
+++ b/assets/js/9e346bbc.0d60ba86.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[13927],{3905:function(e,n,t){"use strict";t.d(n,{Zo:function(){return s},kt:function(){return m}});var r=t(67294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t [...]
\ No newline at end of file
diff --git a/assets/js/9e346bbc.5af86188.js b/assets/js/9e346bbc.5af86188.js
deleted file mode 100644
index 05f1e3b..0000000
--- a/assets/js/9e346bbc.5af86188.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunk=self.webpackChunk||[]).push([[13927],{3905:function(e,n,t){"use strict";t.d(n,{Zo:function(){return s},kt:function(){return m}});var r=t(67294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t [...]
\ No newline at end of file
diff --git a/assets/js/adbb350b.1efb5399.js b/assets/js/adbb350b.1efb5399.js
deleted file mode 100644
index cb5b4c9..0000000
--- a/assets/js/adbb350b.1efb5399.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunk=self.webpackChunk||[]).push([[85427],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return p},kt:function(){return d}});var i=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r [...]
\ No newline at end of file
diff --git a/assets/js/adbb350b.ad53642e.js b/assets/js/adbb350b.ad53642e.js
new file mode 100644
index 0000000..4b9404c
--- /dev/null
+++ b/assets/js/adbb350b.ad53642e.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[85427],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return p},kt:function(){return d}});var i=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r [...]
\ No newline at end of file
diff --git a/assets/js/b2b675dd.6ed61664.js b/assets/js/b2b675dd.80b31116.js
similarity index 67%
rename from assets/js/b2b675dd.6ed61664.js
rename to assets/js/b2b675dd.80b31116.js
index 9a4635b..9cf7402 100644
--- a/assets/js/b2b675dd.6ed61664.js
+++ b/assets/js/b2b675dd.80b31116.js
@@ -1 +1 @@
-(self.webpackChunk=self.webpackChunk||[]).push([[90533],{2383:function(e){"use strict";e.exports=JSON.parse('{"permalink":"/blog","page":1,"postsPerPage":10,"totalPages":2,"totalCount":18,"previousPage":null,"nextPage":"/blog/page/2","blogDescription":"Blog","blogTitle":"Blog"}')}}]);
\ No newline at end of file
+(self.webpackChunk=self.webpackChunk||[]).push([[90533],{2383:function(e){"use strict";e.exports=JSON.parse('{"permalink":"/blog","page":1,"postsPerPage":10,"totalPages":2,"totalCount":17,"previousPage":null,"nextPage":"/blog/page/2","blogDescription":"Blog","blogTitle":"Blog"}')}}]);
\ No newline at end of file
diff --git a/assets/js/ca1759fb.fa133f43.js b/assets/js/ca1759fb.fa133f43.js
new file mode 100644
index 0000000..9ab98e4
--- /dev/null
+++ b/assets/js/ca1759fb.fa133f43.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[37100],{3905:function(e,r,n){"use strict";n.d(r,{Zo:function(){return l},kt:function(){return O}});var t=n(67294);function o(e,r,n){return r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n,e}function c(e,r){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r&&(t=t.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),n.push.apply(n [...]
\ No newline at end of file
diff --git a/assets/js/cee7ae10.3c5372e6.js b/assets/js/cee7ae10.3c5372e6.js
deleted file mode 100644
index b4fdeed..0000000
--- a/assets/js/cee7ae10.3c5372e6.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunk=self.webpackChunk||[]).push([[5039],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return s},kt:function(){return d}});var r=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n, [...]
\ No newline at end of file
diff --git a/assets/js/cee7ae10.e33d2178.js b/assets/js/cee7ae10.e33d2178.js
new file mode 100644
index 0000000..099f4d5
--- /dev/null
+++ b/assets/js/cee7ae10.e33d2178.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[5039],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return s},kt:function(){return d}});var r=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n, [...]
\ No newline at end of file
diff --git a/assets/js/d18db9b0.deae5e1a.js b/assets/js/d18db9b0.55bc5779.js
similarity index 84%
rename from assets/js/d18db9b0.deae5e1a.js
rename to assets/js/d18db9b0.55bc5779.js
index 0579cca..c66197c 100644
--- a/assets/js/d18db9b0.deae5e1a.js
+++ b/assets/js/d18db9b0.55bc5779.js
@@ -1 +1 @@
-(self.webpackChunk=self.webpackChunk||[]).push([[17825],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return l},kt:function(){return O}});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r [...]
\ No newline at end of file
+(self.webpackChunk=self.webpackChunk||[]).push([[17825],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return l},kt:function(){return O}});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r [...]
\ No newline at end of file
diff --git a/assets/js/e94802f7.90c10ef1.js b/assets/js/e94802f7.3f7c8477.js
similarity index 59%
rename from assets/js/e94802f7.90c10ef1.js
rename to assets/js/e94802f7.3f7c8477.js
index 8e68692..a408579 100644
--- a/assets/js/e94802f7.90c10ef1.js
+++ b/assets/js/e94802f7.3f7c8477.js
@@ -1 +1 @@
-(self.webpackChunk=self.webpackChunk||[]).push([[82271],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return l},kt:function(){return m}});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r [...]
\ No newline at end of file
+(self.webpackChunk=self.webpackChunk||[]).push([[82271],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return l},kt:function(){return m}});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r [...]
\ No newline at end of file
diff --git a/assets/js/ec0fe986.8c54c5bc.js b/assets/js/ec0fe986.8c54c5bc.js
new file mode 100644
index 0000000..532f55d
--- /dev/null
+++ b/assets/js/ec0fe986.8c54c5bc.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[57251],{3905:function(e,n,t){"use strict";t.d(n,{Zo:function(){return s},kt:function(){return m}});var r=t(67294);function i(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function a(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t [...]
\ No newline at end of file
diff --git a/assets/js/ec609538.b503cc95.js b/assets/js/ec609538.b503cc95.js
new file mode 100644
index 0000000..dcd65de
--- /dev/null
+++ b/assets/js/ec609538.b503cc95.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[90426],{73001:function(n){"use strict";n.exports=JSON.parse('{"pluginId":"docs-apisix-java-plugin-runner","version":"current","label":"Next","isLast":false,"docsSidebars":{"docs":[{"type":"link","label":"Development","href":"/docs/java-plugin-runner/next/development"},{"type":"link","label":"How it works","href":"/docs/java-plugin-runner/next/how-it-works"},{"type":"link","label":"The internal of apisix java plugin runner","href":"/docs/ja [...]
\ No newline at end of file
diff --git a/assets/js/ec609538.e9b26d68.js b/assets/js/ec609538.e9b26d68.js
deleted file mode 100644
index aa7d275..0000000
--- a/assets/js/ec609538.e9b26d68.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunk=self.webpackChunk||[]).push([[90426],{73001:function(n){"use strict";n.exports=JSON.parse('{"pluginId":"docs-apisix-java-plugin-runner","version":"current","label":"Next","isLast":true,"docsSidebars":{"docs":[{"type":"link","label":"Development","href":"/docs/java-plugin-runner/development"},{"type":"link","label":"How it works","href":"/docs/java-plugin-runner/how-it-works"},{"type":"link","label":"The internal of apisix java plugin runner","href":"/docs/java-plugin-r [...]
\ No newline at end of file
diff --git a/assets/js/main.e5ba0273.js b/assets/js/main.e5ba0273.js
deleted file mode 100644
index 93ab5d9..0000000
--- a/assets/js/main.e5ba0273.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/*! For license information please see main.e5ba0273.js.LICENSE.txt */
-(self.webpackChunk=self.webpackChunk||[]).push([[40179],{64644:function(e){"use strict";e.exports={}},22122:function(e,n,t){"use strict";function i(){return(i=Object.assign||function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i])}return e}).apply(this,arguments)}t.d(n,{Z:function(){return i}})},93552:function(e,n,t){"use strict";function i(e,n){return(i=Object.setPrototypeOf||function(e,n){return e.__proto__ [...]
\ No newline at end of file
diff --git a/assets/js/main.f30ebc00.js b/assets/js/main.f30ebc00.js
new file mode 100644
index 0000000..d4b2fcc
--- /dev/null
+++ b/assets/js/main.f30ebc00.js
@@ -0,0 +1,2 @@
+/*! For license information please see main.f30ebc00.js.LICENSE.txt */
+(self.webpackChunk=self.webpackChunk||[]).push([[40179],{64644:function(e){"use strict";e.exports={}},22122:function(e,n,t){"use strict";function i(){return(i=Object.assign||function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i])}return e}).apply(this,arguments)}t.d(n,{Z:function(){return i}})},93552:function(e,n,t){"use strict";function i(e,n){return(i=Object.setPrototypeOf||function(e,n){return e.__proto__ [...]
\ No newline at end of file
diff --git a/zh/assets/js/main.d024ffc2.js.LICENSE.txt b/assets/js/main.f30ebc00.js.LICENSE.txt
similarity index 100%
rename from zh/assets/js/main.d024ffc2.js.LICENSE.txt
rename to assets/js/main.f30ebc00.js.LICENSE.txt
diff --git a/assets/js/runtime~main.a930ad85.js b/assets/js/runtime~main.a930ad85.js
new file mode 100644
index 0000000..f942714
--- /dev/null
+++ b/assets/js/runtime~main.a930ad85.js
@@ -0,0 +1 @@
+!function(){"use strict";var e,c,a,f,b={},d={};function t(e){var c=d[e];if(void 0!==c)return c.exports;var a=d[e]={id:e,loaded:!1,exports:{}};return b[e].call(a.exports,a,a.exports,t),a.loaded=!0,a.exports}t.m=b,t.c=d,e=[],t.O=function(c,a,f,b){if(!a){var d=1/0;for(o=0;o<e.length;o++){a=e[o][0],f=e[o][1],b=e[o][2];for(var n=!0,r=0;r<a.length;r++)(!1&b||d>=b)&&Object.keys(t.O).every((function(e){return t.O[e](a[r])}))?a.splice(r--,1):(n=!1,b<d&&(d=b));n&&(e.splice(o--,1),c=f())}return c}b [...]
\ No newline at end of file
diff --git a/assets/js/runtime~main.da0c8bde.js b/assets/js/runtime~main.da0c8bde.js
deleted file mode 100644
index e11fef2..0000000
--- a/assets/js/runtime~main.da0c8bde.js
+++ /dev/null
@@ -1 +0,0 @@
-!function(){"use strict";var c,e,a,b,f={},d={};function t(c){var e=d[c];if(void 0!==e)return e.exports;var a=d[c]={id:c,loaded:!1,exports:{}};return f[c].call(a.exports,a,a.exports,t),a.loaded=!0,a.exports}t.m=f,t.c=d,c=[],t.O=function(e,a,b,f){if(!a){var d=1/0;for(o=0;o<c.length;o++){a=c[o][0],b=c[o][1],f=c[o][2];for(var n=!0,r=0;r<a.length;r++)(!1&f||d>=f)&&Object.keys(t.O).every((function(c){return t.O[c](a[r])}))?a.splice(r--,1):(n=!1,f<d&&(d=f));n&&(c.splice(o--,1),e=b())}return e}f [...]
\ No newline at end of file
diff --git a/blog/2020/08/22/new-website/index.html b/blog/2020/08/22/new-website/index.html
index 55ff418..48b2d75 100644
--- a/blog/2020/08/22/new-website/index.html
+++ b/blog/2020/08/22/new-website/index.html
@@ -15,13 +15,13 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">New website for Apache APISIX | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="New website for Apache APISIX | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="We are just refactored out website for Apache APISIX by using docusaurus."><meta data-react-helmet="true" propert [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
-<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2020/12/16/another-way-to-implement-envoy-filter/index.html b/blog/2020/12/16/another-way-to-implement-envoy-filter/index.html
index 4eaf109..b897d2b 100644
--- a/blog/2020/12/16/another-way-to-implement-envoy-filter/index.html
+++ b/blog/2020/12/16/another-way-to-implement-envoy-filter/index.html
@@ -15,15 +15,15 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Envoy and Apache APISIX: Another way to implement the Envoy filter | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Envoy and Apache APISIX: Another way to implement the Envoy filter | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="@nic-chen, Apache APISIX PMC from Shenz [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
-<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 A pluggable filter chain mechanism allows filters to be written to perform different tasks and inserted into the main server.</p><p><img src="https://static.apiseven.com/filters.png" alt="Envoy filter"></p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="expansion-method"></a>Expansion method<a class="hash-link" href="#expansion-method" title="Direct link to heading">#</a></h3><p>The existing filters may not meet the user&#x27;s custom requirements. In this case, Envoy needs to [...]
 In the example, we configured plugin <code>uri-blocker</code> for the route whose prefix is ​​<code>/foo</code>, as well as the block rule of the plugin and the response status when a block is required.</p><h4><a aria-hidden="true" tabindex="-1" class="anchor" id="second-step-parse-request"></a>Second step, parse request<a class="hash-link" href="#second-step-parse-request" title="Direct link to heading">#</a></h4><p>We encapsulated the client request data into <code>ctx</code> so that i [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2020/12/18/a-first-look-at-kubernetes-service-api/index.html b/blog/2020/12/18/a-first-look-at-kubernetes-service-api/index.html
index d242792..2030bec 100644
--- a/blog/2020/12/18/a-first-look-at-kubernetes-service-api/index.html
+++ b/blog/2020/12/18/a-first-look-at-kubernetes-service-api/index.html
@@ -15,13 +15,13 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">初探 Kubernetes Service APIs | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="初探 Kubernetes Service APIs | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="@gxthrj, Apache APISIX PMC &amp; Apache apisix-ingress-controller Founder from Shenzhen Zhiliu Technology Co."><meta da [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
-<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/01/11/interview-Apache-APISIX-contributor-Wang-Pengcheng-Senior-Security-Advisor-of-PwC-South-China-Data-Security-and-Privacy-Protection-Team/index.html b/blog/2021/01/11/interview-Apache-APISIX-contributor-Wang-Pengcheng-Senior-Security-Advisor-of-PwC-South-China-Data-Security-and-Privacy-Protection-Team/index.html
index 5431fbd..33f6f5d 100644
--- a/blog/2021/01/11/interview-Apache-APISIX-contributor-Wang-Pengcheng-Senior-Security-Advisor-of-PwC-South-China-Data-Security-and-Privacy-Protection-Team/index.html
+++ b/blog/2021/01/11/interview-Apache-APISIX-contributor-Wang-Pengcheng-Senior-Security-Advisor-of-PwC-South-China-Data-Security-and-Privacy-Protection-Team/index.html
@@ -15,13 +15,13 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Apache APISIX 贡献者专访 | 普华永道华南数据安全与隐私保护团队高级安全顾问王鹏诚 | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Apache APISIX 贡献者专访 | 普华永道华南数据安全与隐私保护团队高级安全顾问王鹏诚 | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="@moonming, Apache APISIX PMC Chair from Shenzhen Zhiliu Technology Co."><me [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
-<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/01/21/run-ingress-apisix-on-amazon-eks/index.html b/blog/2021/01/21/run-ingress-apisix-on-amazon-eks/index.html
index 4e201ac..b5e595f 100644
--- a/blog/2021/01/21/run-ingress-apisix-on-amazon-eks/index.html
+++ b/blog/2021/01/21/run-ingress-apisix-on-amazon-eks/index.html
@@ -15,14 +15,14 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Run Ingress APISIX on Amazon EKS | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Run Ingress APISIX on Amazon EKS | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="@Chao Zhang, Apache APISIX Committer from Shenzhen Zhiliu Technology Co."><meta data-react-helmet="true" pr [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
-<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  </span><span class="token string" style="color:rgb(195, 232, 141)">&quot;headers&quot;</span><span class="token builtin class-name" style="color:rgb(255, 203, 107)">:</span><span class="token plain"> </span><span c [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/02/08/stable-product-delivery-with-cypress/index.html b/blog/2021/02/08/stable-product-delivery-with-cypress/index.html
index 7faba49..a44376b 100644
--- a/blog/2021/02/08/stable-product-delivery-with-cypress/index.html
+++ b/blog/2021/02/08/stable-product-delivery-with-cypress/index.html
@@ -15,13 +15,13 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Stable Product Delivery with Cypress | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Stable Product Delivery with Cypress | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="@LiteSun, Apache APISIX Committer from Shenzhen Zhiliu Technology Co."><meta data-react-helmet="tru [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
-<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/02/26/install-apache-apisix-from-helm-charts/index.html b/blog/2021/02/26/install-apache-apisix-from-helm-charts/index.html
index d582987..072f272 100644
--- a/blog/2021/02/26/install-apache-apisix-from-helm-charts/index.html
+++ b/blog/2021/02/26/install-apache-apisix-from-helm-charts/index.html
@@ -15,15 +15,15 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Install Apache APISIX from Helm Charts | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Install Apache APISIX from Helm Charts | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="@tokers, Apache APISIX Committer from Shenzhen Zhiliu Technology Co."><meta data-react-helmet=" [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
-<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">NAME                    CHART VERSION   APP VERSION     DESCRIPTION</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">apisix/apisix           0.1.2           2.1.0           A Helm chart for Apache APISIX</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">apisix/apisix-dashboard 0.1.0           2.3.0           A Helm chart for Apache APIS [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">NAME: apisix-gw</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">LAST DEPLOYED: Fri Feb 19 11:34:14 2021</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">NAMESPACE: default</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">STATUS: deployed</span></div><div class="token-line" style="color:#bfc7d5"><span [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/03/02/get-front-end-test-coverage-with-cypress/index.html b/blog/2021/03/02/get-front-end-test-coverage-with-cypress/index.html
index ec423d0..b0a42a0 100644
--- a/blog/2021/03/02/get-front-end-test-coverage-with-cypress/index.html
+++ b/blog/2021/03/02/get-front-end-test-coverage-with-cypress/index.html
@@ -15,13 +15,13 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Get Front-End Test Coverage with Cypress | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Get Front-End Test Coverage with Cypress | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="@LiteSun, Apache APISIX Committer from Shenzhen Zhiliu Technology Co."><meta data-react-hel [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
-<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/03/27/traffic-split-in-apache-apisix-ingress-controller/index.html b/blog/2021/03/27/traffic-split-in-apache-apisix-ingress-controller/index.html
index cdd7b81..cddf553 100644
--- a/blog/2021/03/27/traffic-split-in-apache-apisix-ingress-controller/index.html
+++ b/blog/2021/03/27/traffic-split-in-apache-apisix-ingress-controller/index.html
@@ -15,13 +15,13 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Traffic Split in Apache APISIX Ingress Controller | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Traffic Split in Apache APISIX Ingress Controller | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="@tokers, Apache APISIX Committer from Shenzhen Zhiliu Technology Co."><me [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
-<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git "a/blog/2021/05/25/Apache APISIX 2.6.0-Release \346\255\243\345\274\217\345\217\221\345\270\203/index.html" "b/blog/2021/05/25/Apache APISIX 2.6.0-Release \346\255\243\345\274\217\345\217\221\345\270\203/index.html"
index be30587..ae0667d 100644
--- "a/blog/2021/05/25/Apache APISIX 2.6.0-Release \346\255\243\345\274\217\345\217\221\345\270\203/index.html"	
+++ "b/blog/2021/05/25/Apache APISIX 2.6.0-Release \346\255\243\345\274\217\345\217\221\345\270\203/index.html"	
@@ -15,14 +15,14 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Apache APISIX 2.6.0-Release 正式发布 | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Apache APISIX 2.6.0-Release 正式发布 | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="@spacewander, Core developer of Apache APISIX from Shenzhen Zhiliu Technology Co."><meta data-react-helmet= [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
-<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 目前 APISIX 内置的服务发现功能已支持下列外部服务:</p><ol><li>DNS</li><li>Consul KV mode</li><li>Eureka</li><li>Nacos</li></ol><p>▌<strong>支持:配置 IPv6 的 DNS resolver</strong></p><p>之前配置 APISIX 的 DNS resolver 时,只能配置 IPv4 服务器。从 2.6 版本之后,我们加上了对 IPv6 DNS 服务器的支持。</p><p>现在配置 DNS resolver 的时候,可以写上 IPv6 的服务器地址了。</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="下载"></a>下载<a class="hash-link" href="#下载" title="Direct link to heading">#</a></h2><p>下载 Apache APISIX 2.6.0-Release 源代码及二进制安装包,请访问下载页面: <code>htt [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git "a/blog/2021/05/31/\345\237\272\344\272\216 Apache APISIX \345\256\236\347\216\260\347\232\204\346\234\215\345\212\241\347\275\221\346\240\274\351\241\271\347\233\256\346\255\243\345\274\217\345\274\200\346\272\220/index.html" "b/blog/2021/05/31/\345\237\272\344\272\216 Apache APISIX \345\256\236\347\216\260\347\232\204\346\234\215\345\212\241\347\275\221\346\240\274\351\241\271\347\233\256\346\255\243\345\274\217\345\274\200\346\272\220/index.html"
index 5914ab0..40102d0 100644
--- "a/blog/2021/05/31/\345\237\272\344\272\216 Apache APISIX \345\256\236\347\216\260\347\232\204\346\234\215\345\212\241\347\275\221\346\240\274\351\241\271\347\233\256\346\255\243\345\274\217\345\274\200\346\272\220/index.html"	
+++ "b/blog/2021/05/31/\345\237\272\344\272\216 Apache APISIX \345\256\236\347\216\260\347\232\204\346\234\215\345\212\241\347\275\221\346\240\274\351\241\271\347\233\256\346\255\243\345\274\217\345\274\200\346\272\220/index.html"	
@@ -15,15 +15,15 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">基于 Apache APISIX 实现的服务网格项目正式开源 | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="基于 Apache APISIX 实现的服务网格项目正式开源 | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="@tokers, Apache APISIX PMC from Shenzhen Zhiliu Technology Co."><meta data-react-helmet="true" property="og:url [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
-<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 <code>https://github.com/api7/apisix-mesh-agent/releases/tag/0.6</code></p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="文档更新"></a>文档更新<a class="hash-link" href="#文档更新" title="Direct link to heading">#</a></h2><p>在本次发布过程中,我们也在持续更新和发布新的使用文档,欢迎大家提出宝贵的意见。
 <code>https://github.com/api7/apisix-mesh-agent/tree/main/docs</code></p></div></article><div></div><div class="margin-vert--xl"><nav class="pagination-nav" aria-label="Blog post page navigation"><div class="pagination-nav__item"><a class="pagination-nav__link" href="/blog/2021/06/07/Apache-APISIX-not-affected-by-NGINX-CVE-2021-23017"><div class="pagination-nav__sublabel">Newer Post</div><div class="pagination-nav__label">« Apache APISIX not affected by NGINX CVE-2021-23017</div></a></di [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/06/07/Apache-APISIX-not-affected-by-NGINX-CVE-2021-23017/index.html b/blog/2021/06/07/Apache-APISIX-not-affected-by-NGINX-CVE-2021-23017/index.html
index 52747a3..8e1f0d9 100644
--- a/blog/2021/06/07/Apache-APISIX-not-affected-by-NGINX-CVE-2021-23017/index.html
+++ b/blog/2021/06/07/Apache-APISIX-not-affected-by-NGINX-CVE-2021-23017/index.html
@@ -15,13 +15,13 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Apache APISIX not affected by NGINX CVE-2021-23017 | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Apache APISIX not affected by NGINX CVE-2021-23017 | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="@Serendipity96, Apache APISIX contributor from Shenzhen Zhiliu Technolo [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
-<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/06/16/Chaos-Mesh-helps-Apache-APISIX-improve-stability/index.html b/blog/2021/06/16/Chaos-Mesh-helps-Apache-APISIX-improve-stability/index.html
index 23d5c32..7a41896 100644
--- a/blog/2021/06/16/Chaos-Mesh-helps-Apache-APISIX-improve-stability/index.html
+++ b/blog/2021/06/16/Chaos-Mesh-helps-Apache-APISIX-improve-stability/index.html
@@ -15,13 +15,13 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Chaos Mesh 助力 Apache APISIX 提升稳定性 | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Chaos Mesh 助力 Apache APISIX 提升稳定性 | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="@Yiyiyimu,Apache APISIX committer from Shenzhen Zhiliu Technology Co."><meta data-react-helmet="true" pro [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
-<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/06/17/Apache-APISIX-Dashboard-Access-Control-Bypass-Vulnerability-Announcement/index.html b/blog/2021/06/17/Apache-APISIX-Dashboard-Access-Control-Bypass-Vulnerability-Announcement/index.html
index 4d1b54f..d6f8bfd 100644
--- a/blog/2021/06/17/Apache-APISIX-Dashboard-Access-Control-Bypass-Vulnerability-Announcement/index.html
+++ b/blog/2021/06/17/Apache-APISIX-Dashboard-Access-Control-Bypass-Vulnerability-Announcement/index.html
@@ -15,13 +15,13 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Apache APISIX Dashboard 访问控制绕过漏洞公告(CVE-2021-33190) | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Apache APISIX Dashboard 访问控制绕过漏洞公告(CVE-2021-33190) | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="@juzhiyuan, Apache APISIX PMC from Shenzhen Zhiliu Technology Co."><met [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
-<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/06/18/first-GA-version-v1.0-of-Apache-APISIX-Ingress-Controller-released/index.html b/blog/2021/06/18/first-GA-version-v1.0-of-Apache-APISIX-Ingress-Controller-released/index.html
index 5893f7c..cbc541e 100644
--- a/blog/2021/06/18/first-GA-version-v1.0-of-Apache-APISIX-Ingress-Controller-released/index.html
+++ b/blog/2021/06/18/first-GA-version-v1.0-of-Apache-APISIX-Ingress-Controller-released/index.html
@@ -15,13 +15,13 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Apache APISIX Ingress Controller 首个 GA 版本 v1.0 正式发布! | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Apache APISIX Ingress Controller 首个 GA 版本 v1.0 正式发布! | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="@tao12345666333, Apache APISIX commiter from Shenzhen Zhiliu Techno [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
-<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/06/21/use-Java-to-write-Apache-APISIX-plugins/index.html b/blog/2021/06/21/use-Java-to-write-Apache-APISIX-plugins/index.html
index 3eb2b2d..1103e4a 100644
--- a/blog/2021/06/21/use-Java-to-write-Apache-APISIX-plugins/index.html
+++ b/blog/2021/06/21/use-Java-to-write-Apache-APISIX-plugins/index.html
@@ -15,12 +15,12 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">使用 Java 编写 Apache APISIX 插件 | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="使用 Java 编写 Apache APISIX 插件 | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="@tzssangglass, Apache APISIX contributor from Shenzhen Zhiliu Technology Co."><meta data-react-helmet="true" property [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
-<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">import org.apache.apisix.plugin.runner.HttpRequest;</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">import org.apache.apisix.plugin.runner.HttpResponse;</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">import org.springframework.stereotype.Component;</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">i [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">@Component</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">public class TokenValidator implements PluginFilter {</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
@@ -35,7 +35,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">        // token verification results</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">        if (!flag) {</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">            String rejected_code = (String) conf.get(&quot;rejected_code&quot;);</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">            res [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">        return chain.filter(request, response);</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    }</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    private Boolean validate(String token, String validate_url) {</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">        //TODO: improve the validation process</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">        return true;</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    }</span></div><di [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/06/23/deploy-great-open-source-gateway-and-ingress-controller-fast/index.html b/blog/2021/06/23/deploy-great-open-source-gateway-and-ingress-controller-fast/index.html
index 7548190..bb18eeb 100644
--- a/blog/2021/06/23/deploy-great-open-source-gateway-and-ingress-controller-fast/index.html
+++ b/blog/2021/06/23/deploy-great-open-source-gateway-and-ingress-controller-fast/index.html
@@ -15,14 +15,14 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Rancher × Apache APISIX: 极速部署更好用的开源网关和 Ingress Controller | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Rancher × Apache APISIX: 极速部署更好用的开源网关和 Ingress Controller | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="@tao12345666333, Apache APISIX commiter from Shenzhen Zhi [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
-<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
-在终端下测试是否代理成功:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">root@apisix:~$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://172.18.0.2:32763/get -H </span><sp [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+在终端下测试是否代理成功:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">root@apisix:~$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://172.18.0.2:32763/get -H </span><sp [...]
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/06/25/release-apache-apisix-2.7/index.html b/blog/2021/06/25/release-apache-apisix-2.7/index.html
deleted file mode 100644
index 868c164..0000000
--- a/blog/2021/06/25/release-apache-apisix-2.7/index.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!doctype html>
-<html lang="en" dir="ltr">
-<head>
-<meta charset="UTF-8">
-<meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-beta.0">
-<meta name="robots" content="noindex, nofollow">
-<link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache APISIX™ Blog RSS Feed">
-<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache APISIX™ Blog Atom Feed">
-<link rel="preconnect" href="https://www.google-analytics.com">
-<link rel="preconnect" href="https://www.googletagmanager.com">
-<script async src="https://www.googletagmanager.com/gtag/js?id=G-WQLBQL6GY3"></script>
-<script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-WQLBQL6GY3",{})</script>
-<link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX™" href="/opensearch.xml">
-<link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
-<link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
-<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Apache APISIX 2.7.0-Release 正式发布 | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Apache APISIX 2.7.0-Release 正式发布 | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="@spacewander, Core developer of Apache APISIX from Shenzhen Zhiliu Technology Co."><meta data-react-helmet= [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
-</head>
-<body>
-<script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
-<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/blog/atom.xml b/blog/atom.xml
index 71b533a..d4bbe11 100644
--- a/blog/atom.xml
+++ b/blog/atom.xml
@@ -2,19 +2,12 @@
 <feed xmlns="http://www.w3.org/2005/Atom">
     <id>https://apisix.apache.org/blog</id>
     <title>Apache APISIX™ Blog</title>
-    <updated>2021-06-25T00:00:00.000Z</updated>
+    <updated>2021-06-23T00:00:00.000Z</updated>
     <generator>https://github.com/jpmonette/feed</generator>
     <link rel="alternate" href="https://apisix.apache.org/blog"/>
     <subtitle>Apache APISIX™ Blog</subtitle>
     <icon>https://apisix.apache.org/img/favicon.png</icon>
     <entry>
-        <title type="html"><![CDATA[Apache APISIX 2.7.0-Release 正式发布]]></title>
-        <id>Apache APISIX 2.7.0-Release 正式发布</id>
-        <link href="https://apisix.apache.org/blog/2021/06/25/release-apache-apisix-2.7"/>
-        <updated>2021-06-25T00:00:00.000Z</updated>
-        <summary type="html"><![CDATA[@spacewander, Core developer of Apache APISIX from Shenzhen Zhiliu Technology Co.]]></summary>
-    </entry>
-    <entry>
         <title type="html"><![CDATA[Rancher × Apache APISIX: 极速部署更好用的开源网关和 Ingress Controller]]></title>
         <id>Rancher × Apache APISIX: 极速部署更好用的开源网关和 Ingress Controller</id>
         <link href="https://apisix.apache.org/blog/2021/06/23/deploy-great-open-source-gateway-and-ingress-controller-fast"/>
diff --git a/blog/index.html b/blog/index.html
index 2996fb1..f044560 100644
--- a/blog/index.html
+++ b/blog/index.html
@@ -15,13 +15,13 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Blog | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Blog | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="Blog"><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//blog"><meta data-react-helmet="true" name="docsearch:language" content=" [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
-<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/page/2/index.html b/blog/page/2/index.html
index a288f04..e07a5fb 100644
--- a/blog/page/2/index.html
+++ b/blog/page/2/index.html
@@ -15,13 +15,13 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Blog | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Blog | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="Blog"><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//blog/page/2"><meta data-react-helmet="true" name="docsearch:language" co [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
-<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/rss.xml b/blog/rss.xml
index 8a7a9cd..dda2468 100644
--- a/blog/rss.xml
+++ b/blog/rss.xml
@@ -4,17 +4,10 @@
         <title>Apache APISIX™ Blog</title>
         <link>https://apisix.apache.org/blog</link>
         <description>Apache APISIX™ Blog</description>
-        <lastBuildDate>Fri, 25 Jun 2021 00:00:00 GMT</lastBuildDate>
+        <lastBuildDate>Wed, 23 Jun 2021 00:00:00 GMT</lastBuildDate>
         <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
         <generator>https://github.com/jpmonette/feed</generator>
         <item>
-            <title><![CDATA[Apache APISIX 2.7.0-Release 正式发布]]></title>
-            <link>https://apisix.apache.org/blog/2021/06/25/release-apache-apisix-2.7</link>
-            <guid>Apache APISIX 2.7.0-Release 正式发布</guid>
-            <pubDate>Fri, 25 Jun 2021 00:00:00 GMT</pubDate>
-            <description><![CDATA[@spacewander, Core developer of Apache APISIX from Shenzhen Zhiliu Technology Co.]]></description>
-        </item>
-        <item>
             <title><![CDATA[Rancher × Apache APISIX: 极速部署更好用的开源网关和 Ingress Controller]]></title>
             <link>https://apisix.apache.org/blog/2021/06/23/deploy-great-open-source-gateway-and-ingress-controller-fast</link>
             <guid>Rancher × Apache APISIX: 极速部署更好用的开源网关和 Ingress Controller</guid>
diff --git a/docs/apisix/2.4/FAQ/index.html b/docs/apisix/2.4/FAQ/index.html
index 3329bff..bc14a30 100644
--- a/docs/apisix/2.4/FAQ/index.html
+++ b/docs/apisix/2.4/FAQ/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">FAQ | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/FAQ"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" cont [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -31,7 +31,7 @@ Run the <code>luarocks config rocks_servers</code> command(this command is suppo
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token string" style="color:rgb(195, 232, 141)">These open issues may also help:</span></div><div class="token-line" style="color:#bfc7d5"><span class="token string" style="color:rgb(195, 232, 141)">Can&#x27;</span><span class="token plain">t </span><span class="token function" style="color:rgb(130, 170, 255)">install</span><span class="token plain"> openresty on macOS </span><span class="token number" style="color:rg [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Error: A newer Command Line Tools release is available.</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Update them from Software Update </span><span class="token keyword" style="font-style:italic">in</span><span class="token plain"> System Preferences or</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">https://developer.apple.com/dow [...]
 See the <code>Hot reload</code> section in <a href="/docs/apisix/2.4/plugins">plugins</a> for how to do that.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="how-to-make-apisix-listen-on-multiple-ports-when-handling-http-or-https-requests"></a>How to make APISIX listen on multiple ports when handling HTTP or HTTPS requests?<a class="hash-link" href="#how-to-make-apisix-listen-on-multiple-ports-when-handling-http-or-https-requests" title="Direct link to heading">#</a></h2><p [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/IGNORE_DOC/index.html b/docs/apisix/2.4/IGNORE_DOC/index.html
index 899d598..d924a8e 100644
--- a/docs/apisix/2.4/IGNORE_DOC/index.html
+++ b/docs/apisix/2.4/IGNORE_DOC/index.html
@@ -15,13 +15,13 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">IGNORE_DOC | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/IGNORE_DOC"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name="docsearch:docusa [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/admin-api/index.html b/docs/apisix/2.4/admin-api/index.html
index 2d4d053..6e073f1 100644
--- a/docs/apisix/2.4/admin-api/index.html
+++ b/docs/apisix/2.4/admin-api/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Admin API | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/admin-api"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name="docsearch:docusaur [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -79,7 +79,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">After the execution is successful, nodes will not retain the original data, and the entire update is:</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    </span><span class="token  [...]
 </span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><blockquote><p>Response Parameters</p></blockquote><p>Return response from etcd currently.</p><p><a href="#table-of-contents">Back to TOC</a></p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="ssl"></a>SSL<a class="hash-link" href="#ssl" title="Direct link to heading">#</a></h2><p><em>API</em>:/apisix/admin/ssl/{id}</p><p><em>Description</em>:SSL. [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> </span><span class="token string" style="color:rgb(195, 232, 141)">&quot;http://127.0.0.1:9080/apisix/admin/plugins/key-auth&quot;</span><span class="token plain"> -H </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><s [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/architecture-design/index.html b/docs/apisix/2.4/architecture-design/index.html
index ce01694..1d99c91 100644
--- a/docs/apisix/2.4/architecture-design/index.html
+++ b/docs/apisix/2.4/architecture-design/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Architecture Design | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/architecture-design"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -41,7 +41,7 @@ will be merged into it. The same plugin in the plugin config will override one i
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello world</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>If the information can be delivered via HTTP response header, for example, the plugin is in stream
 subsystem, the information will be logged in the error log with <code>warn</code> level.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="advanced-debug-mode"></a>Advanced Debug Mode<a class="hash-link" href="#advanced-debug-mode" title="Direct link to heading">#</a></h3><p>Enable advanced debug mode by modifying the configuration in <code>conf/debug.yaml</code> file. Because there will be a check every second, only the checker reads the <code>#END</code> flag, and the file  [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token key atrule">hook_phase</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> </span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># Module Function List, Name: hook_phase</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  </span [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/aws/index.html b/docs/apisix/2.4/aws/index.html
index 637424a..ce9e2d0 100644
--- a/docs/apisix/2.4/aws/index.html
+++ b/docs/apisix/2.4/aws/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Running APISIX in AWS with AWS CDK | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/aws"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name= [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -43,7 +43,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Non-authoritative answer:</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Name:   apiSi-PhpSe-FOL2MM4TW7G8-09029e095ab36fcc.elb.us-west-2.amazonaws.com</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Address: </span><span class="token number" style="color:rgb(247, 140, 108)">44.224</span><span class="token plain">.124.213</span></div [...]
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/aws-define-service.png">
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/aws-define-route.png"></p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="validation"></a>Validation<a class="hash-link" href="#validation" title="Direct link to heading">#</a></h2><p>OK. Let&#x27;s test the <code>/index.php</code> on <code>{apiSix.ApiSixServiceServiceURL}/index.php</code></p><p><img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/aws-caddy-php-we [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/batch-processor/index.html b/docs/apisix/2.4/batch-processor/index.html
index 9807d87..c37ea67 100644
--- a/docs/apisix/2.4/batch-processor/index.html
+++ b/docs/apisix/2.4/batch-processor/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Batch Processor | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/batch-processor"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name="docsea [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -31,7 +31,7 @@ argument and the batch configuration as the second parameter.</p><div class="cod
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">if batch_processor then</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    batch_processor:push({hello=&#x27;world&#x27;})</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">end</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>Note: Please make sure th [...]
 The timer to flush the batch runs based on the <code>inactive_timeout</code> configuration. Thus, for optimal usage,
 keep the <code>inactive_timeout</code> smaller than the <code>buffer_duration</code>.</p></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/batch-processor.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAspectRatio="xMidYMid meet" role="img" viewBox="0 0 40 40" class="iconEdit_2_ui" aria-label="Edit page"><g><path d="m34.5 11.7l-3 3 [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/benchmark/index.html b/docs/apisix/2.4/benchmark/index.html
index 798ab0b..5d3ef94 100644
--- a/docs/apisix/2.4/benchmark/index.html
+++ b/docs/apisix/2.4/benchmark/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Benchmark | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/benchmark"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name="docsearch:docusaur [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -26,7 +26,7 @@ and the response size was 1KB.</p><h4><a aria-hidden="true" tabindex="-1" class=
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/flamegraph-1.jpg" alt="flamegraph-1"></p><p>And if you want to run the benchmark test in your machine, you should run another Nginx to listen 80 port.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="to [...]
 and the response size was 1KB.</p><h4><a aria-hidden="true" tabindex="-1" class="anchor" id="qps-1"></a>QPS<a class="hash-link" href="#qps-1" title="Direct link to heading">#</a></h4><p>The x-axis means the size of CPU core, and the y-axis is QPS.</p><img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/benchmark-2.jpg" width="70%" height="70%"><h4><a aria-hidden="true" tabindex="-1" class="anchor" id="latency-1"></a>Latency<a class="hash-link" href="#latenc [...]
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/flamegraph-2.jpg" alt="flamegraph-2"></p><p>And if you want to run the benchmark test in your machine, you should run another Nginx to listen 80 port.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="to [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/control-api/index.html b/docs/apisix/2.4/control-api/index.html
index 2b0e00c..4203c55 100644
--- a/docs/apisix/2.4/control-api/index.html
+++ b/docs/apisix/2.4/control-api/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Control API | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/control-api"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name="docsearch:docu [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -26,7 +26,7 @@ If a plugin adds such a control API, please refer to each plugin&#x27;s document
 of fields like <code>consumer_schema</code> or <code>type</code>, it is dependended by the plugin&#x27;s
 definition.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="get-v1healthcheck"></a>GET /v1/healthcheck<a class="hash-link" href="#get-v1healthcheck" title="Direct link to heading">#</a></h3><p>Introduced since <code>v2.3</code>.</p><p>Return current <a href="/docs/apisix/2.4/health-check">health check</a> status in the format below:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly json"><div tabindex="0" class="prism-code language-json codeBlock_23N [...]
 object with id 1 creates a health checker, the <code>src_type</code> is <code>upstreams</code> and the <code>src_id</code> is <code>1</code>.</li><li>name: the name of the health checker.</li><li>nodes: the target nodes of the health checker.</li><li>healthy_nodes: the healthy node known by the health checker.</li></ul><p>User can also use <code>/v1/healthcheck/$src_type/$src_id</code> can get the status of a health checker.</p><p>For example, <code>GET /v1/healthcheck/upstreams/1</code> [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/customize-nginx-configuration/index.html b/docs/apisix/2.4/customize-nginx-configuration/index.html
index 4771e4e..dc5adb7 100644
--- a/docs/apisix/2.4/customize-nginx-configuration/index.html
+++ b/docs/apisix/2.4/customize-nginx-configuration/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Customize Nginx configuration | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/customize-nginx-configuration"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-reac [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -24,7 +24,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">            location /ysec_status </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">                req_status_show;</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">                allow 127.0.0.1;</span></div><div class="token-li [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">        chunked_transfer_encoding on;</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    </span><span class="token key atrule">http_server_configuration_snippet</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">|</span><span class="token scalar string" style="color:rgb(195, 232, 141)"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token  [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/debug-function/index.html b/docs/apisix/2.4/debug-function/index.html
index 3a0e5f8..5c29335 100644
--- a/docs/apisix/2.4/debug-function/index.html
+++ b/docs/apisix/2.4/debug-function/index.html
@@ -15,14 +15,14 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Debug Function | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/debug-function"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name="docsearc [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 </span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>It has a response header of <code>X-APISIX-Upstream-Status: 502</code>.</p><blockquote><p>Example 2: <code>502</code> response status code comes from <code>APISIX</code></p></blockquote><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class= [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/discovery/consul_kv/index.html b/docs/apisix/2.4/discovery/consul_kv/index.html
index 51fc2ac..dabfe50 100644
--- a/docs/apisix/2.4/discovery/consul_kv/index.html
+++ b/docs/apisix/2.4/discovery/consul_kv/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">consul_kv | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/discovery/consul_kv"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name="docsearc [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -24,7 +24,7 @@
 <img src="https://user-images.githubusercontent.com/548385/107141841-6ced3e00-6966-11eb-8aa4-bc790a4ad113.png"></p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="configuration-for-discovery-client"></a>Configuration for discovery client<a class="hash-link" href="#configuration-for-discovery-client" title="Direct link to heading">#</a></h2><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="configuration-for-consul-kv"></a>Configuration for Consul KV<a class="hash-link" [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">\</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    -X PUT </span><span class="token punctuation" style="color:rgb(199, 146, 234)">\</span><span class="token [...]
 To avoid confusion, use the full consul key url path as service name in practice.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="upstream-setting"></a>Upstream setting<a class="hash-link" href="#upstream-setting" title="Direct link to heading">#</a></h3><p>Here is an example of routing a request with a URL of &quot;/*&quot; to a service which named &quot;<a href="http://127.0.0.1:8500/v1/kv/upstreams/webpages/%22" target="_blank" rel="noopener noreferrer">http://127.0.0.1: [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/discovery/index.html b/docs/apisix/2.4/discovery/index.html
index 9484f9d..ae880b8 100644
--- a/docs/apisix/2.4/discovery/index.html
+++ b/docs/apisix/2.4/discovery/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Integration service discovery registry | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/discovery"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="t [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -30,7 +30,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:rgb(247, 140, 108)">201</span><span class="token plain"> Created</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Date: Sat, </span><span class="token number" style="color:rgb(247, 140, 108)">31</span><span class="token plain"> Aug </span><span class="token number" style="color:rgb(247, 140, 108)">2019</span><span  [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token string" style="color:rgb(195, 232, 141)">&quot;node&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token string" style="color:rgb(195, 232, 141)">&quot;value&quot;</span><span class="token plain">:</span><span class="token  [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/2 -H </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><span class="token plain"> -X PUT -i -d </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;</span></ [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/dns/index.html b/docs/apisix/2.4/dns/index.html
index 446d557..798a70e 100644
--- a/docs/apisix/2.4/dns/index.html
+++ b/docs/apisix/2.4/dns/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">DNS | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/dns"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" cont [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -28,7 +28,7 @@ noisy).  In the presence of records containing weights greater
 than 0, records with weight 0 should have a very small chance of
 being selected.</p></blockquote><p>We treat weight 0 record has a weight of 1 so the node &quot;have a very small chance of
 being selected&quot;, which is also the common way to treat this type of record.</p><p>TODO: support priority.</p></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/dns.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAspectRatio="xMidYMid meet" role="img" viewBox="0 0 40 40" class="iconEdit_2_ui" aria-label="Edit page"><g><path d="m3 [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/examples/plugins-hmac-auth-generate-signature/index.html b/docs/apisix/2.4/examples/plugins-hmac-auth-generate-signature/index.html
index 31868fa..2a07ce1 100644
--- a/docs/apisix/2.4/examples/plugins-hmac-auth-generate-signature/index.html
+++ b/docs/apisix/2.4/examples/plugins-hmac-auth-generate-signature/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">HMAC Generate Signature Examples | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/examples/plugins-hmac-auth-generate-signature"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2 [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -55,7 +55,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">--to base64</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">ngx.say(ngx.encode_base64(digest))</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="shell"></a>Shell<a class="hash-link" href="#shell" title="Direct link to heading">#</a [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># to lowercase hexits</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token builtin class-name" style="color:rgb(255, 203, 107)">echo</span><span class="token plain"> -e </span><span class="token variable" style="color:rgb(191, 199, [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># to base64</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token builtin class-name" style="color:rgb(255, 203, 107)">echo</span><span class="token plain"> -e </span><span class="token variable" style="color:rgb(191, 199, 213)">$ME [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/getting-started/index.html b/docs/apisix/2.4/getting-started/index.html
index e473a1a..1e94df5 100644
--- a/docs/apisix/2.4/getting-started/index.html
+++ b/docs/apisix/2.4/getting-started/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Getting Started | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/getting-started"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name="docsea [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -40,7 +40,7 @@ a web application to perform the similar. The dashboard is available in the foll
 <a href="https://github.com/apache/apisix" target="_blank" rel="noopener noreferrer">repository</a>. The dashboard is intuitive and you can orchestrate the
 same route configurations via the dashboard as well.</p><p><img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/dashboard.png" alt="Dashboard"></p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="troubleshooting"></a>Troubleshooting<a class="hash-link" href="#troubleshooting" title="Direct link to heading">#</a></h3><ul><li><p>Make sure the required ports are not being used by other systems/processes (The default ports are: 9080, 9443, 2379).
 The following is the command to kill a process which is listening to a specific port (in unix based systems).</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-undefined codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">```bash</span></div><div class="token-line" style="color:#bfc7d5"><sp [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/grpc-proxy/index.html b/docs/apisix/2.4/grpc-proxy/index.html
index 33b68d9..99df0cf 100644
--- a/docs/apisix/2.4/grpc-proxy/index.html
+++ b/docs/apisix/2.4/grpc-proxy/index.html
@@ -15,14 +15,14 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">gRPC Proxy | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/grpc-proxy"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name="docsearch:docusa [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 gRPC client -&gt; APISIX -&gt; gRPC/gRPCS server</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="parameters"></a>Parameters<a class="hash-link" href="#parameters" title="Direct link to heading">#</a></h2><ul><li><code>scheme</code>: the <code>scheme</code> of the route&#x27;s upstream must be <code>grpc</code> or <code>grpcs</code>.</li><li><code>uri</code>: format likes /service/method, Example:/helloworld.Greeter/SayHello</li></ul><h3><a aria-hidden="true" tabindex="-1" c [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/health-check/index.html b/docs/apisix/2.4/health-check/index.html
index 2f12a5b..0aaeeb2 100644
--- a/docs/apisix/2.4/health-check/index.html
+++ b/docs/apisix/2.4/health-check/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Health Check | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/health-check"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name="docsearch:do [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -24,7 +24,7 @@
 you can use it for upstream.</p><p>Note that we only start the health check when the upstream is hit by a request.
 There won&#x27;t be any health check if an upstream is configured but isn&#x27;t in used.</p><p>The following is an example of health check:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)"> [...]
 contains: <code>active</code> or <code>passive</code>.</p><ul><li><p><code>active</code>: To enable active health checks, you need to specify the configuration items under <code>checks.active</code> in the Upstream object configuration.</p><ul><li><p><code>active.timeout</code>: Socket timeout for active checks (in seconds), support decimals. For example <code>1.01</code> means <code>1010</code> milliseconds, <code>2</code> means <code>2000</code> milliseconds.</p></li><li><p><code>activ [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/how-to-build/index.html b/docs/apisix/2.4/how-to-build/index.html
index 35e1d24..724ec69 100644
--- a/docs/apisix/2.4/how-to-build/index.html
+++ b/docs/apisix/2.4/how-to-build/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">How to build Apache APISIX | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/how-to-build"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -31,7 +31,7 @@ see how to do it.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="
 make sure to set openresty as default nginx. And export the path as below.</li></ul><ul><li>export PATH=/usr/local/openresty/nginx/sbin:$PATH<ul><li>Linux default installation path:<ul><li>export PATH=/usr/local/openresty/nginx/sbin:$PATH</li></ul></li><li>OSx default installation path via homebrew:<ul><li>export PATH=/usr/local/opt/openresty/nginx/sbin:$PATH</li></ul></li></ul></li></ul><p><strong>Run Individual Test Cases</strong></p><ul><li>Use the following command to run test cases  [...]
 Here is an example:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><div tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token key atrule">apisix</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></span></div><div class="token-line" style [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes?api_key</span><span class="token operator" style="color:rgb(137, 221, 255)">=</span><span class="token plain">abcdefghabcdefgh-invalid -i</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">HTTP/1.1 </span><span class="token [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/https/index.html b/docs/apisix/2.4/https/index.html
index 822a1ea..d0c6c35 100644
--- a/docs/apisix/2.4/https/index.html
+++ b/docs/apisix/2.4/https/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">HTTPS | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/https"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name="docsearch:docusaurus_tag"  [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -36,7 +36,7 @@ and RSA key-exchange algorithm, then just configure the extra certificates (the
 first certificate and private key should be still put in <code>cert</code> and <code>key</code>) and
 private keys by <code>certs</code> and <code>keys</code>.</p><ul><li><code>certs</code>: PEM-encoded certificate array.</li><li><code>keys</code>: PEM-encoded private key array.</li></ul><p><code>APISIX</code> will pair certificate and private key with the same indice as a SSL key
 pair. So the length of <code>certs</code> and <code>keys</code> must be same.</p></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/https.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAspectRatio="xMidYMid meet" role="img" viewBox="0 0 40 40" class="iconEdit_2_ui" aria-label="Edit page"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0 [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/install-dependencies/index.html b/docs/apisix/2.4/install-dependencies/index.html
index 557433d..b2f9733 100644
--- a/docs/apisix/2.4/install-dependencies/index.html
+++ b/docs/apisix/2.4/install-dependencies/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Install Dependencies | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/install-dependencies"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" na [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -40,7 +40,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># start etcd server</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">nohup</span><span class="token plain"> etcd </span><span class="token operator" style="color:rgb(137, 221, 255)">&a [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># start etcd server</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">etcd </span><span class="token operator" style="color:rgb(137, 221, 255)">&amp;</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class=" [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># enable TLS for etcd server</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">etcd --cert-file</span><span class="token operator" style="color:rgb(137, 221, 255)">=</span><span class="token plain">/path/to/cert --key-file</span><span class="token operat [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/mtls/index.html b/docs/apisix/2.4/mtls/index.html
index 43b6e60..983194c 100644
--- a/docs/apisix/2.4/mtls/index.html
+++ b/docs/apisix/2.4/mtls/index.html
@@ -15,14 +15,14 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Mutual TLS authentication | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/mtls"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name="docsear [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  </span><span class="token key atrule">mtls</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    </span><span class="token key atrule">enable</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> </span><span clas [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/plugin-develop/index.html b/docs/apisix/2.4/plugin-develop/index.html
index 39cb2ae..cded49b 100644
--- a/docs/apisix/2.4/plugin-develop/index.html
+++ b/docs/apisix/2.4/plugin-develop/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Plugin Develop | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/plugin-develop"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name="docsearc [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -54,7 +54,7 @@ return items of HTTP include HTTP status, HTTP response header, HTTP response bo
 You may need to use <a href="/docs/apisix/2.4/plugin-interceptors">interceptors</a> to protect it.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="register-control-api"></a>Register control API<a class="hash-link" href="#register-control-api" title="Direct link to heading">#</a></h3><p>If you only want to expose the API to the localhost or intranet, you can expose it via <a href="/docs/apisix/2.4/control-api">Control API</a>.</p><p>Take a look at example-plugin plugin:</p>< [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">function _M.control_api()</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    return {</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">        {</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">            methods = {&quot;GET&quot;},</span></div><div class="token-line" style="color:#bfc7d5"><span c [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/plugin-interceptors/index.html b/docs/apisix/2.4/plugin-interceptors/index.html
index cd55943..6d836fe 100644
--- a/docs/apisix/2.4/plugin-interceptors/index.html
+++ b/docs/apisix/2.4/plugin-interceptors/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Plugin interceptors | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/plugin-interceptors"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -26,7 +26,7 @@ to run rules to protect them.</p><p>Here is an example to limit the access of <c
 to clients in <code>10.0.0.0/24</code>:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix [...]
 the name of plugin which you want to run and the <code>conf</code> is the configuration of the
 plugin.</p><p>Currently we only support a subset of plugins which can be run as interceptors.</p><p>Supported interceptors:</p><ul><li><a href="/docs/apisix/2.4/plugins/ip-restriction">ip-restriction</a></li></ul></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/plugin-interceptors.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAsp [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/plugins/api-breaker/index.html b/docs/apisix/2.4/plugins/api-breaker/index.html
index aa9ecd0..05d89b6 100644
--- a/docs/apisix/2.4/plugins/api-breaker/index.html
+++ b/docs/apisix/2.4/plugins/api-breaker/index.html
@@ -15,14 +15,14 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">api-breaker | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/plugins/api-breaker"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name="docsea [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">..</span><span class="token plain">. </span><span class="token punctuation" style="color:rgb(199, 146, 234)">..</span><span class="token plain">.</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><h2><a aria-hidden="true" tabindex="-1" class="anchor" id= [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/plugins/authz-keycloak/index.html b/docs/apisix/2.4/plugins/authz-keycloak/index.html
index 9cefaf9..8f234a8 100644
--- a/docs/apisix/2.4/plugins/authz-keycloak/index.html
+++ b/docs/apisix/2.4/plugins/authz-keycloak/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">authz-keycloak | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/plugins/authz-keycloak"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name=" [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -47,7 +47,7 @@ APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div cl
 API workflows. Run the following docker image and visit <code>http://localhost:8090</code> to view the associated policies for the unit tests.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly bash"><div tabindex="0" class="prism-code language-bash codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">docker run -e </span><span class="to [...]
 However, Keycloak&#x27;s official adapters (Java, JS) also provides path matching by querying Keycloak paths dynamically, and
 lazy loading the paths to identity resources. Future version on authz-plugin will support this functionality.</p></li><li><p>Support to read scope and configurations from the Keycloak JSON File</p></li></ul></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/plugins/authz-keycloak.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAspect [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/plugins/basic-auth/index.html b/docs/apisix/2.4/plugins/basic-auth/index.html
index f7d53d7..e4960c2 100644
--- a/docs/apisix/2.4/plugins/basic-auth/index.html
+++ b/docs/apisix/2.4/plugins/basic-auth/index.html
@@ -15,15 +15,15 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">basic-auth | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/plugins/basic-auth"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name="docsearc [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 you can delete the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> htt [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/plugins/batch-requests/index.html b/docs/apisix/2.4/plugins/batch-requests/index.html
index d810dc9..b9b8318 100644
--- a/docs/apisix/2.4/plugins/batch-requests/index.html
+++ b/docs/apisix/2.4/plugins/batch-requests/index.html
@@ -15,15 +15,15 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">batch-requests | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/plugins/batch-requests"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name=" [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 You may need to use <a href="/docs/apisix/2.4/plugin-interceptors">interceptors</a> to protect it.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="how-to-enable"></a>How To Enable<a class="hash-link" href="#how-to-enable" title="Direct link to heading">#</a></h2><p>Default enabled</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="how-to-configure"></a>How To Configure<a class="hash-link" href="#how-to-configure" title="Direct link to heading">#</a></h2><p>By def [...]
 You can configure it via <code>apisix/admin/plugin_metadata/batch-requests</code>:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:908 [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/plugins/consumer-restriction/index.html b/docs/apisix/2.4/plugins/consumer-restriction/index.html
index d0a1a20..77f9809 100644
--- a/docs/apisix/2.4/plugins/consumer-restriction/index.html
+++ b/docs/apisix/2.4/plugins/consumer-restriction/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">consumer-restriction | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/plugins/consumer-restriction"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet=" [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -26,7 +26,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/services/2 -H </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><span class="token plain"> -X PUT -d </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;</span></div [...]
 you can delete the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/rou [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/plugins/cors/index.html b/docs/apisix/2.4/plugins/cors/index.html
index d9c2ab6..da8810e 100644
--- a/docs/apisix/2.4/plugins/cors/index.html
+++ b/docs/apisix/2.4/plugins/cors/index.html
@@ -15,14 +15,14 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">cors | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/plugins/cors"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name="docsearch:docusaurus [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 When using <code>**</code>, you must fully understand that it introduces some security risks, such as CSRF, so make sure that this security level meets your expectations before using it。</p></blockquote><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="how-to-enable"></a>How To Enable<a class="hash-link" href="#how-to-enable" title="Direct link to heading">#</a></h2><p>Create a <code>Route</code> or <code>Service</code> object and configure <code>cors</code> plugin.</p><div clas [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/plugins/dubbo-proxy/index.html b/docs/apisix/2.4/plugins/dubbo-proxy/index.html
index 7511def..4837784 100644
--- a/docs/apisix/2.4/plugins/dubbo-proxy/index.html
+++ b/docs/apisix/2.4/plugins/dubbo-proxy/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">dubbo-proxy | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/plugins/dubbo-proxy"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name="docsea [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -26,7 +26,7 @@ They should provide the same result.</p><h2><a aria-hidden="true" tabindex="-1"
 you can delete the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> htt [...]
 you need to comment out in the <code>config.yaml</code>:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><div tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token key atrule">plugins</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></sp [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/plugins/echo/index.html b/docs/apisix/2.4/plugins/echo/index.html
index a84a3ef..60a6690 100644
--- a/docs/apisix/2.4/plugins/echo/index.html
+++ b/docs/apisix/2.4/plugins/echo/index.html
@@ -15,14 +15,14 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">echo | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/plugins/echo"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name="docsearch:docusaurus [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain" [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/plugins/error-log-logger/index.html b/docs/apisix/2.4/plugins/error-log-logger/index.html
index 20497df..78450e3 100644
--- a/docs/apisix/2.4/plugins/error-log-logger/index.html
+++ b/docs/apisix/2.4/plugins/error-log-logger/index.html
@@ -15,15 +15,15 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">error-log-logger | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/plugins/error-log-logger"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" na [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 <a href="/docs/apisix/2.4/batch-processor">Batch-Processor</a></p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="attributes"></a>Attributes<a class="hash-link" href="#attributes" title="Direct link to heading">#</a></h2><table><thead><tr><th>Name</th><th>Type</th><th>Requirement</th><th>Default</th><th>Valid</th><th>Description</th></tr></thead><tbody><tr><td>host</td><td>string</td><td>required</td><td></td><td></td><td>IP address or the Hostname of the TCP server.</td></tr> [...]
 It does not need to be bound in any route or service.</p><p>Here is an example of <code>conf/config.yaml</code>:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><div tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token key atrule">plugins</span><span class="token punctuation" style="color:rg [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/plugins/fault-injection/index.html b/docs/apisix/2.4/plugins/fault-injection/index.html
index ec3f5f5..c8751ba 100644
--- a/docs/apisix/2.4/plugins/fault-injection/index.html
+++ b/docs/apisix/2.4/plugins/fault-injection/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">fault-injection | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/plugins/fault-injection"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -41,7 +41,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Fault Injection</span><span class="token operator" style="color:rgb(137, 221, 255)">!</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><ol start="2"><li>The request header <code>apikey</code> is successfully matched, and the request parameters are missing, and fault injection is performed:</li></ol><div class="codeBlockCont [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Fault Injection</span><span class="token operator" style="color:rgb(137, 221, 255)">!</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><ol start="3"><li>Both request parameters and request headers fail to match, and fault injection is not performed:</li></ol><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_ [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="disable-plugin"></a>Disable Plugin<a class="hash-link" href="#disable-plugin" title="Direct link to heading">#</a></h2><p>Remove the corresponding JSON in the plugin configuration to disable the plugin immediate [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/plugins/grpc-transcode/index.html b/docs/apisix/2.4/plugins/grpc-transcode/index.html
index 803e39d..41fc2b5 100644
--- a/docs/apisix/2.4/plugins/grpc-transcode/index.html
+++ b/docs/apisix/2.4/plugins/grpc-transcode/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">grpc-transcode | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/plugins/grpc-transcode"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name=" [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -24,7 +24,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token string" style="color:rgb(195, 232, 141)">&quot;message&quot;</span><span class="token builtin class-name" style="color:rgb(255, 203, 107)">:</span><span class="token string" style="color:rgb(195, 232, 141)">&quot;Hello world&quot;</span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</spa [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token string" style="color:rgb(195, 232, 141)">&quot;workflowKey&quot;</span><span class="token builtin class-name" style="color:rgb(255, 203, 107)">:</span><span class="token string" style="color:rgb(195, 232, 141)">&quot;#2251799813685260&quot;</span><span class="token plain">,</span><span class="token string"  [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admi [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/plugins/hmac-auth/index.html b/docs/apisix/2.4/plugins/hmac-auth/index.html
index 4cdb6dc..e67cd8f 100644
--- a/docs/apisix/2.4/plugins/hmac-auth/index.html
+++ b/docs/apisix/2.4/plugins/hmac-auth/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">hmac-auth | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/plugins/hmac-auth"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name="docsearch: [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -31,7 +31,7 @@
 you can delete the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> htt [...]
 Need to pay attention to the handling of newline characters in signature strings in various languages, which can easily lead to the problem of <code>{&quot;message&quot;:&quot;Invalid signature&quot;}</code>.</p><p>Example inputs:</p><table><thead><tr><th>Variable</th><th>Value</th></tr></thead><tbody><tr><td>secret</td><td>this is secret key</td></tr><tr><td>message</td><td>this is signature string</td></tr></tbody></table><p>Example outputs:</p><table><thead><tr><th>Type</th><th>Hash</ [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/plugins/http-logger/index.html b/docs/apisix/2.4/plugins/http-logger/index.html
index 70d65a3..a608f32 100644
--- a/docs/apisix/2.4/plugins/http-logger/index.html
+++ b/docs/apisix/2.4/plugins/http-logger/index.html
@@ -15,14 +15,14 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">http-logger | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/plugins/http-logger"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name="docsea [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain" [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/plugins/index.html b/docs/apisix/2.4/plugins/index.html
index 5fb128b..31bd166 100644
--- a/docs/apisix/2.4/plugins/index.html
+++ b/docs/apisix/2.4/plugins/index.html
@@ -15,14 +15,14 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Plugins | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/plugins"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name="docsearch:docusaurus_t [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 the its execution will be skipped.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="hot-reload-in-stand-alone-mode"></a>Hot reload in stand-alone mode<a class="hash-link" href="#hot-reload-in-stand-alone-mode" title="Direct link to heading">#</a></h3><p>For stand-alone mode, see plugin related section in <a href="/docs/apisix/2.4/stand-alone">stand alone mode</a>.</p></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/ap [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/plugins/ip-restriction/index.html b/docs/apisix/2.4/plugins/ip-restriction/index.html
index 9da46a9..1c5fa57 100644
--- a/docs/apisix/2.4/plugins/ip-restriction/index.html
+++ b/docs/apisix/2.4/plugins/ip-restriction/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">ip-restriction | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/plugins/ip-restriction"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name=" [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -28,7 +28,7 @@ you can send the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/rou [...]
 you can delete the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> htt [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/plugins/jwt-auth/index.html b/docs/apisix/2.4/plugins/jwt-auth/index.html
index c15d679..c45bde9 100644
--- a/docs/apisix/2.4/plugins/jwt-auth/index.html
+++ b/docs/apisix/2.4/plugins/jwt-auth/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">jwt-auth | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/plugins/jwt-auth"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name="docsearch:do [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -29,7 +29,7 @@ You may need to use <a href="/docs/apisix/2.4/plugin-interceptors">interceptors<
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token operator" style="color:rgb(137, 221, 255)">!</span><span class="token plain">DOCTYPE html</span><span class="token operator" style="color:rgb(137, 221, 255)">&gt;</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token op [...]
 you can delete the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> htt [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/plugins/kafka-logger/index.html b/docs/apisix/2.4/plugins/kafka-logger/index.html
index 076fbe4..f9fc6db 100644
--- a/docs/apisix/2.4/plugins/kafka-logger/index.html
+++ b/docs/apisix/2.4/plugins/kafka-logger/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">kafka-logger | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/plugins/kafka-logger"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name="docs [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -28,7 +28,7 @@ or every <code>buffer_duration</code> flush the buffer.</p><p>In case of success
 In case of errors, returns <code>nil</code> with a string describing the error (<code>buffer overflow</code>).</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="sample-broker-list"></a>Sample broker list<a class="hash-link" href="#sample-broker-list" title="Direct link to heading">#</a></h3><p>This plugin supports to push in to more than one broker at a time. Specify the brokers of the external kafka servers as below
 sample to take effect of this functionality.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly json"><div tabindex="0" class="prism-code language-json codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><s [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain" [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/plugins/key-auth/index.html b/docs/apisix/2.4/plugins/key-auth/index.html
index 14db27d..994f31b 100644
--- a/docs/apisix/2.4/plugins/key-auth/index.html
+++ b/docs/apisix/2.4/plugins/key-auth/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">key-auth | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/plugins/key-auth"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name="docsearch:do [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -26,7 +26,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.2:9080/index.html -H </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;apikey: abcabcabc&#x27;</span><span class="token plain"> -i</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">HTTP/1.1 </span><span class="token number" st [...]
 you can delete the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> htt [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/plugins/limit-conn/index.html b/docs/apisix/2.4/plugins/limit-conn/index.html
index e4c8796..76f2d38 100644
--- a/docs/apisix/2.4/plugins/limit-conn/index.html
+++ b/docs/apisix/2.4/plugins/limit-conn/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">limit-conn | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/plugins/limit-conn"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name="docsearc [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -26,7 +26,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> -i http://127.0.0.1:9080/index.html?sleep</span><span class="token operator" style="color:rgb(137, 221, 255)">=</span><span class="token number" style="color:rgb(247, 140, 108)">20</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></ [...]
 you can delete the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/rou [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/plugins/limit-count/index.html b/docs/apisix/2.4/plugins/limit-count/index.html
index 0a75618..3071dc9 100644
--- a/docs/apisix/2.4/plugins/limit-count/index.html
+++ b/docs/apisix/2.4/plugins/limit-count/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">limit-connt | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/plugins/limit-count"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name="docsea [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -27,7 +27,7 @@ which mean the total number of requests and the remaining number of requests tha
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token plain">html</span><span class="token operator" style="color:rgb(137, 221, 255)">&gt;</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token plain"> [...]
 you can delete the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/rou [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/plugins/limit-req/index.html b/docs/apisix/2.4/plugins/limit-req/index.html
index ad9475e..323f36c 100644
--- a/docs/apisix/2.4/plugins/limit-req/index.html
+++ b/docs/apisix/2.4/plugins/limit-req/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">limit-req | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/plugins/limit-req"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name="docsearch: [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -24,7 +24,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag" style="color:rgb(255, 85, 114)">html</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token tag punctuation" style="color:rgb(19 [...]
 you can delete the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/rou [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/plugins/log-rotate/index.html b/docs/apisix/2.4/plugins/log-rotate/index.html
index e7763b1..4d27389 100644
--- a/docs/apisix/2.4/plugins/log-rotate/index.html
+++ b/docs/apisix/2.4/plugins/log-rotate/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">log-rotate | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/plugins/log-rotate"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name="docsearc [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -25,7 +25,7 @@ When the number of log files exceeds the remaining number, the old files are aut
 For example, the following example is a sample based on <code>interval: 10</code> and <code>max_kept: 10</code>.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ ll logs</span></div><div class="token-line" style="color:#bfc7 [...]
 It does not need to be bound in any route or service.</p><p>Here is an example of <code>conf/config.yaml</code>:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><div tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token key atrule">plugins</span><span class="token punctuation" style="color:rg [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token key atrule">plugin_attr</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    </span><span class="token key atrule">log-rotate</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></span></ [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/plugins/mqtt-proxy/index.html b/docs/apisix/2.4/plugins/mqtt-proxy/index.html
index 8cb79ef..0734eb8 100644
--- a/docs/apisix/2.4/plugins/mqtt-proxy/index.html
+++ b/docs/apisix/2.4/plugins/mqtt-proxy/index.html
@@ -15,15 +15,15 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">mqtt-proxy | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/plugins/mqtt-proxy"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name="docsearc [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 balance by <code>client_id</code> of MQTT.</p><p>And this plugin both support MQTT protocol <a href="http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html" target="_blank" rel="noopener noreferrer">3.1.*</a> and <a href="https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html" target="_blank" rel="noopener noreferrer">5.0</a>.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="attributes"></a>Attributes<a class="hash-link" href="#attributes" title="Direct link t [...]
 For example, the following configuration represents listening on the 9100 TCP port.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><div tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(199, 146, 234)">...</span><span cla [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/plugins/node-status/index.html b/docs/apisix/2.4/plugins/node-status/index.html
index 112f360..d5fbae9 100644
--- a/docs/apisix/2.4/plugins/node-status/index.html
+++ b/docs/apisix/2.4/plugins/node-status/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">node-status | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/plugins/node-status"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name="docsea [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -28,7 +28,7 @@ And this plugin will not make any difference in future requests, so usually we d
 then you can not add this plugin in any route.</li></ol><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-undefined codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">plugins:                          # plugin list</span></div><div class="token-line" style="color:#bfc7d5"><span class="token p [...]
 you can delete the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately.</li></ol><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly sh"><div tabindex="0" class="prism-code language-sh codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ curl http://127.0.0.1:9080/apisix/admin/routes/1 -H &#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27; -X [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/plugins/openid-connect/index.html b/docs/apisix/2.4/plugins/openid-connect/index.html
index acc468b..a9909b0 100644
--- a/docs/apisix/2.4/plugins/openid-connect/index.html
+++ b/docs/apisix/2.4/plugins/openid-connect/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">openid-connect | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/plugins/openid-connect"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name=" [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -47,7 +47,7 @@ Once the user has authenticated against the identity provider, the plugin will o
 and further information from the identity provider on behalf of the user. The information is currently stored
 in a session cookie that the user agent can submit on subsequent requests. The plugin will recognize the cookie
 and use the information therein to avoid having to go through the flow again.</p><p>The following command adds this mode of operation to a route.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly bash"><div tabindex="0" class="prism-code language-bash codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255 [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/plugins/prometheus/index.html b/docs/apisix/2.4/plugins/prometheus/index.html
index e1f4e01..2002a89 100644
--- a/docs/apisix/2.4/plugins/prometheus/index.html
+++ b/docs/apisix/2.4/plugins/prometheus/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">prometheus | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/plugins/prometheus"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name="docsearc [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -25,7 +25,7 @@ You may need to use <a href="/docs/apisix/2.4/plugin-interceptors">interceptors<
 any options yet.</p><p>For example:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1  -H </span><span class= [...]
 these metric data.</p><p>For example like this:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><div tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token key atrule">scrape_configs</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></span [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admi [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/plugins/proxy-cache/index.html b/docs/apisix/2.4/plugins/proxy-cache/index.html
index a7bfe06..e86a752 100644
--- a/docs/apisix/2.4/plugins/proxy-cache/index.html
+++ b/docs/apisix/2.4/plugins/proxy-cache/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">proxy-cache | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/plugins/proxy-cache"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name="docsea [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -26,7 +26,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><blockquote><p>http status is &#x27;200&#x27; and the response header contains &#x27;Apisix-Cache-Status&#x27; to indicate that the plug-in is enabled.</p></blockquote><ol start="3"><li>Verify that the data is cached and request the above address again:</li></ol><div cl [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><blockquote><p>The response header <code>Apisix-Cache-Status</code> value has changed to HIT, indicating that the data has been cached</p></blockquote><p>Example 3: Specifying cache_zone as <code>invalid_disk_cache</code> is inconsistent with the cache area <code>disk_c [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token plain">html</span><span class="token operator" style="color:rgb(137, 221, 255)">&gt;</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token plain"> [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/plugins/proxy-mirror/index.html b/docs/apisix/2.4/plugins/proxy-mirror/index.html
index faa62bc..f7cc707 100644
--- a/docs/apisix/2.4/plugins/proxy-mirror/index.html
+++ b/docs/apisix/2.4/plugins/proxy-mirror/index.html
@@ -15,15 +15,15 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">proxy-mirror | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/plugins/proxy-mirror"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name="docs [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello world</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><blockquote><p>Since the specified mirror address is 127.0.0.1:9797, so to verify whether this plugin is in effect, we need to confirm on the service with port 9797.
 For example, we can start a simple server:  python -m SimpleHTTPServer 9797</p></blockquote><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="disable-plugin"></a>Disable Plugin<a class="hash-link" href="#disable-plugin" title="Direct link to heading">#</a></h2><p>Remove the corresponding JSON in the plugin configuration to disable the plugin immediately without restarting the service:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex= [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/plugins/proxy-rewrite/index.html b/docs/apisix/2.4/plugins/proxy-rewrite/index.html
index e76dcf9..86a004b 100644
--- a/docs/apisix/2.4/plugins/proxy-rewrite/index.html
+++ b/docs/apisix/2.4/plugins/proxy-rewrite/index.html
@@ -15,15 +15,15 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">proxy-rewrite | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/plugins/proxy-rewrite"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name="do [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 you can delete the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately :</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/ro [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/plugins/redirect/index.html b/docs/apisix/2.4/plugins/redirect/index.html
index 1ffa9f0..9873eb8 100644
--- a/docs/apisix/2.4/plugins/redirect/index.html
+++ b/docs/apisix/2.4/plugins/redirect/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">redirect | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/plugins/redirect"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name="docsearch:do [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -24,7 +24,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">..</span><span class="token plain">.</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>We can check the response code and the response header <code>Location</code>.</p><p>It shows that the <code>redirect</code> plugin is in effect.</p><p> Here is an e [...]
 you can delete the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately :</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/ro [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/plugins/referer-restriction/index.html b/docs/apisix/2.4/plugins/referer-restriction/index.html
index eca026e..5c085a6 100644
--- a/docs/apisix/2.4/plugins/referer-restriction/index.html
+++ b/docs/apisix/2.4/plugins/referer-restriction/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">referer-restriction | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/plugins/referer-restriction"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="tr [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -24,7 +24,7 @@
 whitelisting request header Referrers.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="attributes"></a>Attributes<a class="hash-link" href="#attributes" title="Direct link to heading">#</a></h2><table><thead><tr><th>Name</th><th>Type</th><th>Requirement</th><th>Default</th><th>Valid</th><th>Description</th></tr></thead><tbody><tr><td>whitelist</td><td>array[string]</td><td>required</td><td></td><td></td><td>List of hostname to whitelist. The hostname can be started with <co [...]
 you can delete the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> htt [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/plugins/request-id/index.html b/docs/apisix/2.4/plugins/request-id/index.html
index 491cabd..9d16d71 100644
--- a/docs/apisix/2.4/plugins/request-id/index.html
+++ b/docs/apisix/2.4/plugins/request-id/index.html
@@ -15,15 +15,15 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">request-id | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/plugins/request-id"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name="docsearc [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 API request. The plugin will not add a request id if the <code>header_name</code> is already present in the request.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="attributes"></a>Attributes<a class="hash-link" href="#attributes" title="Direct link to heading">#</a></h2><table><thead><tr><th>Name</th><th>Type</th><th>Requirement</th><th>Default</th><th>Valid</th><th>Description</th></tr></thead><tbody><tr><td>header_name</td><td>string</td><td>optional</td><td>&quot;X-Requ [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admi [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/plugins/request-validation/index.html b/docs/apisix/2.4/plugins/request-validation/index.html
index 2fb5d18..09990cb 100644
--- a/docs/apisix/2.4/plugins/request-validation/index.html
+++ b/docs/apisix/2.4/plugins/request-validation/index.html
@@ -15,15 +15,15 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">request-validation | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/plugins/request-validation"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 json-schema to validate the schema. The plugin can be used to validate the headers and body data.</p><p>For more information on schema, refer to <a href="https://github.com/api7/jsonschema" target="_blank" rel="noopener noreferrer">JSON schema</a> for more information.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="attributes"></a>Attributes<a class="hash-link" href="#attributes" title="Direct link to heading">#</a></h2><table><thead><tr><th>Name</th><th>Type</th><th>Requi [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admi [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/plugins/response-rewrite/index.html b/docs/apisix/2.4/plugins/response-rewrite/index.html
index 932b554..b5f18ee 100644
--- a/docs/apisix/2.4/plugins/response-rewrite/index.html
+++ b/docs/apisix/2.4/plugins/response-rewrite/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">response-rewrite | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/plugins/response-rewrite"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" na [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -25,7 +25,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">{&quot;code&quot;:&quot;ok&quot;,&quot;message&quot;:&quot;new json body&quot;}</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>This means that the <code>response rewrite</code> plugin is in effect.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="disable-plugin"></a>Disable Plugin<a class="hash-link" href= [...]
 you can delete the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/rou [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/plugins/server-info/index.html b/docs/apisix/2.4/plugins/server-info/index.html
index 6026f31..ed4c1cc 100644
--- a/docs/apisix/2.4/plugins/server-info/index.html
+++ b/docs/apisix/2.4/plugins/server-info/index.html
@@ -15,13 +15,13 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">server-info | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/plugins/server-info"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name="docsea [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/plugins/serverless/index.html b/docs/apisix/2.4/plugins/serverless/index.html
index 84b3103..8135952 100644
--- a/docs/apisix/2.4/plugins/serverless/index.html
+++ b/docs/apisix/2.4/plugins/serverless/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">serverless | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/plugins/serverless"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name="docsearc [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -24,7 +24,7 @@
 which indicates that the specified function is in effect.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="disable-plugin"></a>Disable Plugin<a class="hash-link" href="#disable-plugin" title="Direct link to heading">#</a></h2><p>When you want to disable the serverless plugin, it is very simple,
 you can delete the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/rou [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/plugins/skywalking/index.html b/docs/apisix/2.4/plugins/skywalking/index.html
index 4d5b5c3..b7ce1de 100644
--- a/docs/apisix/2.4/plugins/skywalking/index.html
+++ b/docs/apisix/2.4/plugins/skywalking/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">skywalking | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/plugins/skywalking"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name="docsearc [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -36,7 +36,7 @@ you need to comment out in the <code>config.yaml</code>:</p><div class="codeBloc
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token keyword" style="font-style:italic">import</span><span class="token plain"> </span><span class="token namespace" style="color:rgb(178, 204, 214)">org</span><span class="token namespace punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token namespace" style="color:rgb(178, 204, 214)">springframework</span><span class="token namespace punctuation" style="color:rgb [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic">/**</span></div><div class="token-line" style="color:#bfc7d5"><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"> * @author cyxinda</span></div><div class="token-line" style="color:#bfc7d5"><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"> * @create 2020-05-29 14 [...]
 update the file of agent/config/agent.config</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">agent.service_name</span><span class="token operator" style="color:rgb(137, 221, 255)">=</span><span class="token plain">yourservern [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/plugins/sls-logger/index.html b/docs/apisix/2.4/plugins/sls-logger/index.html
index 1a3a6c9..8b8f626 100644
--- a/docs/apisix/2.4/plugins/sls-logger/index.html
+++ b/docs/apisix/2.4/plugins/sls-logger/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">sls-logger | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/plugins/sls-logger"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name="docsearc [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -24,7 +24,7 @@
 <a href="/docs/apisix/2.4/batch-processor">Batch-Processor</a></p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="attributes"></a>Attributes<a class="hash-link" href="#attributes" title="Direct link to heading">#</a></h2><table><thead><tr><th>Name</th><th>Requirement</th><th>Description</th></tr></thead><tbody><tr><td>host</td><td>required</td><td>IP address or the Hostname of the TCP server, please reference ali cloud log <a href="https://help.aliyun.com/document_detail/29008 [...]
 </span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="test-plugin"></a>Test Plugin<a class="hash-link" href="#test-plugin" title="Direct link to heading">#</a></h2><ul><li>success:</li></ul><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div  [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain" [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/plugins/syslog/index.html b/docs/apisix/2.4/plugins/syslog/index.html
index aa907be..090d1d6 100644
--- a/docs/apisix/2.4/plugins/syslog/index.html
+++ b/docs/apisix/2.4/plugins/syslog/index.html
@@ -15,14 +15,14 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">syslog | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/plugins/syslog"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name="docsearch:docusa [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain" [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/plugins/tcp-logger/index.html b/docs/apisix/2.4/plugins/tcp-logger/index.html
index dfa1913..92c0d17 100644
--- a/docs/apisix/2.4/plugins/tcp-logger/index.html
+++ b/docs/apisix/2.4/plugins/tcp-logger/index.html
@@ -15,15 +15,15 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">tcp-logger | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/plugins/tcp-logger"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name="docsearc [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 <a href="/docs/apisix/2.4/batch-processor">Batch-Processor</a></p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="attributes"></a>Attributes<a class="hash-link" href="#attributes" title="Direct link to heading">#</a></h2><table><thead><tr><th>Name</th><th>Type</th><th>Requirement</th><th>Default</th><th>Valid</th><th>Description</th></tr></thead><tbody><tr><td>host</td><td>string</td><td>required</td><td></td><td></td><td>IP address or the Hostname of the TCP server.</td></tr> [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain" [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/plugins/traffic-split/index.html b/docs/apisix/2.4/plugins/traffic-split/index.html
index 7917e9b..6d1b133 100644
--- a/docs/apisix/2.4/plugins/traffic-split/index.html
+++ b/docs/apisix/2.4/plugins/traffic-split/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">traffic-split | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/plugins/traffic-split"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name="do [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -34,7 +34,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">world </span><span class="token number" style="color:rgb(247, 140, 108)">1981</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello </span><span class="token number" style="color:rgb(247, 140, 108)">1980</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>After 5 requests, the service of port <code>1981</code> was hit 3 times, and the service of port <code>1980</code> was hit 2 times.</p><blockquote><ol start="3"><li>The expression verification of [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello </span><span class="token number" style="color:rgb(247, 140, 108)">1980</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="disable-plugin"></a>Disable Plugin<a class="hash-link" href="#disable-plugin" title="Direct link to heading">#</a></h2><p>When you want to  [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/plugins/udp-logger/index.html b/docs/apisix/2.4/plugins/udp-logger/index.html
index af95771..7c26b11 100644
--- a/docs/apisix/2.4/plugins/udp-logger/index.html
+++ b/docs/apisix/2.4/plugins/udp-logger/index.html
@@ -15,15 +15,15 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">udp-logger | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/plugins/udp-logger"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name="docsearc [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 <a href="/docs/apisix/2.4/batch-processor">Batch-Processor</a></p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="attributes"></a>Attributes<a class="hash-link" href="#attributes" title="Direct link to heading">#</a></h2><table><thead><tr><th>Name</th><th>Type</th><th>Requirement</th><th>Default</th><th>Valid</th><th>Description</th></tr></thead><tbody><tr><td>host</td><td>string</td><td>required</td><td></td><td></td><td>IP address or the Hostname of the UDP server.</td></tr> [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain" [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/plugins/uri-blocker/index.html b/docs/apisix/2.4/plugins/uri-blocker/index.html
index 5251078..8b3b229 100644
--- a/docs/apisix/2.4/plugins/uri-blocker/index.html
+++ b/docs/apisix/2.4/plugins/uri-blocker/index.html
@@ -15,14 +15,14 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">uri-blocker | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/plugins/uri-blocker"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name="docsea [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">..</span><span class="token plain">. </span><span class="token punctuation" style="color:rgb(199, 146, 234)">..</span><span class="token plain">.</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><h2><a aria-hidden="true" tabindex="-1" class="anchor" id= [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/plugins/wolf-rbac/index.html b/docs/apisix/2.4/plugins/wolf-rbac/index.html
index 6093d6a..f8eb294 100644
--- a/docs/apisix/2.4/plugins/wolf-rbac/index.html
+++ b/docs/apisix/2.4/plugins/wolf-rbac/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">wolf-rbac | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/plugins/wolf-rbac"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name="docsearch: [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -43,7 +43,7 @@ The rbac feature is provided by <a href="https://github.com/iGeeky/wolf" target=
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:rgb(247, 140, 108)">200</span><span class="token plain"> OK</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token string" style="color:rgb(195, 232, 141)">&quot;message&quot;</span><span class="token builtin class-name" st [...]
 you can delete the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/rou [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/plugins/zipkin/index.html b/docs/apisix/2.4/plugins/zipkin/index.html
index e83e081..1db834e 100644
--- a/docs/apisix/2.4/plugins/zipkin/index.html
+++ b/docs/apisix/2.4/plugins/zipkin/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Zipkin | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/plugins/zipkin"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name="docsearch:docusa [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -29,7 +29,7 @@ no need to restart the service, it will take effect immediately:</p><div class="
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    tracer := GetTracer(...)</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    // use middleware to extract parentID from http header that injected by APISIX</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    r.Use(func(c *gin.Context) {</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">        span := this.Tracer.Extract(b3.ExtractHTTP(c.Request))</span></div><div class="token-line" style="color:#bfc7d5"><s [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">}</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/plugins/zipkin.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAsp [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/powered-by/index.html b/docs/apisix/2.4/powered-by/index.html
index 2d6f15f..76a129d 100644
--- a/docs/apisix/2.4/powered-by/index.html
+++ b/docs/apisix/2.4/powered-by/index.html
@@ -15,14 +15,14 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Powered by Apache APISIX | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/powered-by"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name="do [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 or providing commercial products including APISIX.</p><p>Users are encouraged to add themselves to this page, <a href="https://github.com/apache/apisix/issues/487" target="_blank" rel="noopener noreferrer">issue</a> and PR are welcomed.</p><ol><li><a href="https://hy.10086.cn/" target="_blank" rel="nofollow">中移杭研</a></li><li><a href="http://www.163.com" target="_blank" rel="nofollow">Netease 网易</a></li><li><a href="https://www.360.cn/" target="_blank" rel="nofollow">360 奇虎</a></li><li><a [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/profile/index.html b/docs/apisix/2.4/profile/index.html
index 9734ad4..b8137da 100644
--- a/docs/apisix/2.4/profile/index.html
+++ b/docs/apisix/2.4/profile/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Configuration file switching based on environment variables | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/profile"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta d [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -27,7 +27,7 @@ requirements, we need to change the parameters in the configuration file to the
 development environment. You have to change it back. It&#x27;s very easy to make mistakes.</p><p>The solution to the above problem is to distinguish the current running environment through environment variables, and switch
 between different configuration files through environment variables. The corresponding environment variable in APISIX is: <code>APISIX_PROFILE</code></p><p>When <code>APISIX_PROFILE</code> is not set, the following three configuration files are used by default:</p><ul><li>conf/config.yaml</li><li>conf/apisix.yaml</li><li>conf/debug.yaml</li></ul><p>If the value of <code>APISIX_PROFILE</code> is set to <code>prod</code>, the following three configuration files are used:</p><ul><li>conf/co [...]
 tools such as git can be configured, and version management can be better achieved.</p></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/profile.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAspectRatio="xMidYMid meet" role="img" viewBox="0 0 40 40" class="iconEdit_2_ui" aria-label="Edit page"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/router-radixtree/index.html b/docs/apisix/2.4/router-radixtree/index.html
index e2ea2dd..026fa5b 100644
--- a/docs/apisix/2.4/router-radixtree/index.html
+++ b/docs/apisix/2.4/router-radixtree/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Router radixtree | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/router-radixtree"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name="docs [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -25,7 +25,7 @@
 here is an simple example:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes [...]
 data from the request body. This limitation is configured via:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><div tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token key atrule">graphql</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain [...]
 </span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>If you need to pass a graphql body which is larger than the limitation, you can increase the value in <code>conf/config.yaml</code>.</p></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/router-radixtree.md" target="_blank" rel="noreferrer noopener"><svg fill= [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/stand-alone/index.html b/docs/apisix/2.4/stand-alone/index.html
index 2640d79..a8e5adf 100644
--- a/docs/apisix/2.4/stand-alone/index.html
+++ b/docs/apisix/2.4/stand-alone/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Stand-alone mode | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/stand-alone"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name="docsearch [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -24,7 +24,7 @@
 the APISIX will check if this file has any changed every second.
 If the file changed and we found <code>#END</code> at the end of the file,
 APISIX will load the rules in this file and update to memory of APISIX.</p><p>Here is a mini example:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><div tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token key atrule">routes</span><span class="token punctuation" style="color:rgb(199, 146,  [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/stream-proxy/index.html b/docs/apisix/2.4/stream-proxy/index.html
index 71e2fa3..23b39a2 100644
--- a/docs/apisix/2.4/stream-proxy/index.html
+++ b/docs/apisix/2.4/stream-proxy/index.html
@@ -15,14 +15,14 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Stream Proxy | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.4/stream-proxy"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.4"><meta data-react-helmet="true" name="docsearch:do [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 By default, no any stream proxy is enabled.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><div tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token key atrule">apisix</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></span></div><div  [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/FAQ/index.html b/docs/apisix/2.5/FAQ/index.html
index cd024a6..3f55e20 100644
--- a/docs/apisix/2.5/FAQ/index.html
+++ b/docs/apisix/2.5/FAQ/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">FAQ | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/FAQ"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" cont [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -33,7 +33,7 @@ For China mainland users, you can use the <code>luarocks.cn</code> as the luaroc
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Error: A newer Command Line Tools release is available.</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Update them from Software Update </span><span class="token keyword" style="font-style:italic">in</span><span class="token plain"> System Preferences or</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">https://developer.apple.com/dow [...]
 See the <code>Hot reload</code> section in <a href="/docs/apisix/2.5/plugins">plugins</a> for how to do that.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="how-to-make-apisix-listen-on-multiple-ports-when-handling-http-or-https-requests"></a>How to make APISIX listen on multiple ports when handling HTTP or HTTPS requests?<a class="hash-link" href="#how-to-make-apisix-listen-on-multiple-ports-when-handling-http-or-https-requests" title="Direct link to heading">#</a></h2><p [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># The uri match failed</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/12ab -i</span></div><div class="token-line" style="c [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/IGNORE_DOC/index.html b/docs/apisix/2.5/IGNORE_DOC/index.html
index 778d91b..148c443 100644
--- a/docs/apisix/2.5/IGNORE_DOC/index.html
+++ b/docs/apisix/2.5/IGNORE_DOC/index.html
@@ -15,13 +15,13 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">IGNORE_DOC | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/IGNORE_DOC"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docsearch:docusa [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/admin-api/index.html b/docs/apisix/2.5/admin-api/index.html
index 9c2074b..4e06922 100644
--- a/docs/apisix/2.5/admin-api/index.html
+++ b/docs/apisix/2.5/admin-api/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Admin API | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/admin-api"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docsearch:docusaur [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -81,7 +81,7 @@
 used when all the nodes with higher priority are unavailable or tried.</p><p>As the default priority is 0, we can configure nodes with negative priority as the backup.</p><p>For example,</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly json"><div tabindex="0" class="prism-code language-json codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token [...]
 Therefore it is the backup of <code>127.0.0.1</code>.</p><blockquote><p>Response Parameters</p></blockquote><p>Return response from etcd currently.</p><p><a href="#table-of-contents">Back to TOC</a></p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="ssl"></a>SSL<a class="hash-link" href="#ssl" title="Direct link to heading">#</a></h2><p><em>API</em>:/apisix/admin/ssl/{id}</p><p><em>Description</em>:SSL.</p><blockquote><p>Request Methods:</p></blockquote><table><thead><tr><th>M [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> </span><span class="token string" style="color:rgb(195, 232, 141)">&quot;http://127.0.0.1:9080/apisix/admin/plugins/key-auth&quot;</span><span class="token plain"> -H </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><s [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/architecture-design/apisix/index.html b/docs/apisix/2.5/architecture-design/apisix/index.html
index 84ab757..584ab66 100644
--- a/docs/apisix/2.5/architecture-design/apisix/index.html
+++ b/docs/apisix/2.5/architecture-design/apisix/index.html
@@ -15,15 +15,15 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">APISIX | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/architecture-design/apisix"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docs [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 and keep other configurations as default. The configuration in <code>config.yaml</code> should be like this:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><div tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token key atrule">apisix</span><span class="token punctuation" style="color:rgb(199 [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token key atrule">etcd</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  </span><span class="token key atrule">host</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> </span><span class="tok [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/architecture-design/consumer/index.html b/docs/apisix/2.5/architecture-design/consumer/index.html
index 09f52ad..01de2db 100644
--- a/docs/apisix/2.5/architecture-design/consumer/index.html
+++ b/docs/apisix/2.5/architecture-design/consumer/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Consumer | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/architecture-design/consumer"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name=" [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -28,7 +28,7 @@
 </span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>Use the <a href="/docs/apisix/2.5/plugins/consumer-restriction">consumer-restriction</a> plug-in to restrict the access of Jack to this API.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5 [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># Repeated tests, all return 403; Jack is forbidden to access this API</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/he [...]
 </span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/architecture-design/consumer.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAspectRatio="xMidYMid meet" role="img" viewBox="0 0 40 40" class="iconEdit_ [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/architecture-design/debug-mode/index.html b/docs/apisix/2.5/architecture-design/debug-mode/index.html
index 9c9f6e1..e44d078 100644
--- a/docs/apisix/2.5/architecture-design/debug-mode/index.html
+++ b/docs/apisix/2.5/architecture-design/debug-mode/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Debug Mode | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/architecture-design/debug-mode"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" na [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -24,7 +24,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello world</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>If the information can be delivered via HTTP response header, for example, the plugin is in stream
 subsystem, the information will be logged in the error log with <code>warn</code> level.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="advanced-debug-mode"></a>Advanced Debug Mode<a class="hash-link" href="#advanced-debug-mode" title="Direct link to heading">#</a></h3><p>Enable advanced debug mode by modifying the configuration in <code>conf/debug.yaml</code> file. Because there will be a check every second, only the checker reads the <code>#END</code> flag, and the file  [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token key atrule">hook_phase</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> </span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># Module Function List, Name: hook_phase</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  </span [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/architecture-design/global-rule/index.html b/docs/apisix/2.5/architecture-design/global-rule/index.html
index f38141f..77ff454 100644
--- a/docs/apisix/2.5/architecture-design/global-rule/index.html
+++ b/docs/apisix/2.5/architecture-design/global-rule/index.html
@@ -15,14 +15,14 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Global rule | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/architecture-design/global-rule"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true"  [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 We can register a global <a href="/docs/apisix/2.5/architecture-design/plugin">Plugin</a> with <code>GlobalRule</code>:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span clas [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/architecture-design/index.html b/docs/apisix/2.5/architecture-design/index.html
index 3b0c4b5..09abcaf 100644
--- a/docs/apisix/2.5/architecture-design/index.html
+++ b/docs/apisix/2.5/architecture-design/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Architecture Design | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/architecture-design"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -41,7 +41,7 @@ will be merged into it. The same plugin in the plugin config will override one i
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello world</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>If the information can be delivered via HTTP response header, for example, the plugin is in stream
 subsystem, the information will be logged in the error log with <code>warn</code> level.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="advanced-debug-mode"></a>Advanced Debug Mode<a class="hash-link" href="#advanced-debug-mode" title="Direct link to heading">#</a></h3><p>Enable advanced debug mode by modifying the configuration in <code>conf/debug.yaml</code> file. Because there will be a check every second, only the checker reads the <code>#END</code> flag, and the file  [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token key atrule">hook_phase</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> </span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># Module Function List, Name: hook_phase</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  </span [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/architecture-design/plugin-config/index.html b/docs/apisix/2.5/architecture-design/plugin-config/index.html
index 1892760..ff340fb 100644
--- a/docs/apisix/2.5/architecture-design/plugin-config/index.html
+++ b/docs/apisix/2.5/architecture-design/plugin-config/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Plugin Config | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/architecture-design/plugin-config"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="tr [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -24,7 +24,7 @@
 bind it with a route directly.</p><p>For instance, you can do something like:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># create a plugin config</span><span class="to [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># bind it to route</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1 -H </span><span class="token str [...]
 will be merged into it. The same plugin in the plugin config will override one in the <code>plugins</code>.</p><p>For example, when we configure a plugin config</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-undefined codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">{</span></div><div [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/architecture-design/plugin/index.html b/docs/apisix/2.5/architecture-design/plugin/index.html
index 4c371c6..a7da699 100644
--- a/docs/apisix/2.5/architecture-design/plugin/index.html
+++ b/docs/apisix/2.5/architecture-design/plugin/index.html
@@ -15,13 +15,13 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Plugin | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/architecture-design/plugin"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docs [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/architecture-design/route/index.html b/docs/apisix/2.5/architecture-design/route/index.html
index 09a1567..ba30e0f 100644
--- a/docs/apisix/2.5/architecture-design/route/index.html
+++ b/docs/apisix/2.5/architecture-design/route/index.html
@@ -15,15 +15,15 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Route | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/architecture-design/route"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docsea [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:rgb(247, 140, 108)">201</span><span class="token plain"> Created</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Date: Sat, </span><span class="token number" style="color:rgb(247, 140, 108)">31</span><span class="token plain"> Aug </span><span class="token number" style="color:rgb(247, 140, 108)">2019</span><span  [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token string" style="color:rgb(195, 232, 141)">&quot;node&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token string" style="color:rgb(195, 232, 141)">&quot;value&quot;</span><span class="token plain">:</span><span class="token  [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/architecture-design/router/index.html b/docs/apisix/2.5/architecture-design/router/index.html
index 0aab564..98b5a59 100644
--- a/docs/apisix/2.5/architecture-design/router/index.html
+++ b/docs/apisix/2.5/architecture-design/router/index.html
@@ -15,13 +15,13 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Router | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/architecture-design/router"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docs [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/architecture-design/script/index.html b/docs/apisix/2.5/architecture-design/script/index.html
index f68793b..bbf42bd 100644
--- a/docs/apisix/2.5/architecture-design/script/index.html
+++ b/docs/apisix/2.5/architecture-design/script/index.html
@@ -15,13 +15,13 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Script | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/architecture-design/script"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docs [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/architecture-design/service/index.html b/docs/apisix/2.5/architecture-design/service/index.html
index 7abe9cd..a55e538 100644
--- a/docs/apisix/2.5/architecture-design/service/index.html
+++ b/docs/apisix/2.5/architecture-design/service/index.html
@@ -15,15 +15,15 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Service | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/architecture-design/service"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="do [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># create new Route and reference the service by id `200`</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/route [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/101 -H </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><span class="token plain"> -X PUT -d </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;</span></div [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/architecture-design/upstream/index.html b/docs/apisix/2.5/architecture-design/upstream/index.html
index 3cd41cd..114e6fd 100644
--- a/docs/apisix/2.5/architecture-design/upstream/index.html
+++ b/docs/apisix/2.5/architecture-design/upstream/index.html
@@ -15,13 +15,13 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Upstream | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/architecture-design/upstream"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name=" [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/aws/index.html b/docs/apisix/2.5/aws/index.html
index e4a3eb4..17cf845 100644
--- a/docs/apisix/2.5/aws/index.html
+++ b/docs/apisix/2.5/aws/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Running APISIX in AWS with AWS CDK | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/aws"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name= [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -43,7 +43,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Non-authoritative answer:</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Name:   apiSi-PhpSe-FOL2MM4TW7G8-09029e095ab36fcc.elb.us-west-2.amazonaws.com</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Address: </span><span class="token number" style="color:rgb(247, 140, 108)">44.224</span><span class="token plain">.124.213</span></div [...]
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/aws-define-service.png">
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/aws-define-route.png"></p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="validation"></a>Validation<a class="hash-link" href="#validation" title="Direct link to heading">#</a></h2><p>OK. Let&#x27;s test the <code>/index.php</code> on <code>{apiSix.ApiSixServiceServiceURL}/index.php</code></p><p><img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/aws-caddy-php-we [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/batch-processor/index.html b/docs/apisix/2.5/batch-processor/index.html
index 7bfe0f2..566a7cb 100644
--- a/docs/apisix/2.5/batch-processor/index.html
+++ b/docs/apisix/2.5/batch-processor/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Batch Processor | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/batch-processor"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docsea [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -31,7 +31,7 @@ argument and the batch configuration as the second parameter.</p><div class="cod
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">if batch_processor then</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    batch_processor:push({hello=&#x27;world&#x27;})</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">end</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>Note: Please make sure th [...]
 The timer to flush the batch runs based on the <code>inactive_timeout</code> configuration. Thus, for optimal usage,
 keep the <code>inactive_timeout</code> smaller than the <code>buffer_duration</code>.</p></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/batch-processor.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAspectRatio="xMidYMid meet" role="img" viewBox="0 0 40 40" class="iconEdit_2_ui" aria-label="Edit page"><g><path d="m34.5 11.7l-3 3 [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/benchmark/index.html b/docs/apisix/2.5/benchmark/index.html
index ef6f94a..2523f72 100644
--- a/docs/apisix/2.5/benchmark/index.html
+++ b/docs/apisix/2.5/benchmark/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Benchmark | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/benchmark"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docsearch:docusaur [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -26,7 +26,7 @@ and the response size was 1KB.</p><h4><a aria-hidden="true" tabindex="-1" class=
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/flamegraph-1.jpg" alt="flamegraph-1"></p><p>And if you want to run the benchmark test in your machine, you should run another Nginx to listen 80 port.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="to [...]
 and the response size was 1KB.</p><h4><a aria-hidden="true" tabindex="-1" class="anchor" id="qps-1"></a>QPS<a class="hash-link" href="#qps-1" title="Direct link to heading">#</a></h4><p>The x-axis means the size of CPU core, and the y-axis is QPS.</p><p><img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/benchmark-2.jpg" alt="benchmark-2"></p><h4><a aria-hidden="true" tabindex="-1" class="anchor" id="latency-1"></a>Latency<a class="hash-link" href="#latenc [...]
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/flamegraph-2.jpg" alt="flamegraph-2"></p><p>And if you want to run the benchmark test in your machine, you should run another Nginx to listen 80 port.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="to [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/control-api/index.html b/docs/apisix/2.5/control-api/index.html
index 39c5f77..1353d7a 100644
--- a/docs/apisix/2.5/control-api/index.html
+++ b/docs/apisix/2.5/control-api/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Control API | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/control-api"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docsearch:docu [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -26,7 +26,7 @@ If a plugin adds such a control API, please refer to each plugin&#x27;s document
 of fields like <code>consumer_schema</code> or <code>type</code>, it is depended on by the plugin&#x27;s
 definition.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="get-v1healthcheck"></a>GET /v1/healthcheck<a class="hash-link" href="#get-v1healthcheck" title="Direct link to heading">#</a></h3><p>Introduced since <code>v2.3</code>.</p><p>Return current <a href="/docs/apisix/2.5/health-check">health check</a> status in the format below:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly json"><div tabindex="0" class="prism-code language-json codeBlock_23N [...]
 object with id 1 creates a health checker, the <code>src_type</code> is <code>upstreams</code> and the <code>src_id</code> is <code>1</code>.</li><li>name: the name of the health checker.</li><li>nodes: the target nodes of the health checker.</li><li>healthy_nodes: the healthy node known by the health checker.</li></ul><p>User can also use <code>/v1/healthcheck/$src_type/$src_id</code> can get the status of a health checker.</p><p>For example, <code>GET /v1/healthcheck/upstreams/1</code> [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/customize-nginx-configuration/index.html b/docs/apisix/2.5/customize-nginx-configuration/index.html
index ac1c438..dc6fbc4 100644
--- a/docs/apisix/2.5/customize-nginx-configuration/index.html
+++ b/docs/apisix/2.5/customize-nginx-configuration/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Customize Nginx configuration | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/customize-nginx-configuration"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-reac [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -24,7 +24,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">            location /ysec_status </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">                req_status_show;</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">                allow 127.0.0.1;</span></div><div class="token-li [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">        chunked_transfer_encoding on;</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    </span><span class="token key atrule">http_server_configuration_snippet</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">|</span><span class="token scalar string" style="color:rgb(195, 232, 141)"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token  [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/debug-function/index.html b/docs/apisix/2.5/debug-function/index.html
index 964a5a6..31b8f0b 100644
--- a/docs/apisix/2.5/debug-function/index.html
+++ b/docs/apisix/2.5/debug-function/index.html
@@ -15,14 +15,14 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Debug Function | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/debug-function"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docsearc [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 </span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>It has a response header of <code>X-APISIX-Upstream-Status: 502</code>.</p><blockquote><p>Example 2: <code>502</code> response status code comes from <code>APISIX</code></p></blockquote><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class= [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/discovery/consul_kv/index.html b/docs/apisix/2.5/discovery/consul_kv/index.html
index ce570d2..464c98d 100644
--- a/docs/apisix/2.5/discovery/consul_kv/index.html
+++ b/docs/apisix/2.5/discovery/consul_kv/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">consul_kv | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/discovery/consul_kv"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docsearc [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -24,7 +24,7 @@
 <img src="https://user-images.githubusercontent.com/548385/107141841-6ced3e00-6966-11eb-8aa4-bc790a4ad113.png"></p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="configuration-for-discovery-client"></a>Configuration for discovery client<a class="hash-link" href="#configuration-for-discovery-client" title="Direct link to heading">#</a></h2><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="configuration-for-consul-kv"></a>Configuration for Consul KV<a class="hash-link" [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">\</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    -X PUT </span><span class="token punctuation" style="color:rgb(199, 146, 234)">\</span><span class="token [...]
 To avoid confusion, use the full consul key url path as service name in practice.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="upstream-setting"></a>Upstream setting<a class="hash-link" href="#upstream-setting" title="Direct link to heading">#</a></h3><p>Here is an example of routing a request with a URL of &quot;/*&quot; to a service which named &quot;<a href="http://127.0.0.1:8500/v1/kv/upstreams/webpages/%22" target="_blank" rel="noopener noreferrer">http://127.0.0.1: [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/discovery/dns/index.html b/docs/apisix/2.5/discovery/dns/index.html
index 99193aa..f31d274 100644
--- a/docs/apisix/2.5/discovery/dns/index.html
+++ b/docs/apisix/2.5/discovery/dns/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">DNS | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/discovery/dns"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docsearch:docusaurus [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -30,7 +30,7 @@ noisy).  In the presence of records containing weights greater
 than 0, records with weight 0 should have a very small chance of
 being selected.</p></blockquote><p>We treat weight 0 record has a weight of 1 so the node &quot;have a very small chance of
 being selected&quot;, which is also the common way to treat this type of record.</p></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/discovery/dns.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAspectRatio="xMidYMid meet" role="img" viewBox="0 0 40 40" class="iconEdit_2_ui" aria-label="Edit page"><g><path d="m34.5 11.7l-3 3.1-6.3- [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/discovery/index.html b/docs/apisix/2.5/discovery/index.html
index 58c923d..33d55cb 100644
--- a/docs/apisix/2.5/discovery/index.html
+++ b/docs/apisix/2.5/discovery/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Integration service discovery registry | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/discovery"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="t [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -32,7 +32,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:rgb(247, 140, 108)">201</span><span class="token plain"> Created</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Date: Sat, </span><span class="token number" style="color:rgb(247, 140, 108)">31</span><span class="token plain"> Aug </span><span class="token number" style="color:rgb(247, 140, 108)">2019</span><span  [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token string" style="color:rgb(195, 232, 141)">&quot;node&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token string" style="color:rgb(195, 232, 141)">&quot;value&quot;</span><span class="token plain">:</span><span class="token  [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/2 -H </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><span class="token plain"> -X PUT -i -d </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;</span></ [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/dns/index.html b/docs/apisix/2.5/dns/index.html
index 848f904..d27aaee 100644
--- a/docs/apisix/2.5/dns/index.html
+++ b/docs/apisix/2.5/dns/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">DNS | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/dns"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" cont [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -28,7 +28,7 @@ noisy).  In the presence of records containing weights greater
 than 0, records with weight 0 should have a very small chance of
 being selected.</p></blockquote><p>We treat weight 0 record has a weight of 1 so the node &quot;have a very small chance of
 being selected&quot;, which is also the common way to treat this type of record.</p><p>TODO: support priority.</p></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/dns.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAspectRatio="xMidYMid meet" role="img" viewBox="0 0 40 40" class="iconEdit_2_ui" aria-label="Edit page"><g><path d="m3 [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/examples/plugins-hmac-auth-generate-signature/index.html b/docs/apisix/2.5/examples/plugins-hmac-auth-generate-signature/index.html
index f4f1613..9eec731 100644
--- a/docs/apisix/2.5/examples/plugins-hmac-auth-generate-signature/index.html
+++ b/docs/apisix/2.5/examples/plugins-hmac-auth-generate-signature/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">HMAC Generate Signature Examples | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/examples/plugins-hmac-auth-generate-signature"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2 [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -55,7 +55,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">--to base64</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">ngx.say(ngx.encode_base64(digest))</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="shell"></a>Shell<a class="hash-link" href="#shell" title="Direct link to heading">#</a [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># to lowercase hexits</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token builtin class-name" style="color:rgb(255, 203, 107)">echo</span><span class="token plain"> -e </span><span class="token variable" style="color:rgb(191, 199, [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># to base64</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token builtin class-name" style="color:rgb(255, 203, 107)">echo</span><span class="token plain"> -e </span><span class="token variable" style="color:rgb(191, 199, 213)">$ME [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/getting-started/index.html b/docs/apisix/2.5/getting-started/index.html
index 7fdf566..51d0461 100644
--- a/docs/apisix/2.5/getting-started/index.html
+++ b/docs/apisix/2.5/getting-started/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Getting Started | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/getting-started"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docsea [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -40,7 +40,7 @@ a web application to perform the similar. The dashboard is available in the foll
 <a href="https://github.com/apache/apisix" target="_blank" rel="noopener noreferrer">repository</a>. The dashboard is intuitive and you can orchestrate the
 same route configurations via the dashboard as well.</p><p><img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/dashboard.png" alt="Dashboard"></p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="troubleshooting"></a>Troubleshooting<a class="hash-link" href="#troubleshooting" title="Direct link to heading">#</a></h3><ul><li><p>Make sure the required ports are not being used by other systems/processes (The default ports are: 9080, 9443, 2379).
 The following is the command to kill a process which is listening to a specific port (in unix based systems).</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-undefined codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">```bash</span></div><div class="token-line" style="color:#bfc7d5"><sp [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/grpc-proxy/index.html b/docs/apisix/2.5/grpc-proxy/index.html
index 218e357..1e0ddf4 100644
--- a/docs/apisix/2.5/grpc-proxy/index.html
+++ b/docs/apisix/2.5/grpc-proxy/index.html
@@ -15,14 +15,14 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">gRPC Proxy | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/grpc-proxy"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docsearch:docusa [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 gRPC client -&gt; APISIX -&gt; gRPC/gRPCS server</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="parameters"></a>Parameters<a class="hash-link" href="#parameters" title="Direct link to heading">#</a></h2><ul><li><code>scheme</code>: the <code>scheme</code> of the route&#x27;s upstream must be <code>grpc</code> or <code>grpcs</code>.</li><li><code>uri</code>: format likes /service/method, Example:/helloworld.Greeter/SayHello</li></ul><h3><a aria-hidden="true" tabindex="-1" c [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/health-check/index.html b/docs/apisix/2.5/health-check/index.html
index fdd732b..b99a9e0 100644
--- a/docs/apisix/2.5/health-check/index.html
+++ b/docs/apisix/2.5/health-check/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Health Check | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/health-check"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docsearch:do [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -24,7 +24,7 @@
 you can use it for upstream.</p><p>Note that we only start the health check when the upstream is hit by a request.
 There won&#x27;t be any health check if an upstream is configured but isn&#x27;t in used.</p><p>The following is an example of health check:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)"> [...]
 contains: <code>active</code> or <code>passive</code>.</p><ul><li><p><code>active</code>: To enable active health checks, you need to specify the configuration items under <code>checks.active</code> in the Upstream object configuration.</p><ul><li><p><code>active.timeout</code>: Socket timeout for active checks (in seconds), support decimals. For example <code>1.01</code> means <code>1010</code> milliseconds, <code>2</code> means <code>2000</code> milliseconds.</p></li><li><p><code>activ [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/how-to-build/index.html b/docs/apisix/2.5/how-to-build/index.html
index d761646..6ce00d6 100644
--- a/docs/apisix/2.5/how-to-build/index.html
+++ b/docs/apisix/2.5/how-to-build/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">How to build Apache APISIX | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/how-to-build"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -33,7 +33,7 @@ Here is an example:</p><div class="codeBlockContainer_K1bP"><div class="codeBloc
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes?api_key</span><span class="token operator" style="color:rgb(137, 221, 255)">=</span><span class="token plain">abcdefghabcdefgh-invalid -i</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">HTTP/1.1 </span><span class="token [...]
 If you need those features, you can build OpenResty with
 <a href="https://raw.githubusercontent.com/api7/apisix-build-tools/master/build-apisix-openresty.sh" target="_blank" rel="noopener noreferrer">this build script</a>.</p></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/how-to-build.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAspectRatio="xMidYMid meet" role="img" viewBox="0 0 40 [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/https/index.html b/docs/apisix/2.5/https/index.html
index b9b8ee4..98050de 100644
--- a/docs/apisix/2.5/https/index.html
+++ b/docs/apisix/2.5/https/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">HTTPS | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/https"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docsearch:docusaurus_tag"  [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -36,7 +36,7 @@ and RSA key-exchange algorithm, then just configure the extra certificates (the
 first certificate and private key should be still put in <code>cert</code> and <code>key</code>) and
 private keys by <code>certs</code> and <code>keys</code>.</p><ul><li><code>certs</code>: PEM-encoded certificate array.</li><li><code>keys</code>: PEM-encoded private key array.</li></ul><p><code>APISIX</code> will pair certificate and private key with the same indice as a SSL key
 pair. So the length of <code>certs</code> and <code>keys</code> must be same.</p></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/https.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAspectRatio="xMidYMid meet" role="img" viewBox="0 0 40 40" class="iconEdit_2_ui" aria-label="Edit page"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0 [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/install-dependencies/index.html b/docs/apisix/2.5/install-dependencies/index.html
index 1129e9d..9f6f30e 100644
--- a/docs/apisix/2.5/install-dependencies/index.html
+++ b/docs/apisix/2.5/install-dependencies/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Install Dependencies | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/install-dependencies"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" na [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -40,7 +40,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># start etcd server</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">nohup</span><span class="token plain"> etcd </span><span class="token operator" style="color:rgb(137, 221, 255)">&a [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># start etcd server</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">brew services start etcd</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># enable TLS for etcd server</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">etcd --cert-file</span><span class="token operator" style="color:rgb(137, 221, 255)">=</span><span class="token plain">/path/to/cert --key-file</span><span class="token operat [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/mtls/index.html b/docs/apisix/2.5/mtls/index.html
index fc31fd1..0d7325f 100644
--- a/docs/apisix/2.5/mtls/index.html
+++ b/docs/apisix/2.5/mtls/index.html
@@ -15,14 +15,14 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Mutual TLS authentication for Admin API | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/mtls"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  </span><span class="token key atrule">admin_api_mtls</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    </span><span class="token key atrule">admin_ssl_ca_cert</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plai [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/plugin-develop/index.html b/docs/apisix/2.5/plugin-develop/index.html
index 336bdf5..45332ac 100644
--- a/docs/apisix/2.5/plugin-develop/index.html
+++ b/docs/apisix/2.5/plugin-develop/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Plugin Develop | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/plugin-develop"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docsearc [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -53,7 +53,7 @@ return items of HTTP include HTTP status, HTTP response header, HTTP response bo
 You may need to use <a href="/docs/apisix/2.5/plugin-interceptors">interceptors</a> to protect it.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="register-control-api"></a>Register control API<a class="hash-link" href="#register-control-api" title="Direct link to heading">#</a></h3><p>If you only want to expose the API to the localhost or intranet, you can expose it via <a href="/docs/apisix/2.5/control-api">Control API</a>.</p><p>Take a look at example-plugin plugin:</p>< [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">function _M.control_api()</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    return {</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">        {</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">            methods = {&quot;GET&quot;},</span></div><div class="token-line" style="color:#bfc7d5"><span c [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/plugin-interceptors/index.html b/docs/apisix/2.5/plugin-interceptors/index.html
index 258649b..41ef33f 100644
--- a/docs/apisix/2.5/plugin-interceptors/index.html
+++ b/docs/apisix/2.5/plugin-interceptors/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Plugin interceptors | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/plugin-interceptors"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -26,7 +26,7 @@ to run rules to protect them.</p><p>Here is an example to limit the access of <c
 to clients in <code>10.0.0.0/24</code>:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix [...]
 the name of plugin which you want to run and the <code>conf</code> is the configuration of the
 plugin.</p><p>Currently we only support a subset of plugins which can be run as interceptors.</p><p>Supported interceptors:</p><ul><li><a href="/docs/apisix/2.5/plugins/ip-restriction">ip-restriction</a></li></ul></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/plugin-interceptors.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAsp [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/plugins/api-breaker/index.html b/docs/apisix/2.5/plugins/api-breaker/index.html
index 869b112..4aa749e 100644
--- a/docs/apisix/2.5/plugins/api-breaker/index.html
+++ b/docs/apisix/2.5/plugins/api-breaker/index.html
@@ -15,14 +15,14 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">api-breaker | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/plugins/api-breaker"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docsea [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">..</span><span class="token plain">. </span><span class="token punctuation" style="color:rgb(199, 146, 234)">..</span><span class="token plain">.</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><h2><a aria-hidden="true" tabindex="-1" class="anchor" id= [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/plugins/authz-keycloak/index.html b/docs/apisix/2.5/plugins/authz-keycloak/index.html
index 85e2dce..458ed81 100644
--- a/docs/apisix/2.5/plugins/authz-keycloak/index.html
+++ b/docs/apisix/2.5/plugins/authz-keycloak/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">authz-keycloak | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/plugins/authz-keycloak"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name=" [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -47,7 +47,7 @@ APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div cl
 API workflows. Run the following docker image and visit <code>http://localhost:8090</code> to view the associated policies for the unit tests.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly bash"><div tabindex="0" class="prism-code language-bash codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">docker run -e </span><span class="to [...]
 However, Keycloak&#x27;s official adapters (Java, JS) also provides path matching by querying Keycloak paths dynamically, and
 lazy loading the paths to identity resources. Future version on authz-plugin will support this functionality.</p></li><li><p>Support to read scope and configurations from the Keycloak JSON File</p></li></ul></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/plugins/authz-keycloak.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAspect [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/plugins/basic-auth/index.html b/docs/apisix/2.5/plugins/basic-auth/index.html
index 900c6ca..7f2acf0 100644
--- a/docs/apisix/2.5/plugins/basic-auth/index.html
+++ b/docs/apisix/2.5/plugins/basic-auth/index.html
@@ -15,15 +15,15 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">basic-auth | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/plugins/basic-auth"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docsearc [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 you can delete the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> htt [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/plugins/batch-requests/index.html b/docs/apisix/2.5/plugins/batch-requests/index.html
index 967a446..2400476 100644
--- a/docs/apisix/2.5/plugins/batch-requests/index.html
+++ b/docs/apisix/2.5/plugins/batch-requests/index.html
@@ -15,15 +15,15 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">batch-requests | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/plugins/batch-requests"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name=" [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 You may need to use <a href="/docs/apisix/2.5/plugin-interceptors">interceptors</a> to protect it.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="how-to-enable"></a>How To Enable<a class="hash-link" href="#how-to-enable" title="Direct link to heading">#</a></h2><p>Default enabled</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="how-to-configure"></a>How To Configure<a class="hash-link" href="#how-to-configure" title="Direct link to heading">#</a></h2><p>By def [...]
 You can configure it via <code>apisix/admin/plugin_metadata/batch-requests</code>:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:908 [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/plugins/consumer-restriction/index.html b/docs/apisix/2.5/plugins/consumer-restriction/index.html
index 0458ac7..06be309 100644
--- a/docs/apisix/2.5/plugins/consumer-restriction/index.html
+++ b/docs/apisix/2.5/plugins/consumer-restriction/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">consumer-restriction | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/plugins/consumer-restriction"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet=" [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -26,7 +26,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/services/2 -H </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><span class="token plain"> -X PUT -d </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;</span></div [...]
 you can delete the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/rou [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/plugins/cors/index.html b/docs/apisix/2.5/plugins/cors/index.html
index 78b7eca..7655c44 100644
--- a/docs/apisix/2.5/plugins/cors/index.html
+++ b/docs/apisix/2.5/plugins/cors/index.html
@@ -15,14 +15,14 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">cors | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/plugins/cors"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docsearch:docusaurus [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 When using <code>**</code>, you must fully understand that it introduces some security risks, such as CSRF, so make sure that this security level meets your expectations before using it。</p></blockquote><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="how-to-enable"></a>How To Enable<a class="hash-link" href="#how-to-enable" title="Direct link to heading">#</a></h2><p>Create a <code>Route</code> or <code>Service</code> object and configure <code>cors</code> plugin.</p><div clas [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/plugins/dubbo-proxy/index.html b/docs/apisix/2.5/plugins/dubbo-proxy/index.html
index 4c15d67..9ff8ff0 100644
--- a/docs/apisix/2.5/plugins/dubbo-proxy/index.html
+++ b/docs/apisix/2.5/plugins/dubbo-proxy/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">dubbo-proxy | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/plugins/dubbo-proxy"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docsea [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -27,7 +27,7 @@ They should provide the same result.</p><p>The returned data from upstream dubbo
 you can delete the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> htt [...]
 you need to comment out in the <code>config.yaml</code>:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><div tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token key atrule">plugins</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></sp [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/plugins/echo/index.html b/docs/apisix/2.5/plugins/echo/index.html
index 28bd927..fa1175a 100644
--- a/docs/apisix/2.5/plugins/echo/index.html
+++ b/docs/apisix/2.5/plugins/echo/index.html
@@ -15,14 +15,14 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">echo | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/plugins/echo"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docsearch:docusaurus [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain" [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/plugins/error-log-logger/index.html b/docs/apisix/2.5/plugins/error-log-logger/index.html
index dc3daa4..ac7ba71 100644
--- a/docs/apisix/2.5/plugins/error-log-logger/index.html
+++ b/docs/apisix/2.5/plugins/error-log-logger/index.html
@@ -15,15 +15,15 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">error-log-logger | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/plugins/error-log-logger"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" na [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 <a href="/docs/apisix/2.5/batch-processor">Batch-Processor</a></p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="attributes"></a>Attributes<a class="hash-link" href="#attributes" title="Direct link to heading">#</a></h2><table><thead><tr><th>Name</th><th>Type</th><th>Requirement</th><th>Default</th><th>Valid</th><th>Description</th></tr></thead><tbody><tr><td>host</td><td>string</td><td>required</td><td></td><td></td><td>IP address or the Hostname of the TCP server.</td></tr> [...]
 It does not need to be bound in any route or service.</p><p>Here is an example of <code>conf/config.yaml</code>:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><div tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token key atrule">plugins</span><span class="token punctuation" style="color:rg [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/plugins/fault-injection/index.html b/docs/apisix/2.5/plugins/fault-injection/index.html
index 5269c31..9e4a32a 100644
--- a/docs/apisix/2.5/plugins/fault-injection/index.html
+++ b/docs/apisix/2.5/plugins/fault-injection/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">fault-injection | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/plugins/fault-injection"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -41,7 +41,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Fault Injection</span><span class="token operator" style="color:rgb(137, 221, 255)">!</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><ol start="2"><li>The request header <code>apikey</code> is successfully matched, and the request parameters are missing, and fault injection is performed:</li></ol><div class="codeBlockCont [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Fault Injection</span><span class="token operator" style="color:rgb(137, 221, 255)">!</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><ol start="3"><li>Both request parameters and request headers fail to match, and fault injection is not performed:</li></ol><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_ [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="disable-plugin"></a>Disable Plugin<a class="hash-link" href="#disable-plugin" title="Direct link to heading">#</a></h2><p>Remove the corresponding JSON in the plugin configuration to disable the plugin immediate [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/plugins/grpc-transcode/index.html b/docs/apisix/2.5/plugins/grpc-transcode/index.html
index 2b31b84..8718238 100644
--- a/docs/apisix/2.5/plugins/grpc-transcode/index.html
+++ b/docs/apisix/2.5/plugins/grpc-transcode/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">grpc-transcode | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/plugins/grpc-transcode"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name=" [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -24,7 +24,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token string" style="color:rgb(195, 232, 141)">&quot;message&quot;</span><span class="token builtin class-name" style="color:rgb(255, 203, 107)">:</span><span class="token string" style="color:rgb(195, 232, 141)">&quot;Hello world&quot;</span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</spa [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token string" style="color:rgb(195, 232, 141)">&quot;workflowKey&quot;</span><span class="token builtin class-name" style="color:rgb(255, 203, 107)">:</span><span class="token string" style="color:rgb(195, 232, 141)">&quot;#2251799813685260&quot;</span><span class="token plain">,</span><span class="token string"  [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admi [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/plugins/hmac-auth/index.html b/docs/apisix/2.5/plugins/hmac-auth/index.html
index 807a32c..44ab0e1 100644
--- a/docs/apisix/2.5/plugins/hmac-auth/index.html
+++ b/docs/apisix/2.5/plugins/hmac-auth/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">hmac-auth | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/plugins/hmac-auth"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docsearch: [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -33,7 +33,7 @@
 you can delete the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> htt [...]
 Need to pay attention to the handling of newline characters in signature strings in various languages, which can easily lead to the problem of <code>{&quot;message&quot;:&quot;Invalid signature&quot;}</code>.</p><p>Example inputs:</p><table><thead><tr><th>Variable</th><th>Value</th></tr></thead><tbody><tr><td>secret</td><td>this is secret key</td></tr><tr><td>message</td><td>this is signature string</td></tr></tbody></table><p>Example outputs:</p><table><thead><tr><th>Type</th><th>Hash</ [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/plugins/http-logger/index.html b/docs/apisix/2.5/plugins/http-logger/index.html
index fadaba9..bbe5cce 100644
--- a/docs/apisix/2.5/plugins/http-logger/index.html
+++ b/docs/apisix/2.5/plugins/http-logger/index.html
@@ -15,14 +15,14 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">http-logger | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/plugins/http-logger"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docsea [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain" [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/plugins/index.html b/docs/apisix/2.5/plugins/index.html
index 8f52a1b..c3ee8b8 100644
--- a/docs/apisix/2.5/plugins/index.html
+++ b/docs/apisix/2.5/plugins/index.html
@@ -15,14 +15,14 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Plugins | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/plugins"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docsearch:docusaurus_t [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 the its execution will be skipped.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="hot-reload-in-stand-alone-mode"></a>Hot reload in stand-alone mode<a class="hash-link" href="#hot-reload-in-stand-alone-mode" title="Direct link to heading">#</a></h3><p>For stand-alone mode, see plugin related section in <a href="/docs/apisix/2.5/stand-alone">stand alone mode</a>.</p></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/ap [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/plugins/ip-restriction/index.html b/docs/apisix/2.5/plugins/ip-restriction/index.html
index 2163df0..6f649c0 100644
--- a/docs/apisix/2.5/plugins/ip-restriction/index.html
+++ b/docs/apisix/2.5/plugins/ip-restriction/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">ip-restriction | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/plugins/ip-restriction"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name=" [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -28,7 +28,7 @@ you can send the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/rou [...]
 you can delete the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> htt [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/plugins/jwt-auth/index.html b/docs/apisix/2.5/plugins/jwt-auth/index.html
index ee07885..120a2ac 100644
--- a/docs/apisix/2.5/plugins/jwt-auth/index.html
+++ b/docs/apisix/2.5/plugins/jwt-auth/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">jwt-auth | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/plugins/jwt-auth"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docsearch:do [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -29,7 +29,7 @@ You may need to use <a href="/docs/apisix/2.5/plugin-interceptors">interceptors<
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token operator" style="color:rgb(137, 221, 255)">!</span><span class="token plain">DOCTYPE html</span><span class="token operator" style="color:rgb(137, 221, 255)">&gt;</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token op [...]
 you can delete the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> htt [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/plugins/kafka-logger/index.html b/docs/apisix/2.5/plugins/kafka-logger/index.html
index 91a4205..d16aaf3 100644
--- a/docs/apisix/2.5/plugins/kafka-logger/index.html
+++ b/docs/apisix/2.5/plugins/kafka-logger/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">kafka-logger | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/plugins/kafka-logger"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docs [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -28,7 +28,7 @@ or every <code>buffer_duration</code> flush the buffer.</p><p>In case of success
 In case of errors, returns <code>nil</code> with a string describing the error (<code>buffer overflow</code>).</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="sample-broker-list"></a>Sample broker list<a class="hash-link" href="#sample-broker-list" title="Direct link to heading">#</a></h3><p>This plugin supports to push in to more than one broker at a time. Specify the brokers of the external kafka servers as below
 sample to take effect of this functionality.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly json"><div tabindex="0" class="prism-code language-json codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><s [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain" [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/plugins/key-auth/index.html b/docs/apisix/2.5/plugins/key-auth/index.html
index 00dda0e..606510c 100644
--- a/docs/apisix/2.5/plugins/key-auth/index.html
+++ b/docs/apisix/2.5/plugins/key-auth/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">key-auth | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/plugins/key-auth"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docsearch:do [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -26,7 +26,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.2:9080/index.html -H </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;apikey: abcabcabc&#x27;</span><span class="token plain"> -i</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">HTTP/1.1 </span><span class="token number" st [...]
 you can delete the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> htt [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/plugins/limit-conn/index.html b/docs/apisix/2.5/plugins/limit-conn/index.html
index 2b5ccbf..3da4d6e 100644
--- a/docs/apisix/2.5/plugins/limit-conn/index.html
+++ b/docs/apisix/2.5/plugins/limit-conn/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">limit-conn | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/plugins/limit-conn"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docsearc [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -26,7 +26,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> -i http://127.0.0.1:9080/index.html?sleep</span><span class="token operator" style="color:rgb(137, 221, 255)">=</span><span class="token number" style="color:rgb(247, 140, 108)">20</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></ [...]
 you can delete the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/rou [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/plugins/limit-count/index.html b/docs/apisix/2.5/plugins/limit-count/index.html
index b1dcf68..d6cf366 100644
--- a/docs/apisix/2.5/plugins/limit-count/index.html
+++ b/docs/apisix/2.5/plugins/limit-count/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">limit-count | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/plugins/limit-count"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docsea [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -27,7 +27,7 @@ which mean the total number of requests and the remaining number of requests tha
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token plain">html</span><span class="token operator" style="color:rgb(137, 221, 255)">&gt;</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token plain"> [...]
 you can delete the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/rou [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/plugins/limit-req/index.html b/docs/apisix/2.5/plugins/limit-req/index.html
index 04aceb2..9a12299 100644
--- a/docs/apisix/2.5/plugins/limit-req/index.html
+++ b/docs/apisix/2.5/plugins/limit-req/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">limit-req | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/plugins/limit-req"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docsearch: [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -24,7 +24,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag" style="color:rgb(255, 85, 114)">html</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token tag punctuation" style="color:rgb(19 [...]
 you can delete the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/rou [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/plugins/log-rotate/index.html b/docs/apisix/2.5/plugins/log-rotate/index.html
index 750a6e9..5f1ae99 100644
--- a/docs/apisix/2.5/plugins/log-rotate/index.html
+++ b/docs/apisix/2.5/plugins/log-rotate/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">log-rotate | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/plugins/log-rotate"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docsearc [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -25,7 +25,7 @@ When the number of log files exceeds the remaining number, the old files are aut
 For example, the following example is a sample based on <code>interval: 10</code> and <code>max_kept: 10</code>.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ ll logs</span></div><div class="token-line" style="color:#bfc7 [...]
 It does not need to be bound in any route or service.</p><p>Here is an example of <code>conf/config.yaml</code>:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><div tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token key atrule">plugins</span><span class="token punctuation" style="color:rg [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token key atrule">plugin_attr</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    </span><span class="token key atrule">log-rotate</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></span></ [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/plugins/mqtt-proxy/index.html b/docs/apisix/2.5/plugins/mqtt-proxy/index.html
index 8482daa..4a57f29 100644
--- a/docs/apisix/2.5/plugins/mqtt-proxy/index.html
+++ b/docs/apisix/2.5/plugins/mqtt-proxy/index.html
@@ -15,15 +15,15 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">mqtt-proxy | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/plugins/mqtt-proxy"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docsearc [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 balance by <code>client_id</code> of MQTT.</p><p>And this plugin both support MQTT protocol <a href="http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html" target="_blank" rel="noopener noreferrer">3.1.*</a> and <a href="https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html" target="_blank" rel="noopener noreferrer">5.0</a>.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="attributes"></a>Attributes<a class="hash-link" href="#attributes" title="Direct link t [...]
 For example, the following configuration represents listening on the 9100 TCP port.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><div tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(199, 146, 234)">...</span><span cla [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/plugins/node-status/index.html b/docs/apisix/2.5/plugins/node-status/index.html
index 8843792..699bff3 100644
--- a/docs/apisix/2.5/plugins/node-status/index.html
+++ b/docs/apisix/2.5/plugins/node-status/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">node-status | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/plugins/node-status"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docsea [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -28,7 +28,7 @@ And this plugin will not make any difference in future requests, so usually we d
 then you can not add this plugin in any route.</li></ol><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-undefined codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">plugins:                          # plugin list</span></div><div class="token-line" style="color:#bfc7d5"><span class="token p [...]
 you can delete the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately.</li></ol><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly sh"><div tabindex="0" class="prism-code language-sh codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ curl http://127.0.0.1:9080/apisix/admin/routes/1 -H &#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27; -X [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/plugins/openid-connect/index.html b/docs/apisix/2.5/plugins/openid-connect/index.html
index 57b1702..1cdf5c4 100644
--- a/docs/apisix/2.5/plugins/openid-connect/index.html
+++ b/docs/apisix/2.5/plugins/openid-connect/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">openid-connect | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/plugins/openid-connect"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name=" [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -47,7 +47,7 @@ Once the user has authenticated against the identity provider, the plugin will o
 and further information from the identity provider on behalf of the user. The information is currently stored
 in a session cookie that the user agent can submit on subsequent requests. The plugin will recognize the cookie
 and use the information therein to avoid having to go through the flow again.</p><p>The following command adds this mode of operation to a route.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly bash"><div tabindex="0" class="prism-code language-bash codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255 [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/plugins/prometheus/index.html b/docs/apisix/2.5/plugins/prometheus/index.html
index 16edafd..f9a2e0e 100644
--- a/docs/apisix/2.5/plugins/prometheus/index.html
+++ b/docs/apisix/2.5/plugins/prometheus/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">prometheus | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/plugins/prometheus"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docsearc [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -31,7 +31,7 @@ these metric data.</p><p>For example like this:</p><div class="codeBlockContaine
 | consumer | The <code>consumer_name</code> of the consumer that matches the request. If it does not match, the default value is an empty string. |
 | node     | The <code>ip</code> of the upstream node. |</p></li><li><p><code>Info</code>: the information of APISIX node.</p></li></ul><p>Here is the original metric data of APISIX:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token p [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admi [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/plugins/proxy-cache/index.html b/docs/apisix/2.5/plugins/proxy-cache/index.html
index 4f6dd28..4f3fbb0 100644
--- a/docs/apisix/2.5/plugins/proxy-cache/index.html
+++ b/docs/apisix/2.5/plugins/proxy-cache/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">proxy-cache | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/plugins/proxy-cache"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docsea [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -26,7 +26,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><blockquote><p>http status is &#x27;200&#x27; and the response header contains &#x27;Apisix-Cache-Status&#x27; to indicate that the plug-in is enabled.</p></blockquote><ol start="3"><li>Verify that the data is cached and request the above address again:</li></ol><div cl [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><blockquote><p>The response header <code>Apisix-Cache-Status</code> value has changed to HIT, indicating that the data has been cached</p></blockquote><p>Example 3: Specifying cache_zone as <code>invalid_disk_cache</code> is inconsistent with the cache area <code>disk_c [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token plain">html</span><span class="token operator" style="color:rgb(137, 221, 255)">&gt;</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token plain"> [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/plugins/proxy-mirror/index.html b/docs/apisix/2.5/plugins/proxy-mirror/index.html
index 18549ce..e9ba312 100644
--- a/docs/apisix/2.5/plugins/proxy-mirror/index.html
+++ b/docs/apisix/2.5/plugins/proxy-mirror/index.html
@@ -15,15 +15,15 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">proxy-mirror | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/plugins/proxy-mirror"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docs [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello world</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><blockquote><p>Since the specified mirror address is 127.0.0.1:9797, so to verify whether this plugin is in effect, we need to confirm on the service with port 9797.
 For example, we can start a simple server:  python -m SimpleHTTPServer 9797</p></blockquote><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="disable-plugin"></a>Disable Plugin<a class="hash-link" href="#disable-plugin" title="Direct link to heading">#</a></h2><p>Remove the corresponding JSON in the plugin configuration to disable the plugin immediately without restarting the service:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex= [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/plugins/proxy-rewrite/index.html b/docs/apisix/2.5/plugins/proxy-rewrite/index.html
index 8e076ff..e42065d 100644
--- a/docs/apisix/2.5/plugins/proxy-rewrite/index.html
+++ b/docs/apisix/2.5/plugins/proxy-rewrite/index.html
@@ -15,15 +15,15 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">proxy-rewrite | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/plugins/proxy-rewrite"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="do [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 you can delete the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately :</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/ro [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/plugins/redirect/index.html b/docs/apisix/2.5/plugins/redirect/index.html
index fc8ee5d..06ae62f 100644
--- a/docs/apisix/2.5/plugins/redirect/index.html
+++ b/docs/apisix/2.5/plugins/redirect/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">redirect | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/plugins/redirect"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docsearch:do [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -24,7 +24,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">..</span><span class="token plain">.</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>We can check the response code and the response header <code>Location</code>.</p><p>It shows that the <code>redirect</code> plugin is in effect.</p><p> Here is an e [...]
 you can delete the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately :</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/ro [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/plugins/referer-restriction/index.html b/docs/apisix/2.5/plugins/referer-restriction/index.html
index adc40cc..a192ca1 100644
--- a/docs/apisix/2.5/plugins/referer-restriction/index.html
+++ b/docs/apisix/2.5/plugins/referer-restriction/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">referer-restriction | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/plugins/referer-restriction"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="tr [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -24,7 +24,7 @@
 whitelisting request header Referrers.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="attributes"></a>Attributes<a class="hash-link" href="#attributes" title="Direct link to heading">#</a></h2><table><thead><tr><th>Name</th><th>Type</th><th>Requirement</th><th>Default</th><th>Valid</th><th>Description</th></tr></thead><tbody><tr><td>whitelist</td><td>array[string]</td><td>required</td><td></td><td></td><td>List of hostname to whitelist. The hostname can be started with <co [...]
 you can delete the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> htt [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/plugins/request-id/index.html b/docs/apisix/2.5/plugins/request-id/index.html
index 180f41e..367fd33 100644
--- a/docs/apisix/2.5/plugins/request-id/index.html
+++ b/docs/apisix/2.5/plugins/request-id/index.html
@@ -15,15 +15,15 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">request-id | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/plugins/request-id"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docsearc [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 API request. The plugin will not add a request id if the <code>header_name</code> is already present in the request.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="attributes"></a>Attributes<a class="hash-link" href="#attributes" title="Direct link to heading">#</a></h2><table><thead><tr><th>Name</th><th>Type</th><th>Requirement</th><th>Default</th><th>Valid</th><th>Description</th></tr></thead><tbody><tr><td>header_name</td><td>string</td><td>optional</td><td>&quot;X-Requ [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admi [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/plugins/request-validation/index.html b/docs/apisix/2.5/plugins/request-validation/index.html
index 85f674c..63d242e 100644
--- a/docs/apisix/2.5/plugins/request-validation/index.html
+++ b/docs/apisix/2.5/plugins/request-validation/index.html
@@ -15,15 +15,15 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">request-validation | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/plugins/request-validation"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 json-schema to validate the schema. The plugin can be used to validate the headers and body data.</p><p>For more information on schema, refer to <a href="https://github.com/api7/jsonschema" target="_blank" rel="noopener noreferrer">JSON schema</a> for more information.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="attributes"></a>Attributes<a class="hash-link" href="#attributes" title="Direct link to heading">#</a></h2><table><thead><tr><th>Name</th><th>Type</th><th>Requi [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admi [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/plugins/response-rewrite/index.html b/docs/apisix/2.5/plugins/response-rewrite/index.html
index 9186b78..fc2410b 100644
--- a/docs/apisix/2.5/plugins/response-rewrite/index.html
+++ b/docs/apisix/2.5/plugins/response-rewrite/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">response-rewrite | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/plugins/response-rewrite"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" na [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -25,7 +25,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">{&quot;code&quot;:&quot;ok&quot;,&quot;message&quot;:&quot;new json body&quot;}</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>This means that the <code>response rewrite</code> plugin is in effect.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="disable-plugin"></a>Disable Plugin<a class="hash-link" href= [...]
 you can delete the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/rou [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/plugins/server-info/index.html b/docs/apisix/2.5/plugins/server-info/index.html
index 33ead37..85fa9cf 100644
--- a/docs/apisix/2.5/plugins/server-info/index.html
+++ b/docs/apisix/2.5/plugins/server-info/index.html
@@ -15,13 +15,13 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">server-info | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/plugins/server-info"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docsea [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/plugins/serverless/index.html b/docs/apisix/2.5/plugins/serverless/index.html
index cded121..9832cdd 100644
--- a/docs/apisix/2.5/plugins/serverless/index.html
+++ b/docs/apisix/2.5/plugins/serverless/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">serverless | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/plugins/serverless"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docsearc [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -24,7 +24,7 @@
 which indicates that the specified function is in effect.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="disable-plugin"></a>Disable Plugin<a class="hash-link" href="#disable-plugin" title="Direct link to heading">#</a></h2><p>When you want to disable the serverless plugin, it is very simple,
 you can delete the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/rou [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/plugins/skywalking/index.html b/docs/apisix/2.5/plugins/skywalking/index.html
index 20f9168..bede5fa 100644
--- a/docs/apisix/2.5/plugins/skywalking/index.html
+++ b/docs/apisix/2.5/plugins/skywalking/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">skywalking | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/plugins/skywalking"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docsearc [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -36,7 +36,7 @@ you need to comment out in the <code>config.yaml</code>:</p><div class="codeBloc
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token keyword" style="font-style:italic">import</span><span class="token plain"> </span><span class="token namespace" style="color:rgb(178, 204, 214)">org</span><span class="token namespace punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token namespace" style="color:rgb(178, 204, 214)">springframework</span><span class="token namespace punctuation" style="color:rgb [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic">/**</span></div><div class="token-line" style="color:#bfc7d5"><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"> * @author cyxinda</span></div><div class="token-line" style="color:#bfc7d5"><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"> * @create 2020-05-29 14 [...]
 update the file of agent/config/agent.config</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">agent.service_name</span><span class="token operator" style="color:rgb(137, 221, 255)">=</span><span class="token plain">yourservern [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/plugins/sls-logger/index.html b/docs/apisix/2.5/plugins/sls-logger/index.html
index 583eede..5a0160e 100644
--- a/docs/apisix/2.5/plugins/sls-logger/index.html
+++ b/docs/apisix/2.5/plugins/sls-logger/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">sls-logger | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/plugins/sls-logger"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docsearc [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -24,7 +24,7 @@
 <a href="/docs/apisix/2.5/batch-processor">Batch-Processor</a></p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="attributes"></a>Attributes<a class="hash-link" href="#attributes" title="Direct link to heading">#</a></h2><table><thead><tr><th>Name</th><th>Requirement</th><th>Description</th></tr></thead><tbody><tr><td>host</td><td>required</td><td>IP address or the Hostname of the TCP server, please reference ali cloud log <a href="https://help.aliyun.com/document_detail/29008 [...]
 </span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="test-plugin"></a>Test Plugin<a class="hash-link" href="#test-plugin" title="Direct link to heading">#</a></h2><ul><li>success:</li></ul><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div  [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain" [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/plugins/syslog/index.html b/docs/apisix/2.5/plugins/syslog/index.html
index 81256a3..147538f 100644
--- a/docs/apisix/2.5/plugins/syslog/index.html
+++ b/docs/apisix/2.5/plugins/syslog/index.html
@@ -15,14 +15,14 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">syslog | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/plugins/syslog"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docsearch:docusa [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain" [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/plugins/tcp-logger/index.html b/docs/apisix/2.5/plugins/tcp-logger/index.html
index 2243b9d..caa8f1c 100644
--- a/docs/apisix/2.5/plugins/tcp-logger/index.html
+++ b/docs/apisix/2.5/plugins/tcp-logger/index.html
@@ -15,15 +15,15 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">tcp-logger | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/plugins/tcp-logger"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docsearc [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 <a href="/docs/apisix/2.5/batch-processor">Batch-Processor</a></p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="attributes"></a>Attributes<a class="hash-link" href="#attributes" title="Direct link to heading">#</a></h2><table><thead><tr><th>Name</th><th>Type</th><th>Requirement</th><th>Default</th><th>Valid</th><th>Description</th></tr></thead><tbody><tr><td>host</td><td>string</td><td>required</td><td></td><td></td><td>IP address or the Hostname of the TCP server.</td></tr> [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain" [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/plugins/traffic-split/index.html b/docs/apisix/2.5/plugins/traffic-split/index.html
index c7864da..f1b9690 100644
--- a/docs/apisix/2.5/plugins/traffic-split/index.html
+++ b/docs/apisix/2.5/plugins/traffic-split/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">traffic-split | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/plugins/traffic-split"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="do [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -35,7 +35,7 @@ service_name, discovery_type, checks, retries, desc, scheme, labels, create_time
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">world </span><span class="token number" style="color:rgb(247, 140, 108)">1981</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello </span><span class="token number" style="color:rgb(247, 140, 108)">1980</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>After 5 requests, the service of port <code>1981</code> was hit 3 times, and the service of port <code>1980</code> was hit 2 times.</p><blockquote><ol start="3"><li>The expression verification of [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello </span><span class="token number" style="color:rgb(247, 140, 108)">1980</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="disable-plugin"></a>Disable Plugin<a class="hash-link" href="#disable-plugin" title="Direct link to heading">#</a></h2><p>When you want to  [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/plugins/udp-logger/index.html b/docs/apisix/2.5/plugins/udp-logger/index.html
index adfe5bb..c31edd3 100644
--- a/docs/apisix/2.5/plugins/udp-logger/index.html
+++ b/docs/apisix/2.5/plugins/udp-logger/index.html
@@ -15,15 +15,15 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">udp-logger | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/plugins/udp-logger"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docsearc [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 <a href="/docs/apisix/2.5/batch-processor">Batch-Processor</a></p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="attributes"></a>Attributes<a class="hash-link" href="#attributes" title="Direct link to heading">#</a></h2><table><thead><tr><th>Name</th><th>Type</th><th>Requirement</th><th>Default</th><th>Valid</th><th>Description</th></tr></thead><tbody><tr><td>host</td><td>string</td><td>required</td><td></td><td></td><td>IP address or the Hostname of the UDP server.</td></tr> [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain" [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/plugins/uri-blocker/index.html b/docs/apisix/2.5/plugins/uri-blocker/index.html
index 5c9021e..3c8ccbf 100644
--- a/docs/apisix/2.5/plugins/uri-blocker/index.html
+++ b/docs/apisix/2.5/plugins/uri-blocker/index.html
@@ -15,14 +15,14 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">uri-blocker | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/plugins/uri-blocker"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docsea [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">..</span><span class="token plain">. </span><span class="token punctuation" style="color:rgb(199, 146, 234)">..</span><span class="token plain">.</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><h2><a aria-hidden="true" tabindex="-1" class="anchor" id= [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/plugins/wolf-rbac/index.html b/docs/apisix/2.5/plugins/wolf-rbac/index.html
index d130ef9..ebf76ac 100644
--- a/docs/apisix/2.5/plugins/wolf-rbac/index.html
+++ b/docs/apisix/2.5/plugins/wolf-rbac/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">wolf-rbac | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/plugins/wolf-rbac"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docsearch: [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -43,7 +43,7 @@ The rbac feature is provided by <a href="https://github.com/iGeeky/wolf" target=
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:rgb(247, 140, 108)">200</span><span class="token plain"> OK</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token string" style="color:rgb(195, 232, 141)">&quot;message&quot;</span><span class="token builtin class-name" st [...]
 you can delete the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/rou [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/plugins/zipkin/index.html b/docs/apisix/2.5/plugins/zipkin/index.html
index 5f93859..bc0bb67 100644
--- a/docs/apisix/2.5/plugins/zipkin/index.html
+++ b/docs/apisix/2.5/plugins/zipkin/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Zipkin | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/plugins/zipkin"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docsearch:docusa [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -29,7 +29,7 @@ no need to restart the service, it will take effect immediately:</p><div class="
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    tracer := GetTracer(...)</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    // use middleware to extract parentID from http header that injected by APISIX</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    r.Use(func(c *gin.Context) {</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">        span := this.Tracer.Extract(b3.ExtractHTTP(c.Request))</span></div><div class="token-line" style="color:#bfc7d5"><s [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">}</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/plugins/zipkin.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAsp [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/powered-by/index.html b/docs/apisix/2.5/powered-by/index.html
index 95ad9d4..2778768 100644
--- a/docs/apisix/2.5/powered-by/index.html
+++ b/docs/apisix/2.5/powered-by/index.html
@@ -15,14 +15,14 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Powered by Apache APISIX | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/powered-by"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="do [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 or providing commercial products including APISIX.</p><p>Users are encouraged to add themselves to this page, <a href="https://github.com/apache/apisix/issues/487" target="_blank" rel="noopener noreferrer">issue</a> and PR are welcomed.</p><ol><li><a href="https://hy.10086.cn/" target="_blank" rel="nofollow">中移杭研</a></li><li><a href="http://www.163.com" target="_blank" rel="nofollow">Netease 网易</a></li><li><a href="https://www.360.cn/" target="_blank" rel="nofollow">360 奇虎</a></li><li><a [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/profile/index.html b/docs/apisix/2.5/profile/index.html
index 0c5d8b0..356c49c 100644
--- a/docs/apisix/2.5/profile/index.html
+++ b/docs/apisix/2.5/profile/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Configuration file switching based on environment variables | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/profile"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta d [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -27,7 +27,7 @@ requirements, we need to change the parameters in the configuration file to the
 development environment. You have to change it back. It&#x27;s very easy to make mistakes.</p><p>The solution to the above problem is to distinguish the current running environment through environment variables, and switch
 between different configuration files through environment variables. The corresponding environment variable in APISIX is: <code>APISIX_PROFILE</code></p><p>When <code>APISIX_PROFILE</code> is not set, the following three configuration files are used by default:</p><ul><li>conf/config.yaml</li><li>conf/apisix.yaml</li><li>conf/debug.yaml</li></ul><p>If the value of <code>APISIX_PROFILE</code> is set to <code>prod</code>, the following three configuration files are used:</p><ul><li>conf/co [...]
 tools such as git can be configured, and version management can be better achieved.</p></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/profile.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAspectRatio="xMidYMid meet" role="img" viewBox="0 0 40 40" class="iconEdit_2_ui" aria-label="Edit page"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/router-radixtree/index.html b/docs/apisix/2.5/router-radixtree/index.html
index afd94a4..9d4106f 100644
--- a/docs/apisix/2.5/router-radixtree/index.html
+++ b/docs/apisix/2.5/router-radixtree/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Router radixtree | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/router-radixtree"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docs [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -25,7 +25,7 @@
 here is an simple example:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes [...]
 data from the request body. This limitation is configured via:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><div tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token key atrule">graphql</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain [...]
 </span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>If you need to pass a graphql body which is larger than the limitation, you can increase the value in <code>conf/config.yaml</code>.</p></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/router-radixtree.md" target="_blank" rel="noreferrer noopener"><svg fill= [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/stand-alone/index.html b/docs/apisix/2.5/stand-alone/index.html
index bdfcf5f..045b13d 100644
--- a/docs/apisix/2.5/stand-alone/index.html
+++ b/docs/apisix/2.5/stand-alone/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Stand-alone mode | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/stand-alone"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docsearch [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -24,7 +24,7 @@
 the APISIX will check if this file has any changed every second.
 If the file changed and we found <code>#END</code> at the end of the file,
 APISIX will load the rules in this file and update to memory of APISIX.</p><p>Here is a mini example:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><div tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token key atrule">routes</span><span class="token punctuation" style="color:rgb(199, 146,  [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/stream-proxy/index.html b/docs/apisix/2.5/stream-proxy/index.html
index 250991f..d33c4d2 100644
--- a/docs/apisix/2.5/stream-proxy/index.html
+++ b/docs/apisix/2.5/stream-proxy/index.html
@@ -15,14 +15,14 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Stream Proxy | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.5/stream-proxy"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.5"><meta data-react-helmet="true" name="docsearch:do [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 By default, no any stream proxy is enabled.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><div tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token key atrule">apisix</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></span></div><div  [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/FAQ/index.html b/docs/apisix/2.6/FAQ/index.html
index d0ad173..ffbaafc 100644
--- a/docs/apisix/2.6/FAQ/index.html
+++ b/docs/apisix/2.6/FAQ/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">FAQ | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/FAQ"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" cont [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -29,7 +29,7 @@ For China mainland users, you can use the <code>luarocks.cn</code> as the luaroc
 See the <code>Hot reload</code> section in <a href="/docs/apisix/2.6/plugins">plugins</a> for how to do that.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="how-to-make-apisix-listen-on-multiple-ports-when-handling-http-or-https-requests"></a>How to make APISIX listen on multiple ports when handling HTTP or HTTPS requests?<a class="hash-link" href="#how-to-make-apisix-listen-on-multiple-ports-when-handling-http-or-https-requests" title="Direct link to heading">#</a></h2><p [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># The uri match failed</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/12ab -i</span></div><div class="token-line" style= [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:rgb(247, 140, 108)">200</span><span class="token plain"> OK</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">..</span><span class="token punctuation" style="color:rgb(199, 146, 234)">..</span><span class="token punctuation" style="color:rgb(199 [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/IGNORE_DOC/index.html b/docs/apisix/2.6/IGNORE_DOC/index.html
index 1d28b79..e2d36c5 100644
--- a/docs/apisix/2.6/IGNORE_DOC/index.html
+++ b/docs/apisix/2.6/IGNORE_DOC/index.html
@@ -15,13 +15,13 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">IGNORE_DOC | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/IGNORE_DOC"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docsearch:docusa [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/admin-api/index.html b/docs/apisix/2.6/admin-api/index.html
index 1865fd2..94a0536 100644
--- a/docs/apisix/2.6/admin-api/index.html
+++ b/docs/apisix/2.6/admin-api/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Admin API | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/admin-api"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docsearch:docusaur [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -83,7 +83,7 @@ This feature requires APISIX to run on <a href="/docs/apisix/how-to-build.md#6-b
 used when all the nodes with higher priority are unavailable or tried.</p><p>As the default priority is 0, we can configure nodes with negative priority as the backup.</p><p>For example:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly json"><div tabindex="0" class="prism-code language-json codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token [...]
 Therefore it is the backup of <code>127.0.0.1</code>.</p><blockquote><p>Response Parameters</p></blockquote><p>Return response from etcd currently.</p><p><a href="#table-of-contents">Back to TOC</a></p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="ssl"></a>SSL<a class="hash-link" href="#ssl" title="Direct link to heading">#</a></h2><p><em>API</em>:/apisix/admin/ssl/{id}</p><p><em>Description</em>:SSL.</p><blockquote><p>Request Methods:</p></blockquote><table><thead><tr><th>M [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> </span><span class="token string" style="color:rgb(195, 232, 141)">&quot;http://127.0.0.1:9080/apisix/admin/plugins/key-auth&quot;</span><span class="token plain"> -H </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><s [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/architecture-design/apisix/index.html b/docs/apisix/2.6/architecture-design/apisix/index.html
index af86381..7c3c3de 100644
--- a/docs/apisix/2.6/architecture-design/apisix/index.html
+++ b/docs/apisix/2.6/architecture-design/apisix/index.html
@@ -15,15 +15,15 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">APISIX | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/architecture-design/apisix"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docs [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 and keep other configurations as default. The configuration in <code>config.yaml</code> should be like this:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><div tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token key atrule">apisix</span><span class="token punctuation" style="color:rgb(199 [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token key atrule">etcd</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  </span><span class="token key atrule">host</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> </span><span class="tok [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/architecture-design/consumer/index.html b/docs/apisix/2.6/architecture-design/consumer/index.html
index fd80a15..2661761 100644
--- a/docs/apisix/2.6/architecture-design/consumer/index.html
+++ b/docs/apisix/2.6/architecture-design/consumer/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Consumer | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/architecture-design/consumer"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name=" [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -28,7 +28,7 @@
 </span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>Use the <a href="/docs/apisix/2.6/plugins/consumer-restriction">consumer-restriction</a> plug-in to restrict the access of Jack to this API.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5 [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># Repeated tests, all return 403; Jack is forbidden to access this API</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/he [...]
 </span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/architecture-design/consumer.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAspectRatio="xMidYMid meet" role="img" viewBox="0 0 40 40" class="iconEdit_ [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/architecture-design/debug-mode/index.html b/docs/apisix/2.6/architecture-design/debug-mode/index.html
index 176172c..556908b 100644
--- a/docs/apisix/2.6/architecture-design/debug-mode/index.html
+++ b/docs/apisix/2.6/architecture-design/debug-mode/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Debug Mode | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/architecture-design/debug-mode"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" na [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -24,7 +24,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello world</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>If the information can be delivered via HTTP response header, for example, the plugin is in stream
 subsystem, the information will be logged in the error log with <code>warn</code> level.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="advanced-debug-mode"></a>Advanced Debug Mode<a class="hash-link" href="#advanced-debug-mode" title="Direct link to heading">#</a></h3><p>Enable advanced debug mode by modifying the configuration in <code>conf/debug.yaml</code> file. Because there will be a check every second, only the checker reads the <code>#END</code> flag, and the file  [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token key atrule">hook_phase</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> </span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># Module Function List, Name: hook_phase</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  </span [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/architecture-design/global-rule/index.html b/docs/apisix/2.6/architecture-design/global-rule/index.html
index 0663224..6aa14f5 100644
--- a/docs/apisix/2.6/architecture-design/global-rule/index.html
+++ b/docs/apisix/2.6/architecture-design/global-rule/index.html
@@ -15,14 +15,14 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Global rule | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/architecture-design/global-rule"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true"  [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 We can register a global <a href="/docs/apisix/2.6/architecture-design/plugin">Plugin</a> with <code>GlobalRule</code>:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span clas [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/architecture-design/index.html b/docs/apisix/2.6/architecture-design/index.html
index 5b34c2c..1a7decd 100644
--- a/docs/apisix/2.6/architecture-design/index.html
+++ b/docs/apisix/2.6/architecture-design/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Architecture Design | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/architecture-design"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -41,7 +41,7 @@ will be merged into it. The same plugin in the plugin config will override one i
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello world</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>If the information can be delivered via HTTP response header, for example, the plugin is in stream
 subsystem, the information will be logged in the error log with <code>warn</code> level.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="advanced-debug-mode"></a>Advanced Debug Mode<a class="hash-link" href="#advanced-debug-mode" title="Direct link to heading">#</a></h3><p>Enable advanced debug mode by modifying the configuration in <code>conf/debug.yaml</code> file. Because there will be a check every second, only the checker reads the <code>#END</code> flag, and the file  [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token key atrule">hook_phase</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> </span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># Module Function List, Name: hook_phase</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  </span [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/architecture-design/plugin-config/index.html b/docs/apisix/2.6/architecture-design/plugin-config/index.html
index 1b8c4c1..bacea41 100644
--- a/docs/apisix/2.6/architecture-design/plugin-config/index.html
+++ b/docs/apisix/2.6/architecture-design/plugin-config/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Plugin Config | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/architecture-design/plugin-config"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="tr [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -24,7 +24,7 @@
 bind it with a route directly.</p><p>For instance, you can do something like:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># create a plugin config</span><span class="to [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># bind it to route</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1 -H </span><span class="token str [...]
 will be merged into it. The same plugin in the plugin config will override one in the <code>plugins</code>.</p><p>For example, when we configure a plugin config</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-undefined codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">{</span></div><div [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/architecture-design/plugin/index.html b/docs/apisix/2.6/architecture-design/plugin/index.html
index 7d39968..566ae69 100644
--- a/docs/apisix/2.6/architecture-design/plugin/index.html
+++ b/docs/apisix/2.6/architecture-design/plugin/index.html
@@ -15,13 +15,13 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Plugin | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/architecture-design/plugin"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docs [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/architecture-design/route/index.html b/docs/apisix/2.6/architecture-design/route/index.html
index 4e7a40d..9e6f807 100644
--- a/docs/apisix/2.6/architecture-design/route/index.html
+++ b/docs/apisix/2.6/architecture-design/route/index.html
@@ -15,15 +15,15 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Route | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/architecture-design/route"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docsea [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:rgb(247, 140, 108)">201</span><span class="token plain"> Created</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Date: Sat, </span><span class="token number" style="color:rgb(247, 140, 108)">31</span><span class="token plain"> Aug </span><span class="token number" style="color:rgb(247, 140, 108)">2019</span><span  [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token string" style="color:rgb(195, 232, 141)">&quot;node&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token string" style="color:rgb(195, 232, 141)">&quot;value&quot;</span><span class="token plain">:</span><span class="token  [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/architecture-design/router/index.html b/docs/apisix/2.6/architecture-design/router/index.html
index 3b8a042..46138d3 100644
--- a/docs/apisix/2.6/architecture-design/router/index.html
+++ b/docs/apisix/2.6/architecture-design/router/index.html
@@ -15,13 +15,13 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Router | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/architecture-design/router"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docs [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/architecture-design/script/index.html b/docs/apisix/2.6/architecture-design/script/index.html
index eac7858..b174554 100644
--- a/docs/apisix/2.6/architecture-design/script/index.html
+++ b/docs/apisix/2.6/architecture-design/script/index.html
@@ -15,13 +15,13 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Script | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/architecture-design/script"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docs [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/architecture-design/service/index.html b/docs/apisix/2.6/architecture-design/service/index.html
index 18099e2..4928550 100644
--- a/docs/apisix/2.6/architecture-design/service/index.html
+++ b/docs/apisix/2.6/architecture-design/service/index.html
@@ -15,15 +15,15 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Service | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/architecture-design/service"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="do [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># create new Route and reference the service by id `200`</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/route [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/101 -H </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><span class="token plain"> -X PUT -d </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;</span></div [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/architecture-design/upstream/index.html b/docs/apisix/2.6/architecture-design/upstream/index.html
index 0e67ed2..33c873f 100644
--- a/docs/apisix/2.6/architecture-design/upstream/index.html
+++ b/docs/apisix/2.6/architecture-design/upstream/index.html
@@ -15,13 +15,13 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Upstream | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/architecture-design/upstream"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name=" [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/aws/index.html b/docs/apisix/2.6/aws/index.html
index 24d166f..e603e58 100644
--- a/docs/apisix/2.6/aws/index.html
+++ b/docs/apisix/2.6/aws/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Running APISIX in AWS with AWS CDK | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/aws"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name= [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -43,7 +43,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Non-authoritative answer:</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Name:   apiSi-PhpSe-FOL2MM4TW7G8-09029e095ab36fcc.elb.us-west-2.amazonaws.com</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Address: </span><span class="token number" style="color:rgb(247, 140, 108)">44.224</span><span class="token plain">.124.213</span></div [...]
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/aws-define-service.png">
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/aws-define-route.png"></p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="validation"></a>Validation<a class="hash-link" href="#validation" title="Direct link to heading">#</a></h2><p>OK. Let&#x27;s test the <code>/index.php</code> on <code>{apiSix.ApiSixServiceServiceURL}/index.php</code></p><p><img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/aws-caddy-php-we [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/batch-processor/index.html b/docs/apisix/2.6/batch-processor/index.html
index b3dc064..272f9fd 100644
--- a/docs/apisix/2.6/batch-processor/index.html
+++ b/docs/apisix/2.6/batch-processor/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Batch Processor | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/batch-processor"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docsea [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -31,7 +31,7 @@ argument and the batch configuration as the second parameter.</p><div class="cod
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">if batch_processor then</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    batch_processor:push({hello=&#x27;world&#x27;})</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">end</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>Note: Please make sure th [...]
 The timer to flush the batch runs based on the <code>inactive_timeout</code> configuration. Thus, for optimal usage,
 keep the <code>inactive_timeout</code> smaller than the <code>buffer_duration</code>.</p></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/batch-processor.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAspectRatio="xMidYMid meet" role="img" viewBox="0 0 40 40" class="iconEdit_2_ui" aria-label="Edit page"><g><path d="m34.5 11.7l-3 3 [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/benchmark/index.html b/docs/apisix/2.6/benchmark/index.html
index 34775d8..ee8d8a2 100644
--- a/docs/apisix/2.6/benchmark/index.html
+++ b/docs/apisix/2.6/benchmark/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Benchmark | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/benchmark"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docsearch:docusaur [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -26,7 +26,7 @@ and the response size was 1KB.</p><h4><a aria-hidden="true" tabindex="-1" class=
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/flamegraph-1.jpg" alt="flamegraph-1"></p><p>And if you want to run the benchmark test in your machine, you should run another Nginx to listen 80 port.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="to [...]
 and the response size was 1KB.</p><h4><a aria-hidden="true" tabindex="-1" class="anchor" id="qps-1"></a>QPS<a class="hash-link" href="#qps-1" title="Direct link to heading">#</a></h4><p>The x-axis means the size of CPU core, and the y-axis is QPS.</p><p><img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/benchmark-2.jpg" alt="benchmark-2"></p><h4><a aria-hidden="true" tabindex="-1" class="anchor" id="latency-1"></a>Latency<a class="hash-link" href="#latenc [...]
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/flamegraph-2.jpg" alt="flamegraph-2"></p><p>And if you want to run the benchmark test in your machine, you should run another Nginx to listen 80 port.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="to [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/control-api/index.html b/docs/apisix/2.6/control-api/index.html
index 20a8040..90f2180 100644
--- a/docs/apisix/2.6/control-api/index.html
+++ b/docs/apisix/2.6/control-api/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Control API | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/control-api"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docsearch:docu [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -26,7 +26,7 @@ If a plugin adds such a control API, please refer to each plugin&#x27;s document
 of fields like <code>consumer_schema</code> or <code>type</code>, it is depended on by the plugin&#x27;s
 definition.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="get-v1healthcheck"></a>GET /v1/healthcheck<a class="hash-link" href="#get-v1healthcheck" title="Direct link to heading">#</a></h3><p>Introduced since <code>v2.3</code>.</p><p>Return current <a href="/docs/apisix/2.6/health-check">health check</a> status in the format below:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly json"><div tabindex="0" class="prism-code language-json codeBlock_23N [...]
 object with id 1 creates a health checker, the <code>src_type</code> is <code>upstreams</code> and the <code>src_id</code> is <code>1</code>.</li><li>name: the name of the health checker.</li><li>nodes: the target nodes of the health checker.</li><li>healthy_nodes: the healthy node known by the health checker.</li></ul><p>User can also use <code>/v1/healthcheck/$src_type/$src_id</code> can get the status of a health checker.</p><p>For example, <code>GET /v1/healthcheck/upstreams/1</code> [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/customize-nginx-configuration/index.html b/docs/apisix/2.6/customize-nginx-configuration/index.html
index 870e7eb..5f27dfc 100644
--- a/docs/apisix/2.6/customize-nginx-configuration/index.html
+++ b/docs/apisix/2.6/customize-nginx-configuration/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Customize Nginx configuration | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/customize-nginx-configuration"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-reac [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -24,7 +24,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">            location /ysec_status </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">                req_status_show;</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">                allow 127.0.0.1;</span></div><div class="token-li [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">        chunked_transfer_encoding on;</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    </span><span class="token key atrule">http_server_configuration_snippet</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">|</span><span class="token scalar string" style="color:rgb(195, 232, 141)"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token  [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/debug-function/index.html b/docs/apisix/2.6/debug-function/index.html
index 9fa96bf..c453282 100644
--- a/docs/apisix/2.6/debug-function/index.html
+++ b/docs/apisix/2.6/debug-function/index.html
@@ -15,14 +15,14 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Debug Function | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/debug-function"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docsearc [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 </span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>It has a response header of <code>X-APISIX-Upstream-Status: 502</code>.</p><blockquote><p>Example 2: <code>502</code> response status code comes from <code>APISIX</code></p></blockquote><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class= [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/discovery/consul_kv/index.html b/docs/apisix/2.6/discovery/consul_kv/index.html
index 21543ff..449456b 100644
--- a/docs/apisix/2.6/discovery/consul_kv/index.html
+++ b/docs/apisix/2.6/discovery/consul_kv/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">consul_kv | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/discovery/consul_kv"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docsearc [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -24,7 +24,7 @@
 <img src="https://user-images.githubusercontent.com/548385/107141841-6ced3e00-6966-11eb-8aa4-bc790a4ad113.png"></p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="configuration-for-discovery-client"></a>Configuration for discovery client<a class="hash-link" href="#configuration-for-discovery-client" title="Direct link to heading">#</a></h2><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="configuration-for-consul-kv"></a>Configuration for Consul KV<a class="hash-link" [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">\</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    -X PUT </span><span class="token punctuation" style="color:rgb(199, 146, 234)">\</span><span class="token [...]
 To avoid confusion, use the full consul key url path as service name in practice.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="upstream-setting"></a>Upstream setting<a class="hash-link" href="#upstream-setting" title="Direct link to heading">#</a></h3><p>Here is an example of routing a request with a URL of &quot;/*&quot; to a service which named &quot;<a href="http://127.0.0.1:8500/v1/kv/upstreams/webpages/%22" target="_blank" rel="noopener noreferrer">http://127.0.0.1: [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/discovery/dns/index.html b/docs/apisix/2.6/discovery/dns/index.html
index 9b0bc16..4fd302f 100644
--- a/docs/apisix/2.6/discovery/dns/index.html
+++ b/docs/apisix/2.6/discovery/dns/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">DNS | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/discovery/dns"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docsearch:docusaurus [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -30,7 +30,7 @@ noisy).  In the presence of records containing weights greater
 than 0, records with weight 0 should have a very small chance of
 being selected.</p></blockquote><p>We treat weight 0 record has a weight of 1 so the node &quot;have a very small chance of
 being selected&quot;, which is also the common way to treat this type of record.</p></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/discovery/dns.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAspectRatio="xMidYMid meet" role="img" viewBox="0 0 40 40" class="iconEdit_2_ui" aria-label="Edit page"><g><path d="m34.5 11.7l-3 3.1-6.3- [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/discovery/eureka/index.html b/docs/apisix/2.6/discovery/eureka/index.html
index 64264a8..b416105 100644
--- a/docs/apisix/2.6/discovery/eureka/index.html
+++ b/docs/apisix/2.6/discovery/eureka/index.html
@@ -15,14 +15,14 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">eureka | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/discovery/eureka"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docsearch:docu [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 reading from <a href="/docs/apisix/2.6/discovery#supported-discovery-registries">Supported discovery registries</a>.</p></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/discovery/eureka.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAspectRatio="xMidYMid meet" role="img" viewBox="0 0 40 40" class="iconEdit_2_ui" aria-label="Edit p [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/discovery/index.html b/docs/apisix/2.6/discovery/index.html
index 08f5395..1b75fcc 100644
--- a/docs/apisix/2.6/discovery/index.html
+++ b/docs/apisix/2.6/discovery/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Integration service discovery registry | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/discovery"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="t [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -32,7 +32,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:rgb(247, 140, 108)">201</span><span class="token plain"> Created</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Date: Sat, </span><span class="token number" style="color:rgb(247, 140, 108)">31</span><span class="token plain"> Aug </span><span class="token number" style="color:rgb(247, 140, 108)">2019</span><span  [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token string" style="color:rgb(195, 232, 141)">&quot;node&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token string" style="color:rgb(195, 232, 141)">&quot;value&quot;</span><span class="token plain">:</span><span class="token  [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/2 -H </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><span class="token plain"> -X PUT -i -d </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;</span></ [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/discovery/nacos/index.html b/docs/apisix/2.6/discovery/nacos/index.html
index 2ec5edf..376d297 100644
--- a/docs/apisix/2.6/discovery/nacos/index.html
+++ b/docs/apisix/2.6/discovery/nacos/index.html
@@ -15,13 +15,13 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">nacos | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/discovery/nacos"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docsearch:docusa [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/dns/index.html b/docs/apisix/2.6/dns/index.html
index aaed555..48c9ea0 100644
--- a/docs/apisix/2.6/dns/index.html
+++ b/docs/apisix/2.6/dns/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">DNS | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/dns"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" cont [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -28,7 +28,7 @@ noisy).  In the presence of records containing weights greater
 than 0, records with weight 0 should have a very small chance of
 being selected.</p></blockquote><p>We treat weight 0 record has a weight of 1 so the node &quot;have a very small chance of
 being selected&quot;, which is also the common way to treat this type of record.</p><p>TODO: support priority.</p></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/dns.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAspectRatio="xMidYMid meet" role="img" viewBox="0 0 40 40" class="iconEdit_2_ui" aria-label="Edit page"><g><path d="m3 [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/examples/plugins-hmac-auth-generate-signature/index.html b/docs/apisix/2.6/examples/plugins-hmac-auth-generate-signature/index.html
index a44ece8..d655610 100644
--- a/docs/apisix/2.6/examples/plugins-hmac-auth-generate-signature/index.html
+++ b/docs/apisix/2.6/examples/plugins-hmac-auth-generate-signature/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">HMAC Generate Signature Examples | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/examples/plugins-hmac-auth-generate-signature"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2 [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -55,7 +55,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">--to base64</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">ngx.say(ngx.encode_base64(digest))</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="shell"></a>Shell<a class="hash-link" href="#shell" title="Direct link to heading">#</a [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># to lowercase hexits</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token builtin class-name" style="color:rgb(255, 203, 107)">echo</span><span class="token plain"> -e </span><span class="token variable" style="color:rgb(191, 199, [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># to base64</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token builtin class-name" style="color:rgb(255, 203, 107)">echo</span><span class="token plain"> -e </span><span class="token variable" style="color:rgb(191, 199, 213)">$ME [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/getting-started/index.html b/docs/apisix/2.6/getting-started/index.html
index faa3726..cdc4237 100644
--- a/docs/apisix/2.6/getting-started/index.html
+++ b/docs/apisix/2.6/getting-started/index.html
@@ -15,14 +15,14 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Getting Started | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/getting-started"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docsea [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 the proxy-rewrite plugin to do it.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly bash"><div tabindex="0" class="prism-code language-bash codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> </span><span class="token string" s [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/grpc-proxy/index.html b/docs/apisix/2.6/grpc-proxy/index.html
index 40b60bd..b149891 100644
--- a/docs/apisix/2.6/grpc-proxy/index.html
+++ b/docs/apisix/2.6/grpc-proxy/index.html
@@ -15,14 +15,14 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">gRPC Proxy | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/grpc-proxy"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docsearch:docusa [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 gRPC client -&gt; APISIX -&gt; gRPC/gRPCS server</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="parameters"></a>Parameters<a class="hash-link" href="#parameters" title="Direct link to heading">#</a></h2><ul><li><code>scheme</code>: the <code>scheme</code> of the route&#x27;s upstream must be <code>grpc</code> or <code>grpcs</code>.</li><li><code>uri</code>: format likes /service/method, Example:/helloworld.Greeter/SayHello</li></ul><h3><a aria-hidden="true" tabindex="-1" c [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/health-check/index.html b/docs/apisix/2.6/health-check/index.html
index 752127d..f2c8d20 100644
--- a/docs/apisix/2.6/health-check/index.html
+++ b/docs/apisix/2.6/health-check/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Health Check | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/health-check"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docsearch:do [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -25,7 +25,7 @@ you can use it for upstream.</p><p>Note:</p><ul><li>We only start the health che
 There won&#x27;t be any health check if an upstream is configured but isn&#x27;t in used.</li><li>If there is no healthy node can be chosen, we will continue to access the upstream.</li><li>We won&#x27;t start the health check when the upstream only has one node, as we will access
 it whether this unique node is healthy or not.</li></ul><p>The following is an example of health check:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> [...]
 contains: <code>active</code> or <code>passive</code>.</p><ul><li><p><code>active</code>: To enable active health checks, you need to specify the configuration items under <code>checks.active</code> in the Upstream object configuration.</p><ul><li><p><code>active.timeout</code>: Socket timeout for active checks (in seconds), support decimals. For example <code>1.01</code> means <code>1010</code> milliseconds, <code>2</code> means <code>2000</code> milliseconds.</p></li><li><p><code>activ [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/how-to-build/index.html b/docs/apisix/2.6/how-to-build/index.html
index be195c2..7a23cd6 100644
--- a/docs/apisix/2.6/how-to-build/index.html
+++ b/docs/apisix/2.6/how-to-build/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">How to build Apache APISIX | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/how-to-build"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -33,7 +33,7 @@ Here is an example:</p><div class="codeBlockContainer_K1bP"><div class="codeBloc
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes?api_key</span><span class="token operator" style="color:rgb(137, 221, 255)">=</span><span class="token plain">abcdefghabcdefgh-invalid -i</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">HTTP/1.1 </span><span class="token [...]
 If you need those features, you can build OpenResty with
 <a href="https://raw.githubusercontent.com/api7/apisix-build-tools/master/build-apisix-openresty.sh" target="_blank" rel="noopener noreferrer">this build script</a>.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="7-add-systemd-unit-file-for-apisix"></a>7. Add systemd unit file for APISIX<a class="hash-link" href="#7-add-systemd-unit-file-for-apisix" title="Direct link to heading">#</a></h2><p>If you install APISIX with rpm package, the unit file is installed automatically, [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/https/index.html b/docs/apisix/2.6/https/index.html
index eed4a7b..c2343d6 100644
--- a/docs/apisix/2.6/https/index.html
+++ b/docs/apisix/2.6/https/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">HTTPS | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/https"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docsearch:docusaurus_tag"  [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -36,7 +36,7 @@ and RSA key-exchange algorithm, then just configure the extra certificates (the
 first certificate and private key should be still put in <code>cert</code> and <code>key</code>) and
 private keys by <code>certs</code> and <code>keys</code>.</p><ul><li><code>certs</code>: PEM-encoded certificate array.</li><li><code>keys</code>: PEM-encoded private key array.</li></ul><p><code>APISIX</code> will pair certificate and private key with the same indice as a SSL key
 pair. So the length of <code>certs</code> and <code>keys</code> must be same.</p></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/https.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAspectRatio="xMidYMid meet" role="img" viewBox="0 0 40 40" class="iconEdit_2_ui" aria-label="Edit page"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0 [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/install-dependencies/index.html b/docs/apisix/2.6/install-dependencies/index.html
index cf214fc..8fb5c8f 100644
--- a/docs/apisix/2.6/install-dependencies/index.html
+++ b/docs/apisix/2.6/install-dependencies/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Install Dependencies | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/install-dependencies"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" na [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -40,7 +40,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># start etcd server</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">nohup</span><span class="token plain"> etcd </span><span class="token operator" style="color:rgb(137, 221, 255)">&a [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># start etcd server</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">brew services start etcd</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># enable TLS for etcd server</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">etcd --cert-file</span><span class="token operator" style="color:rgb(137, 221, 255)">=</span><span class="token plain">/path/to/cert --key-file</span><span class="token operat [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/mtls/index.html b/docs/apisix/2.6/mtls/index.html
index 2aed0b9..a29d024 100644
--- a/docs/apisix/2.6/mtls/index.html
+++ b/docs/apisix/2.6/mtls/index.html
@@ -15,14 +15,14 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Mutual TLS authentication for Admin API | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/mtls"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  </span><span class="token key atrule">admin_api_mtls</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    </span><span class="token key atrule">admin_ssl_ca_cert</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plai [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/plugin-develop/index.html b/docs/apisix/2.6/plugin-develop/index.html
index 6fe7385..1980905 100644
--- a/docs/apisix/2.6/plugin-develop/index.html
+++ b/docs/apisix/2.6/plugin-develop/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Plugin Develop | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/plugin-develop"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docsearc [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -53,7 +53,7 @@ return items of HTTP include HTTP status, HTTP response header, HTTP response bo
 You may need to use <a href="/docs/apisix/2.6/plugin-interceptors">interceptors</a> to protect it.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="register-control-api"></a>Register control API<a class="hash-link" href="#register-control-api" title="Direct link to heading">#</a></h3><p>If you only want to expose the API to the localhost or intranet, you can expose it via <a href="/docs/apisix/2.6/control-api">Control API</a>.</p><p>Take a look at example-plugin plugin:</p>< [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">function _M.control_api()</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    return {</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">        {</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">            methods = {&quot;GET&quot;},</span></div><div class="token-line" style="color:#bfc7d5"><span c [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/plugin-interceptors/index.html b/docs/apisix/2.6/plugin-interceptors/index.html
index 4405ca0..f596c3d 100644
--- a/docs/apisix/2.6/plugin-interceptors/index.html
+++ b/docs/apisix/2.6/plugin-interceptors/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Plugin interceptors | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/plugin-interceptors"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -26,7 +26,7 @@ to run rules to protect them.</p><p>Here is an example to limit the access of <c
 to clients in <code>10.0.0.0/24</code>:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix [...]
 the name of plugin which you want to run and the <code>conf</code> is the configuration of the
 plugin.</p><p>Currently we only support a subset of plugins which can be run as interceptors.</p><p>Supported interceptors:</p><ul><li><a href="/docs/apisix/2.6/plugins/ip-restriction">ip-restriction</a></li></ul></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/plugin-interceptors.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAsp [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/plugins/api-breaker/index.html b/docs/apisix/2.6/plugins/api-breaker/index.html
index 7f54bed..51da5ab 100644
--- a/docs/apisix/2.6/plugins/api-breaker/index.html
+++ b/docs/apisix/2.6/plugins/api-breaker/index.html
@@ -15,14 +15,14 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">api-breaker | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/plugins/api-breaker"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docsea [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">..</span><span class="token plain">. </span><span class="token punctuation" style="color:rgb(199, 146, 234)">..</span><span class="token plain">.</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><h2><a aria-hidden="true" tabindex="-1" class="anchor" id= [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/plugins/authz-keycloak/index.html b/docs/apisix/2.6/plugins/authz-keycloak/index.html
index b0e4bf5..23fdc8e 100644
--- a/docs/apisix/2.6/plugins/authz-keycloak/index.html
+++ b/docs/apisix/2.6/plugins/authz-keycloak/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">authz-keycloak | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/plugins/authz-keycloak"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name=" [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -47,7 +47,7 @@ APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div cl
 API workflows. Run the following docker image and visit <code>http://localhost:8090</code> to view the associated policies for the unit tests.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly bash"><div tabindex="0" class="prism-code language-bash codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">docker run -e </span><span class="to [...]
 However, Keycloak&#x27;s official adapters (Java, JS) also provides path matching by querying Keycloak paths dynamically, and
 lazy loading the paths to identity resources. Future version on authz-plugin will support this functionality.</p></li><li><p>Support to read scope and configurations from the Keycloak JSON File</p></li></ul></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/plugins/authz-keycloak.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAspect [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/plugins/basic-auth/index.html b/docs/apisix/2.6/plugins/basic-auth/index.html
index c772096..0315ebd 100644
--- a/docs/apisix/2.6/plugins/basic-auth/index.html
+++ b/docs/apisix/2.6/plugins/basic-auth/index.html
@@ -15,15 +15,15 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">basic-auth | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/plugins/basic-auth"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docsearc [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 you can delete the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> htt [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/plugins/batch-requests/index.html b/docs/apisix/2.6/plugins/batch-requests/index.html
index 7b33352..524bd4e 100644
--- a/docs/apisix/2.6/plugins/batch-requests/index.html
+++ b/docs/apisix/2.6/plugins/batch-requests/index.html
@@ -15,15 +15,15 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">batch-requests | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/plugins/batch-requests"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name=" [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 You may need to use <a href="/docs/apisix/2.6/plugin-interceptors">interceptors</a> to protect it.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="how-to-enable"></a>How To Enable<a class="hash-link" href="#how-to-enable" title="Direct link to heading">#</a></h2><p>Default enabled</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="how-to-configure"></a>How To Configure<a class="hash-link" href="#how-to-configure" title="Direct link to heading">#</a></h2><p>By def [...]
 You can configure it via <code>apisix/admin/plugin_metadata/batch-requests</code>:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:908 [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/plugins/consumer-restriction/index.html b/docs/apisix/2.6/plugins/consumer-restriction/index.html
index d7aa4b6..bc9b2f0 100644
--- a/docs/apisix/2.6/plugins/consumer-restriction/index.html
+++ b/docs/apisix/2.6/plugins/consumer-restriction/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">consumer-restriction | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/plugins/consumer-restriction"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet=" [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -26,7 +26,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/services/2 -H </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><span class="token plain"> -X PUT -d </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;</span></div [...]
 you can delete the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/rou [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/plugins/cors/index.html b/docs/apisix/2.6/plugins/cors/index.html
index f1fdc6e..2cecf7c 100644
--- a/docs/apisix/2.6/plugins/cors/index.html
+++ b/docs/apisix/2.6/plugins/cors/index.html
@@ -15,14 +15,14 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">cors | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/plugins/cors"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docsearch:docusaurus [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 When using <code>**</code>, you must fully understand that it introduces some security risks, such as CSRF, so make sure that this security level meets your expectations before using it。</p></blockquote><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="how-to-enable"></a>How To Enable<a class="hash-link" href="#how-to-enable" title="Direct link to heading">#</a></h2><p>Create a <code>Route</code> or <code>Service</code> object and configure <code>cors</code> plugin.</p><div clas [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/plugins/dubbo-proxy/index.html b/docs/apisix/2.6/plugins/dubbo-proxy/index.html
index 8b3e404..318f51b 100644
--- a/docs/apisix/2.6/plugins/dubbo-proxy/index.html
+++ b/docs/apisix/2.6/plugins/dubbo-proxy/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">dubbo-proxy | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/plugins/dubbo-proxy"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docsea [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -27,7 +27,7 @@ They should provide the same result.</p><p>The returned data from upstream dubbo
 you can delete the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> htt [...]
 you need to comment out in the <code>config.yaml</code>:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><div tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token key atrule">plugins</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></sp [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/plugins/echo/index.html b/docs/apisix/2.6/plugins/echo/index.html
index 70c8562..37c78a6 100644
--- a/docs/apisix/2.6/plugins/echo/index.html
+++ b/docs/apisix/2.6/plugins/echo/index.html
@@ -15,14 +15,14 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">echo | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/plugins/echo"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docsearch:docusaurus [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain" [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/plugins/error-log-logger/index.html b/docs/apisix/2.6/plugins/error-log-logger/index.html
index 1c8a557..981a77a 100644
--- a/docs/apisix/2.6/plugins/error-log-logger/index.html
+++ b/docs/apisix/2.6/plugins/error-log-logger/index.html
@@ -15,15 +15,15 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">error-log-logger | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/plugins/error-log-logger"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" na [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 <a href="/docs/apisix/2.6/batch-processor">Batch-Processor</a></p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="attributes"></a>Attributes<a class="hash-link" href="#attributes" title="Direct link to heading">#</a></h2><table><thead><tr><th>Name</th><th>Type</th><th>Requirement</th><th>Default</th><th>Valid</th><th>Description</th></tr></thead><tbody><tr><td>host</td><td>string</td><td>required</td><td></td><td></td><td>IP address or the Hostname of the TCP server.</td></tr> [...]
 It does not need to be bound in any route or service.</p><p>Here is an example of <code>conf/config.yaml</code>:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><div tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token key atrule">plugins</span><span class="token punctuation" style="color:rg [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/plugins/fault-injection/index.html b/docs/apisix/2.6/plugins/fault-injection/index.html
index d29a775..9fe9ddd 100644
--- a/docs/apisix/2.6/plugins/fault-injection/index.html
+++ b/docs/apisix/2.6/plugins/fault-injection/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">fault-injection | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/plugins/fault-injection"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -41,7 +41,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Fault Injection</span><span class="token operator" style="color:rgb(137, 221, 255)">!</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><ol start="2"><li>The request header <code>apikey</code> is successfully matched, and the request parameters are missing, and fault injection is performed:</li></ol><div class="codeBlockCont [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Fault Injection</span><span class="token operator" style="color:rgb(137, 221, 255)">!</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><ol start="3"><li>Both request parameters and request headers fail to match, and fault injection is not performed:</li></ol><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_ [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="disable-plugin"></a>Disable Plugin<a class="hash-link" href="#disable-plugin" title="Direct link to heading">#</a></h2><p>Remove the corresponding JSON in the plugin configuration to disable the plugin immediate [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/plugins/grpc-transcode/index.html b/docs/apisix/2.6/plugins/grpc-transcode/index.html
index aaf030d..f4255fe 100644
--- a/docs/apisix/2.6/plugins/grpc-transcode/index.html
+++ b/docs/apisix/2.6/plugins/grpc-transcode/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">grpc-transcode | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/plugins/grpc-transcode"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name=" [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -24,7 +24,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token string" style="color:rgb(195, 232, 141)">&quot;message&quot;</span><span class="token builtin class-name" style="color:rgb(255, 203, 107)">:</span><span class="token string" style="color:rgb(195, 232, 141)">&quot;Hello world&quot;</span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</spa [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token string" style="color:rgb(195, 232, 141)">&quot;workflowKey&quot;</span><span class="token builtin class-name" style="color:rgb(255, 203, 107)">:</span><span class="token string" style="color:rgb(195, 232, 141)">&quot;#2251799813685260&quot;</span><span class="token plain">,</span><span class="token string"  [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admi [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/plugins/hmac-auth/index.html b/docs/apisix/2.6/plugins/hmac-auth/index.html
index 6f2890f..e09ba8f 100644
--- a/docs/apisix/2.6/plugins/hmac-auth/index.html
+++ b/docs/apisix/2.6/plugins/hmac-auth/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">hmac-auth | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/plugins/hmac-auth"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docsearch: [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -33,7 +33,7 @@
 you can delete the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> htt [...]
 Need to pay attention to the handling of newline characters in signature strings in various languages, which can easily lead to the problem of <code>{&quot;message&quot;:&quot;Invalid signature&quot;}</code>.</p><p>Example inputs:</p><table><thead><tr><th>Variable</th><th>Value</th></tr></thead><tbody><tr><td>secret</td><td>this is secret key</td></tr><tr><td>message</td><td>this is signature string</td></tr></tbody></table><p>Example outputs:</p><table><thead><tr><th>Type</th><th>Hash</ [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/plugins/http-logger/index.html b/docs/apisix/2.6/plugins/http-logger/index.html
index 5567809..d9247c6 100644
--- a/docs/apisix/2.6/plugins/http-logger/index.html
+++ b/docs/apisix/2.6/plugins/http-logger/index.html
@@ -15,14 +15,14 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">http-logger | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/plugins/http-logger"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docsea [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain" [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/plugins/index.html b/docs/apisix/2.6/plugins/index.html
index 0cadbd3..b2f9eb4 100644
--- a/docs/apisix/2.6/plugins/index.html
+++ b/docs/apisix/2.6/plugins/index.html
@@ -15,14 +15,14 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Plugins | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/plugins"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docsearch:docusaurus_t [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 the its execution will be skipped.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="hot-reload-in-stand-alone-mode"></a>Hot reload in stand-alone mode<a class="hash-link" href="#hot-reload-in-stand-alone-mode" title="Direct link to heading">#</a></h3><p>For stand-alone mode, see plugin related section in <a href="/docs/apisix/2.6/stand-alone">stand alone mode</a>.</p></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/ap [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/plugins/ip-restriction/index.html b/docs/apisix/2.6/plugins/ip-restriction/index.html
index 87c01fb..8e1e006 100644
--- a/docs/apisix/2.6/plugins/ip-restriction/index.html
+++ b/docs/apisix/2.6/plugins/ip-restriction/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">ip-restriction | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/plugins/ip-restriction"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name=" [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -28,7 +28,7 @@ you can send the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/rou [...]
 you can delete the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> htt [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/plugins/jwt-auth/index.html b/docs/apisix/2.6/plugins/jwt-auth/index.html
index dc98fb4..3bc9f00 100644
--- a/docs/apisix/2.6/plugins/jwt-auth/index.html
+++ b/docs/apisix/2.6/plugins/jwt-auth/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">jwt-auth | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/plugins/jwt-auth"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docsearch:do [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -30,7 +30,7 @@ You may need to use <a href="/docs/apisix/2.6/plugin-interceptors">interceptors<
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token operator" style="color:rgb(137, 221, 255)">!</span><span class="token plain">DOCTYPE html</span><span class="token operator" style="color:rgb(137, 221, 255)">&gt;</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token op [...]
 you can delete the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> htt [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/plugins/kafka-logger/index.html b/docs/apisix/2.6/plugins/kafka-logger/index.html
index 6d49398..68909a3 100644
--- a/docs/apisix/2.6/plugins/kafka-logger/index.html
+++ b/docs/apisix/2.6/plugins/kafka-logger/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">kafka-logger | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/plugins/kafka-logger"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docs [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -28,7 +28,7 @@ or every <code>buffer_duration</code> flush the buffer.</p><p>In case of success
 In case of errors, returns <code>nil</code> with a string describing the error (<code>buffer overflow</code>).</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="sample-broker-list"></a>Sample broker list<a class="hash-link" href="#sample-broker-list" title="Direct link to heading">#</a></h3><p>This plugin supports to push in to more than one broker at a time. Specify the brokers of the external kafka servers as below
 sample to take effect of this functionality.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly json"><div tabindex="0" class="prism-code language-json codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><s [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain" [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/plugins/key-auth/index.html b/docs/apisix/2.6/plugins/key-auth/index.html
index 8907180..dff0830 100644
--- a/docs/apisix/2.6/plugins/key-auth/index.html
+++ b/docs/apisix/2.6/plugins/key-auth/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">key-auth | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/plugins/key-auth"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docsearch:do [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -26,7 +26,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.2:9080/index.html -H </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;apikey: abcabcabc&#x27;</span><span class="token plain"> -i</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">HTTP/1.1 </span><span class="token number" st [...]
 you can delete the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> htt [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/plugins/limit-conn/index.html b/docs/apisix/2.6/plugins/limit-conn/index.html
index 6ff8acb..470143f 100644
--- a/docs/apisix/2.6/plugins/limit-conn/index.html
+++ b/docs/apisix/2.6/plugins/limit-conn/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">limit-conn | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/plugins/limit-conn"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docsearc [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -26,7 +26,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> -i http://127.0.0.1:9080/index.html?sleep</span><span class="token operator" style="color:rgb(137, 221, 255)">=</span><span class="token number" style="color:rgb(247, 140, 108)">20</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></ [...]
 you can delete the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/rou [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/plugins/limit-count/index.html b/docs/apisix/2.6/plugins/limit-count/index.html
index 5a6f288..b0a9f50 100644
--- a/docs/apisix/2.6/plugins/limit-count/index.html
+++ b/docs/apisix/2.6/plugins/limit-count/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">limit-count | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/plugins/limit-count"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docsea [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -27,7 +27,7 @@ which mean the total number of requests and the remaining number of requests tha
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token plain">html</span><span class="token operator" style="color:rgb(137, 221, 255)">&gt;</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token plain"> [...]
 you can delete the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/rou [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/plugins/limit-req/index.html b/docs/apisix/2.6/plugins/limit-req/index.html
index 7ea2a0d..d838a71 100644
--- a/docs/apisix/2.6/plugins/limit-req/index.html
+++ b/docs/apisix/2.6/plugins/limit-req/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">limit-req | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/plugins/limit-req"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docsearch: [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -24,7 +24,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag" style="color:rgb(255, 85, 114)">html</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token tag punctuation" style="color:rgb(19 [...]
 you can delete the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/rou [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/plugins/log-rotate/index.html b/docs/apisix/2.6/plugins/log-rotate/index.html
index be99a9e..707c411 100644
--- a/docs/apisix/2.6/plugins/log-rotate/index.html
+++ b/docs/apisix/2.6/plugins/log-rotate/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">log-rotate | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/plugins/log-rotate"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docsearc [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -25,7 +25,7 @@ When the number of log files exceeds the remaining number, the old files are aut
 For example, the following example is a sample based on <code>interval: 10</code> and <code>max_kept: 10</code>.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ ll logs</span></div><div class="token-line" style="color:#bfc7 [...]
 It does not need to be bound in any route or service.</p><p>Here is an example of <code>conf/config.yaml</code>:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><div tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token key atrule">plugins</span><span class="token punctuation" style="color:rg [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token key atrule">plugin_attr</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    </span><span class="token key atrule">log-rotate</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></span></ [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/plugins/mqtt-proxy/index.html b/docs/apisix/2.6/plugins/mqtt-proxy/index.html
index 7bed967..6e21c66 100644
--- a/docs/apisix/2.6/plugins/mqtt-proxy/index.html
+++ b/docs/apisix/2.6/plugins/mqtt-proxy/index.html
@@ -15,15 +15,15 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">mqtt-proxy | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/plugins/mqtt-proxy"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docsearc [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 balance by <code>client_id</code> of MQTT.</p><p>And this plugin both support MQTT protocol <a href="http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html" target="_blank" rel="noopener noreferrer">3.1.*</a> and <a href="https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html" target="_blank" rel="noopener noreferrer">5.0</a>.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="attributes"></a>Attributes<a class="hash-link" href="#attributes" title="Direct link t [...]
 For example, the following configuration represents listening on the 9100 TCP port.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><div tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(199, 146, 234)">...</span><span cla [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/plugins/node-status/index.html b/docs/apisix/2.6/plugins/node-status/index.html
index 9b8e2e8..1def743 100644
--- a/docs/apisix/2.6/plugins/node-status/index.html
+++ b/docs/apisix/2.6/plugins/node-status/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">node-status | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/plugins/node-status"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docsea [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -28,7 +28,7 @@ And this plugin will not make any difference in future requests, so usually we d
 then you can not add this plugin in any route.</li></ol><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-undefined codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">plugins:                          # plugin list</span></div><div class="token-line" style="color:#bfc7d5"><span class="token p [...]
 you can delete the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately.</li></ol><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly sh"><div tabindex="0" class="prism-code language-sh codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ curl http://127.0.0.1:9080/apisix/admin/routes/1 -H &#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27; -X [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/plugins/openid-connect/index.html b/docs/apisix/2.6/plugins/openid-connect/index.html
index 3a576f4..f3e8fc0 100644
--- a/docs/apisix/2.6/plugins/openid-connect/index.html
+++ b/docs/apisix/2.6/plugins/openid-connect/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">openid-connect | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/plugins/openid-connect"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name=" [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -48,7 +48,7 @@ Once the user has authenticated against the identity provider, the plugin will o
 and further information from the identity provider on behalf of the user. The information is currently stored
 in a session cookie that the user agent can submit on subsequent requests. The plugin will recognize the cookie
 and use the information therein to avoid having to go through the flow again.</p><p>The following command adds this mode of operation to a route.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly bash"><div tabindex="0" class="prism-code language-bash codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255 [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/plugins/prometheus/index.html b/docs/apisix/2.6/plugins/prometheus/index.html
index 4fb956c..94279ee 100644
--- a/docs/apisix/2.6/plugins/prometheus/index.html
+++ b/docs/apisix/2.6/plugins/prometheus/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">prometheus | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/plugins/prometheus"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docsearc [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -26,7 +26,7 @@ you may need to use <a href="/docs/apisix/2.6/plugin-interceptors">interceptors<
 Notice, <code>name</code> could be duplicated for multiple routes/services, so when set <code>prefer_name</code> to <code>true</code>, take care of naming format or it could be misleading.</p><p>For example:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc [...]
 these metric data.</p><p>For example like this:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><div tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token key atrule">scrape_configs</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></span [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admi [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/plugins/proxy-cache/index.html b/docs/apisix/2.6/plugins/proxy-cache/index.html
index 3227c77..0f71385 100644
--- a/docs/apisix/2.6/plugins/proxy-cache/index.html
+++ b/docs/apisix/2.6/plugins/proxy-cache/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">proxy-cache | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/plugins/proxy-cache"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docsea [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -26,7 +26,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><blockquote><p>http status is &#x27;200&#x27; and the response header contains &#x27;Apisix-Cache-Status&#x27; to indicate that the plug-in is enabled.</p></blockquote><ol start="3"><li>Verify that the data is cached and request the above address again:</li></ol><div cl [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><blockquote><p>The response header <code>Apisix-Cache-Status</code> value has changed to HIT, indicating that the data has been cached</p></blockquote><p>Example 3: Specifying cache_zone as <code>invalid_disk_cache</code> is inconsistent with the cache area <code>disk_c [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token plain">html</span><span class="token operator" style="color:rgb(137, 221, 255)">&gt;</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token plain"> [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/plugins/proxy-mirror/index.html b/docs/apisix/2.6/plugins/proxy-mirror/index.html
index 3ef1cc7..6f80d4d 100644
--- a/docs/apisix/2.6/plugins/proxy-mirror/index.html
+++ b/docs/apisix/2.6/plugins/proxy-mirror/index.html
@@ -15,15 +15,15 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">proxy-mirror | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/plugins/proxy-mirror"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docs [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello world</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><blockquote><p>Since the specified mirror address is 127.0.0.1:9797, so to verify whether this plugin is in effect, we need to confirm on the service with port 9797.
 For example, we can start a simple server:  python -m SimpleHTTPServer 9797</p></blockquote><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="disable-plugin"></a>Disable Plugin<a class="hash-link" href="#disable-plugin" title="Direct link to heading">#</a></h2><p>Remove the corresponding JSON in the plugin configuration to disable the plugin immediately without restarting the service:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex= [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/plugins/proxy-rewrite/index.html b/docs/apisix/2.6/plugins/proxy-rewrite/index.html
index 588a028..54ba868 100644
--- a/docs/apisix/2.6/plugins/proxy-rewrite/index.html
+++ b/docs/apisix/2.6/plugins/proxy-rewrite/index.html
@@ -15,15 +15,15 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">proxy-rewrite | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/plugins/proxy-rewrite"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="do [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 you can delete the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately :</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/ro [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/plugins/redirect/index.html b/docs/apisix/2.6/plugins/redirect/index.html
index eb68c6e..7948119 100644
--- a/docs/apisix/2.6/plugins/redirect/index.html
+++ b/docs/apisix/2.6/plugins/redirect/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">redirect | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/plugins/redirect"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docsearch:do [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -24,7 +24,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">..</span><span class="token plain">.</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>We can check the response code and the response header <code>Location</code>.</p><p>It shows that the <code>redirect</code> plugin is in effect.</p><p> Here is an e [...]
 you can delete the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately :</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/ro [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/plugins/referer-restriction/index.html b/docs/apisix/2.6/plugins/referer-restriction/index.html
index 4511030..c29bfde 100644
--- a/docs/apisix/2.6/plugins/referer-restriction/index.html
+++ b/docs/apisix/2.6/plugins/referer-restriction/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">referer-restriction | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/plugins/referer-restriction"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="tr [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -24,7 +24,7 @@
 whitelisting request header Referrers.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="attributes"></a>Attributes<a class="hash-link" href="#attributes" title="Direct link to heading">#</a></h2><table><thead><tr><th>Name</th><th>Type</th><th>Requirement</th><th>Default</th><th>Valid</th><th>Description</th></tr></thead><tbody><tr><td>whitelist</td><td>array[string]</td><td>required</td><td></td><td></td><td>List of hostname to whitelist. The hostname can be started with <co [...]
 you can delete the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> htt [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/plugins/request-id/index.html b/docs/apisix/2.6/plugins/request-id/index.html
index e5e908a..2ea8302 100644
--- a/docs/apisix/2.6/plugins/request-id/index.html
+++ b/docs/apisix/2.6/plugins/request-id/index.html
@@ -15,15 +15,15 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">request-id | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/plugins/request-id"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docsearc [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 API request. The plugin will not add a request id if the <code>header_name</code> is already present in the request.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="attributes"></a>Attributes<a class="hash-link" href="#attributes" title="Direct link to heading">#</a></h2><table><thead><tr><th>Name</th><th>Type</th><th>Requirement</th><th>Default</th><th>Valid</th><th>Description</th></tr></thead><tbody><tr><td>header_name</td><td>string</td><td>optional</td><td>&quot;X-Requ [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admi [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/plugins/request-validation/index.html b/docs/apisix/2.6/plugins/request-validation/index.html
index 73843d4..8c617a7 100644
--- a/docs/apisix/2.6/plugins/request-validation/index.html
+++ b/docs/apisix/2.6/plugins/request-validation/index.html
@@ -15,15 +15,15 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">request-validation | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/plugins/request-validation"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 json-schema to validate the schema. The plugin can be used to validate the headers and body data.</p><p>For more information on schema, refer to <a href="https://github.com/api7/jsonschema" target="_blank" rel="noopener noreferrer">JSON schema</a> for more information.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="attributes"></a>Attributes<a class="hash-link" href="#attributes" title="Direct link to heading">#</a></h2><table><thead><tr><th>Name</th><th>Type</th><th>Requi [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admi [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/plugins/response-rewrite/index.html b/docs/apisix/2.6/plugins/response-rewrite/index.html
index dd8b632..abc3c35 100644
--- a/docs/apisix/2.6/plugins/response-rewrite/index.html
+++ b/docs/apisix/2.6/plugins/response-rewrite/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">response-rewrite | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/plugins/response-rewrite"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" na [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -25,7 +25,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">{&quot;code&quot;:&quot;ok&quot;,&quot;message&quot;:&quot;new json body&quot;}</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>This means that the <code>response-rewrite</code> plugin is in effect.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="disable-plugin"></a>Disable Plugin<a class="hash-link" href= [...]
 you can delete the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/rou [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/plugins/server-info/index.html b/docs/apisix/2.6/plugins/server-info/index.html
index 1d82a6a..adf7362 100644
--- a/docs/apisix/2.6/plugins/server-info/index.html
+++ b/docs/apisix/2.6/plugins/server-info/index.html
@@ -15,13 +15,13 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">server-info | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/plugins/server-info"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docsea [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/plugins/serverless/index.html b/docs/apisix/2.6/plugins/serverless/index.html
index d47467f..59c8bad 100644
--- a/docs/apisix/2.6/plugins/serverless/index.html
+++ b/docs/apisix/2.6/plugins/serverless/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">serverless | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/plugins/serverless"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docsearc [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -24,7 +24,7 @@
 which indicates that the specified function is in effect.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="disable-plugin"></a>Disable Plugin<a class="hash-link" href="#disable-plugin" title="Direct link to heading">#</a></h2><p>When you want to disable the serverless plugin, it is very simple,
 you can delete the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/rou [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/plugins/skywalking/index.html b/docs/apisix/2.6/plugins/skywalking/index.html
index fb73d57..15a72a2 100644
--- a/docs/apisix/2.6/plugins/skywalking/index.html
+++ b/docs/apisix/2.6/plugins/skywalking/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">skywalking | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/plugins/skywalking"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docsearc [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -36,7 +36,7 @@ you need to comment out in the <code>config.yaml</code>:</p><div class="codeBloc
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token keyword" style="font-style:italic">import</span><span class="token plain"> </span><span class="token namespace" style="color:rgb(178, 204, 214)">org</span><span class="token namespace punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token namespace" style="color:rgb(178, 204, 214)">springframework</span><span class="token namespace punctuation" style="color:rgb [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic">/**</span></div><div class="token-line" style="color:#bfc7d5"><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"> * @author cyxinda</span></div><div class="token-line" style="color:#bfc7d5"><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"> * @create 2020-05-29 14 [...]
 update the file of agent/config/agent.config</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">agent.service_name</span><span class="token operator" style="color:rgb(137, 221, 255)">=</span><span class="token plain">yourservern [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/plugins/sls-logger/index.html b/docs/apisix/2.6/plugins/sls-logger/index.html
index f067ae3..8262dad 100644
--- a/docs/apisix/2.6/plugins/sls-logger/index.html
+++ b/docs/apisix/2.6/plugins/sls-logger/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">sls-logger | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/plugins/sls-logger"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docsearc [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -24,7 +24,7 @@
 <a href="/docs/apisix/2.6/batch-processor">Batch-Processor</a></p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="attributes"></a>Attributes<a class="hash-link" href="#attributes" title="Direct link to heading">#</a></h2><table><thead><tr><th>Name</th><th>Requirement</th><th>Description</th></tr></thead><tbody><tr><td>host</td><td>required</td><td>IP address or the Hostname of the TCP server, please reference ali cloud log <a href="https://help.aliyun.com/document_detail/29008 [...]
 </span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="test-plugin"></a>Test Plugin<a class="hash-link" href="#test-plugin" title="Direct link to heading">#</a></h2><ul><li>success:</li></ul><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div  [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain" [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/plugins/syslog/index.html b/docs/apisix/2.6/plugins/syslog/index.html
index 4145aa6..eaed42f 100644
--- a/docs/apisix/2.6/plugins/syslog/index.html
+++ b/docs/apisix/2.6/plugins/syslog/index.html
@@ -15,14 +15,14 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">syslog | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/plugins/syslog"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docsearch:docusa [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain" [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/plugins/tcp-logger/index.html b/docs/apisix/2.6/plugins/tcp-logger/index.html
index 2f766c2..d7b6b4e 100644
--- a/docs/apisix/2.6/plugins/tcp-logger/index.html
+++ b/docs/apisix/2.6/plugins/tcp-logger/index.html
@@ -15,15 +15,15 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">tcp-logger | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/plugins/tcp-logger"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docsearc [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 <a href="/docs/apisix/2.6/batch-processor">Batch-Processor</a></p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="attributes"></a>Attributes<a class="hash-link" href="#attributes" title="Direct link to heading">#</a></h2><table><thead><tr><th>Name</th><th>Type</th><th>Requirement</th><th>Default</th><th>Valid</th><th>Description</th></tr></thead><tbody><tr><td>host</td><td>string</td><td>required</td><td></td><td></td><td>IP address or the Hostname of the TCP server.</td></tr> [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain" [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/plugins/traffic-split/index.html b/docs/apisix/2.6/plugins/traffic-split/index.html
index b6688de..faea590 100644
--- a/docs/apisix/2.6/plugins/traffic-split/index.html
+++ b/docs/apisix/2.6/plugins/traffic-split/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">traffic-split | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/plugins/traffic-split"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="do [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -35,7 +35,7 @@ service_name, discovery_type, checks, retries, desc, scheme, labels, create_time
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">world </span><span class="token number" style="color:rgb(247, 140, 108)">1981</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello </span><span class="token number" style="color:rgb(247, 140, 108)">1980</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>After 5 requests, the service of port <code>1981</code> was hit 3 times, and the service of port <code>1980</code> was hit 2 times.</p><blockquote><ol start="3"><li>The expression verification of [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello </span><span class="token number" style="color:rgb(247, 140, 108)">1980</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="matching-rules-correspond-to-upstream"></a>Matching rules correspond to upstream<a class="hash-link" href="#matching-rules-correspond-to-up [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/plugins/udp-logger/index.html b/docs/apisix/2.6/plugins/udp-logger/index.html
index 2812c76..aa9ef5d 100644
--- a/docs/apisix/2.6/plugins/udp-logger/index.html
+++ b/docs/apisix/2.6/plugins/udp-logger/index.html
@@ -15,15 +15,15 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">udp-logger | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/plugins/udp-logger"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docsearc [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 <a href="/docs/apisix/2.6/batch-processor">Batch-Processor</a></p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="attributes"></a>Attributes<a class="hash-link" href="#attributes" title="Direct link to heading">#</a></h2><table><thead><tr><th>Name</th><th>Type</th><th>Requirement</th><th>Default</th><th>Valid</th><th>Description</th></tr></thead><tbody><tr><td>host</td><td>string</td><td>required</td><td></td><td></td><td>IP address or the Hostname of the UDP server.</td></tr> [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain" [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/plugins/uri-blocker/index.html b/docs/apisix/2.6/plugins/uri-blocker/index.html
index 8d0e975..4649793 100644
--- a/docs/apisix/2.6/plugins/uri-blocker/index.html
+++ b/docs/apisix/2.6/plugins/uri-blocker/index.html
@@ -15,14 +15,14 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">uri-blocker | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/plugins/uri-blocker"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docsea [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">..</span><span class="token plain">. </span><span class="token punctuation" style="color:rgb(199, 146, 234)">..</span><span class="token plain">.</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><h2><a aria-hidden="true" tabindex="-1" class="anchor" id= [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/plugins/wolf-rbac/index.html b/docs/apisix/2.6/plugins/wolf-rbac/index.html
index a927330..a60bcf9 100644
--- a/docs/apisix/2.6/plugins/wolf-rbac/index.html
+++ b/docs/apisix/2.6/plugins/wolf-rbac/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">wolf-rbac | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/plugins/wolf-rbac"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docsearch: [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -43,7 +43,7 @@ The rbac feature is provided by <a href="https://github.com/iGeeky/wolf" target=
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:rgb(247, 140, 108)">200</span><span class="token plain"> OK</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token string" style="color:rgb(195, 232, 141)">&quot;message&quot;</span><span class="token builtin class-name" st [...]
 you can delete the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/rou [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/plugins/zipkin/index.html b/docs/apisix/2.6/plugins/zipkin/index.html
index ad59396..4136681 100644
--- a/docs/apisix/2.6/plugins/zipkin/index.html
+++ b/docs/apisix/2.6/plugins/zipkin/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Zipkin | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/plugins/zipkin"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docsearch:docusa [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -29,7 +29,7 @@ no need to restart the service, it will take effect immediately:</p><div class="
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    tracer := GetTracer(...)</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    // use middleware to extract parentID from http header that injected by APISIX</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    r.Use(func(c *gin.Context) {</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">        span := this.Tracer.Extract(b3.ExtractHTTP(c.Request))</span></div><div class="token-line" style="color:#bfc7d5"><s [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">}</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/plugins/zipkin.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAsp [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/powered-by/index.html b/docs/apisix/2.6/powered-by/index.html
index 43e63a6..5c0f9c9 100644
--- a/docs/apisix/2.6/powered-by/index.html
+++ b/docs/apisix/2.6/powered-by/index.html
@@ -15,14 +15,14 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Powered by Apache APISIX | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/powered-by"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="do [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 or providing commercial products including APISIX.</p><p>Users are encouraged to add themselves to this page, <a href="https://github.com/apache/apisix/issues/487" target="_blank" rel="noopener noreferrer">issue</a> and PR are welcomed.</p><ol><li><a href="https://hy.10086.cn/" target="_blank" rel="nofollow">中移杭研</a></li><li><a href="http://www.163.com" target="_blank" rel="nofollow">Netease 网易</a></li><li><a href="https://www.360.cn/" target="_blank" rel="nofollow">360 奇虎</a></li><li><a [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/profile/index.html b/docs/apisix/2.6/profile/index.html
index 4e26efa..57cfb9d 100644
--- a/docs/apisix/2.6/profile/index.html
+++ b/docs/apisix/2.6/profile/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Configuration file switching based on environment variables | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/profile"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta d [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -27,7 +27,7 @@ requirements, we need to change the parameters in the configuration file to the
 development environment. You have to change it back. It&#x27;s very easy to make mistakes.</p><p>The solution to the above problem is to distinguish the current running environment through environment variables, and switch
 between different configuration files through environment variables. The corresponding environment variable in APISIX is: <code>APISIX_PROFILE</code></p><p>When <code>APISIX_PROFILE</code> is not set, the following three configuration files are used by default:</p><ul><li>conf/config.yaml</li><li>conf/apisix.yaml</li><li>conf/debug.yaml</li></ul><p>If the value of <code>APISIX_PROFILE</code> is set to <code>prod</code>, the following three configuration files are used:</p><ul><li>conf/co [...]
 tools such as git can be configured, and version management can be better achieved.</p></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/profile.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAspectRatio="xMidYMid meet" role="img" viewBox="0 0 40 40" class="iconEdit_2_ui" aria-label="Edit page"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/router-radixtree/index.html b/docs/apisix/2.6/router-radixtree/index.html
index be28d98..dd17974 100644
--- a/docs/apisix/2.6/router-radixtree/index.html
+++ b/docs/apisix/2.6/router-radixtree/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Router radixtree | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/router-radixtree"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docs [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -25,7 +25,7 @@
 here is an simple example:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes [...]
 data from the request body. This limitation is configured via:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><div tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token key atrule">graphql</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain [...]
 </span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>If you need to pass a graphql body which is larger than the limitation, you can increase the value in <code>conf/config.yaml</code>.</p></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/router-radixtree.md" target="_blank" rel="noreferrer noopener"><svg fill= [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/stand-alone/index.html b/docs/apisix/2.6/stand-alone/index.html
index f948630..a45fed0 100644
--- a/docs/apisix/2.6/stand-alone/index.html
+++ b/docs/apisix/2.6/stand-alone/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Stand-alone mode | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/stand-alone"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docsearch [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -24,7 +24,7 @@
 the APISIX will check if this file has any changed every second.
 If the file changed and we found <code>#END</code> at the end of the file,
 APISIX will load the rules in this file and update to memory of APISIX.</p><p>Here is a mini example:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><div tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token key atrule">routes</span><span class="token punctuation" style="color:rgb(199, 146,  [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.6/stream-proxy/index.html b/docs/apisix/2.6/stream-proxy/index.html
index 59be034..ff992a8 100644
--- a/docs/apisix/2.6/stream-proxy/index.html
+++ b/docs/apisix/2.6/stream-proxy/index.html
@@ -15,14 +15,14 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Stream Proxy | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.6/stream-proxy"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.6"><meta data-react-helmet="true" name="docsearch:do [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 By default, no any stream proxy is enabled.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><div tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token key atrule">apisix</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></span></div><div  [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/FAQ/index.html b/docs/apisix/FAQ/index.html
index cced2d7..35b72a6 100644
--- a/docs/apisix/FAQ/index.html
+++ b/docs/apisix/FAQ/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">FAQ | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/FAQ"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.7"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content= [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -33,7 +33,7 @@ See the <code>Hot reload</code> section in <a href="/docs/apisix/plugins">plugin
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ acme.sh  --issue  --staging  -d demo.domain --renew-hook </span><span class="token string" style="color:rgb(195, 232, 141)">&quot;/root/.acme.sh/renew-hook-update-apisix.sh  -h http://apisix-admin:port -p /root/.acme.sh/demo.domain/demo.domain.cer -k /root/.acme.sh/demo.domain/demo.domain.key -a xxxxxxxxxxxxx&quot;</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ acme.sh --renew --domain demo.domain</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
 </span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>Blog <a href="https://juejin.cn/post/6965778290619449351" target="_blank" rel="noopener noreferrer">https://juejin.cn/post/6965778290619449351</a> has detail setup.</p></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/FAQ.md" target="_blank" rel="noreferrer n [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/IGNORE_DOC/index.html b/docs/apisix/IGNORE_DOC/index.html
index c42b910..9dbbfc3 100644
--- a/docs/apisix/IGNORE_DOC/index.html
+++ b/docs/apisix/IGNORE_DOC/index.html
@@ -15,13 +15,13 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">IGNORE_DOC | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/IGNORE_DOC"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.7"><meta data-react-helmet="true" name="docsearch:docusaurus [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/admin-api/index.html b/docs/apisix/admin-api/index.html
index 6678e8f..0f03d04 100644
--- a/docs/apisix/admin-api/index.html
+++ b/docs/apisix/admin-api/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Admin API | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/admin-api"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.7"><meta data-react-helmet="true" name="docsearch:docusaurus_t [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -83,7 +83,7 @@ This feature requires APISIX to run on <a href="/docs/apisix/how-to-build#6-buil
 used when all the nodes with higher priority are unavailable or tried.</p><p>As the default priority is 0, we can configure nodes with negative priority as the backup.</p><p>For example:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly json"><div tabindex="0" class="prism-code language-json codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token [...]
 Therefore it is the backup of <code>127.0.0.1</code>.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="response-parameters-3"></a>Response Parameters<a class="hash-link" href="#response-parameters-3" title="Direct link to heading">#</a></h3><p>Return response from etcd currently.</p><p><a href="#table-of-contents">Back to TOC</a></p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="ssl"></a>SSL<a class="hash-link" href="#ssl" title="Direct link to heading">#</a></h2 [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> </span><span class="token string" style="color:rgb(195, 232, 141)">&quot;http://127.0.0.1:9080/apisix/admin/plugins/key-auth&quot;</span><span class="token plain"> -H </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><s [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/architecture-design/apisix/index.html b/docs/apisix/architecture-design/apisix/index.html
index 9d58f66..bd32a8c 100644
--- a/docs/apisix/architecture-design/apisix/index.html
+++ b/docs/apisix/architecture-design/apisix/index.html
@@ -15,15 +15,15 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">APISIX | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/architecture-design/apisix"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.7"><meta data-react-helmet="true" name="docsearc [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 and keep other configurations as default. The configuration in <code>config.yaml</code> should be like this:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><div tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token key atrule">apisix</span><span class="token punctuation" style="color:rgb(199 [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token key atrule">etcd</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  </span><span class="token key atrule">host</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> </span><span class="tok [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/architecture-design/consumer/index.html b/docs/apisix/architecture-design/consumer/index.html
index 81d9301..3658889 100644
--- a/docs/apisix/architecture-design/consumer/index.html
+++ b/docs/apisix/architecture-design/consumer/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Consumer | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/architecture-design/consumer"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.7"><meta data-react-helmet="true" name="docs [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -28,7 +28,7 @@
 </span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>Use the <a href="/docs/apisix/plugins/consumer-restriction">consumer-restriction</a> plug-in to restrict the access of Jack to this API.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;bac [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># Repeated tests, all return 403; Jack is forbidden to access this API</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/he [...]
 </span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/architecture-design/consumer.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAspectRatio="xMidYMid meet" role="img" viewBox="0 0 40 40" class="iconEdit_ [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/architecture-design/debug-mode/index.html b/docs/apisix/architecture-design/debug-mode/index.html
index 773ce8e..e72ed14 100644
--- a/docs/apisix/architecture-design/debug-mode/index.html
+++ b/docs/apisix/architecture-design/debug-mode/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Debug Mode | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/architecture-design/debug-mode"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.7"><meta data-react-helmet="true" name=" [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -24,7 +24,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello world</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>If the information can not be delivered via HTTP response header, for example, the plugin is in stream
 subsystem, the information will be logged in the error log with <code>warn</code> level.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="advanced-debug-mode"></a>Advanced Debug Mode<a class="hash-link" href="#advanced-debug-mode" title="Direct link to heading">#</a></h3><p>Enable advanced debug mode by modifying the configuration in <code>conf/debug.yaml</code> file. Because there will be a check every second, only the checker reads the <code>#END</code> flag, and the file  [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token key atrule">hook_phase</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> </span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># Module Function List, Name: hook_phase</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  </span [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/architecture-design/global-rule/index.html b/docs/apisix/architecture-design/global-rule/index.html
index e7206c3..3314c5a 100644
--- a/docs/apisix/architecture-design/global-rule/index.html
+++ b/docs/apisix/architecture-design/global-rule/index.html
@@ -15,14 +15,14 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Global rule | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/architecture-design/global-rule"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.7"><meta data-react-helmet="true" name [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 We can register a global <a href="/docs/apisix/architecture-design/plugin">Plugin</a> with <code>GlobalRule</code>:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="t [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/architecture-design/index.html b/docs/apisix/architecture-design/index.html
index 2573d23..23c26ce 100644
--- a/docs/apisix/architecture-design/index.html
+++ b/docs/apisix/architecture-design/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Architecture Design | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/architecture-design"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.7"><meta data-react-helmet="true" name="do [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -41,7 +41,7 @@ will be merged into it. The same plugin in the plugin config will override one i
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello world</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>If the information can be delivered via HTTP response header, for example, the plugin is in stream
 subsystem, the information will be logged in the error log with <code>warn</code> level.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="advanced-debug-mode"></a>Advanced Debug Mode<a class="hash-link" href="#advanced-debug-mode" title="Direct link to heading">#</a></h3><p>Enable advanced debug mode by modifying the configuration in <code>conf/debug.yaml</code> file. Because there will be a check every second, only the checker reads the <code>#END</code> flag, and the file  [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token key atrule">hook_phase</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> </span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># Module Function List, Name: hook_phase</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  </span [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/architecture-design/plugin-config/index.html b/docs/apisix/architecture-design/plugin-config/index.html
index 4545cc7..f7cedde 100644
--- a/docs/apisix/architecture-design/plugin-config/index.html
+++ b/docs/apisix/architecture-design/plugin-config/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Plugin Config | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/architecture-design/plugin-config"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.7"><meta data-react-helmet="true"  [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -24,7 +24,7 @@
 bind it with a route directly.</p><p>For instance, you can do something like:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># create a plugin config</span><span class="to [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># bind it to route</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1 -H </span><span class="token str [...]
 will be merged into it. The same plugin in the plugin config will override one in the <code>plugins</code>.</p><p>For example, when we configure a plugin config</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-undefined codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">{</span></div><div [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/architecture-design/plugin/index.html b/docs/apisix/architecture-design/plugin/index.html
index 47ed195..f467cac 100644
--- a/docs/apisix/architecture-design/plugin/index.html
+++ b/docs/apisix/architecture-design/plugin/index.html
@@ -15,14 +15,14 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Plugin | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/architecture-design/plugin"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.7"><meta data-react-helmet="true" name="docsearc [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 then its execution will be skipped.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="hot-reload-in-stand-alone-mode"></a>Hot reload in stand-alone mode<a class="hash-link" href="#hot-reload-in-stand-alone-mode" title="Direct link to heading">#</a></h3><p>For stand-alone mode, see plugin related section in <a href="/docs/apisix/stand-alone">stand alone mode</a>.</p></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apach [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/architecture-design/route/index.html b/docs/apisix/architecture-design/route/index.html
index 08b09f3..7634067 100644
--- a/docs/apisix/architecture-design/route/index.html
+++ b/docs/apisix/architecture-design/route/index.html
@@ -15,15 +15,15 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Route | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/architecture-design/route"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.7"><meta data-react-helmet="true" name="docsearch: [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:rgb(247, 140, 108)">201</span><span class="token plain"> Created</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Date: Sat, </span><span class="token number" style="color:rgb(247, 140, 108)">31</span><span class="token plain"> Aug </span><span class="token number" style="color:rgb(247, 140, 108)">2019</span><span  [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token string" style="color:rgb(195, 232, 141)">&quot;node&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token string" style="color:rgb(195, 232, 141)">&quot;value&quot;</span><span class="token plain">:</span><span class="token  [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/architecture-design/router/index.html b/docs/apisix/architecture-design/router/index.html
index 8db3cd0..ab795e8 100644
--- a/docs/apisix/architecture-design/router/index.html
+++ b/docs/apisix/architecture-design/router/index.html
@@ -15,13 +15,13 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Router | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/architecture-design/router"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.7"><meta data-react-helmet="true" name="docsearc [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/architecture-design/script/index.html b/docs/apisix/architecture-design/script/index.html
index 89436fa..1d22c7f 100644
--- a/docs/apisix/architecture-design/script/index.html
+++ b/docs/apisix/architecture-design/script/index.html
@@ -15,13 +15,13 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Script | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/architecture-design/script"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.7"><meta data-react-helmet="true" name="docsearc [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/architecture-design/service/index.html b/docs/apisix/architecture-design/service/index.html
index 21551e9..5cbe254 100644
--- a/docs/apisix/architecture-design/service/index.html
+++ b/docs/apisix/architecture-design/service/index.html
@@ -15,15 +15,15 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Service | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/architecture-design/service"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.7"><meta data-react-helmet="true" name="docsea [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># create new Route and reference the service by id `200`</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/route [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/101 -H </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><span class="token plain"> -X PUT -d </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;</span></div [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/architecture-design/upstream/index.html b/docs/apisix/architecture-design/upstream/index.html
index a87709b..ae2c233 100644
--- a/docs/apisix/architecture-design/upstream/index.html
+++ b/docs/apisix/architecture-design/upstream/index.html
@@ -15,13 +15,13 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Upstream | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/architecture-design/upstream"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.7"><meta data-react-helmet="true" name="docs [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/aws/index.html b/docs/apisix/aws/index.html
index dec4d90..857af53 100644
--- a/docs/apisix/aws/index.html
+++ b/docs/apisix/aws/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Running APISIX in AWS with AWS CDK | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/aws"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.7"><meta data-react-helmet="true" name="doc [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -43,7 +43,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Non-authoritative answer:</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Name:   apiSi-PhpSe-FOL2MM4TW7G8-09029e095ab36fcc.elb.us-west-2.amazonaws.com</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Address: </span><span class="token number" style="color:rgb(247, 140, 108)">44.224</span><span class="token plain">.124.213</span></div [...]
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/aws-define-service.png">
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/aws-define-route.png"></p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="validation"></a>Validation<a class="hash-link" href="#validation" title="Direct link to heading">#</a></h2><p>OK. Let&#x27;s test the <code>/index.php</code> on <code>{apiSix.ApiSixServiceServiceURL}/index.php</code></p><p><img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/aws-caddy-php-we [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/batch-processor/index.html b/docs/apisix/batch-processor/index.html
index 09df64f..ad87c14 100644
--- a/docs/apisix/batch-processor/index.html
+++ b/docs/apisix/batch-processor/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Batch Processor | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/batch-processor"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.7"><meta data-react-helmet="true" name="docsearch: [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -31,7 +31,7 @@ argument and the batch configuration as the second parameter.</p><div class="cod
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">if batch_processor then</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    batch_processor:push({hello=&#x27;world&#x27;})</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">end</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>Note: Please make sure th [...]
 The timer to flush the batch runs based on the <code>inactive_timeout</code> configuration. Thus, for optimal usage,
 keep the <code>inactive_timeout</code> smaller than the <code>buffer_duration</code>.</p></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/batch-processor.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAspectRatio="xMidYMid meet" role="img" viewBox="0 0 40 40" class="iconEdit_2_ui" aria-label="Edit page"><g><path d="m34.5 11.7l-3 3 [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/benchmark/index.html b/docs/apisix/benchmark/index.html
index 26f49f3..efe317e 100644
--- a/docs/apisix/benchmark/index.html
+++ b/docs/apisix/benchmark/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Benchmark | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/benchmark"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.7"><meta data-react-helmet="true" name="docsearch:docusaurus_t [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -26,7 +26,7 @@ and the response size was 1KB.</p><h4><a aria-hidden="true" tabindex="-1" class=
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/flamegraph-1.jpg" alt="flamegraph-1"></p><p>And if you want to run the benchmark test in your machine, you should run another Nginx to listen 80 port.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="to [...]
 and the response size was 1KB.</p><h4><a aria-hidden="true" tabindex="-1" class="anchor" id="qps-1"></a>QPS<a class="hash-link" href="#qps-1" title="Direct link to heading">#</a></h4><p>The x-axis means the size of CPU core, and the y-axis is QPS.</p><p><img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/benchmark-2.jpg" alt="benchmark-2"></p><h4><a aria-hidden="true" tabindex="-1" class="anchor" id="latency-1"></a>Latency<a class="hash-link" href="#latenc [...]
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/flamegraph-2.jpg" alt="flamegraph-2"></p><p>And if you want to run the benchmark test in your machine, you should run another Nginx to listen 80 port.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="to [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/certificate/index.html b/docs/apisix/certificate/index.html
index 91641cb..e91b834 100644
--- a/docs/apisix/certificate/index.html
+++ b/docs/apisix/certificate/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Certificate | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/certificate"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.7"><meta data-react-helmet="true" name="docsearch:docusaur [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -36,7 +36,7 @@ and RSA key-exchange algorithm, then just configure the extra certificates (the
 first certificate and private key should be still put in <code>cert</code> and <code>key</code>) and
 private keys by <code>certs</code> and <code>keys</code>.</p><ul><li><code>certs</code>: PEM-encoded certificate array.</li><li><code>keys</code>: PEM-encoded private key array.</li></ul><p><code>APISIX</code> will pair certificate and private key with the same indice as a SSL key
 pair. So the length of <code>certs</code> and <code>keys</code> must be same.</p></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/certificate.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAspectRatio="xMidYMid meet" role="img" viewBox="0 0 40 40" class="iconEdit_2_ui" aria-label="Edit page"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3 [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/control-api/index.html b/docs/apisix/control-api/index.html
index a2e16eb..a65005b 100644
--- a/docs/apisix/control-api/index.html
+++ b/docs/apisix/control-api/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Control API | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/control-api"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.7"><meta data-react-helmet="true" name="docsearch:docusaur [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -26,7 +26,7 @@ If a plugin adds such a control API, please refer to each plugin&#x27;s document
 of fields like <code>consumer_schema</code> or <code>type</code>, it is depended on by the plugin&#x27;s
 definition.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="get-v1healthcheck"></a>GET /v1/healthcheck<a class="hash-link" href="#get-v1healthcheck" title="Direct link to heading">#</a></h3><p>Introduced since <code>v2.3</code>.</p><p>Return current <a href="/docs/apisix/health-check">health check</a> status in the format below:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly json"><div tabindex="0" class="prism-code language-json codeBlock_23N8 th [...]
 object with id 1 creates a health checker, the <code>src_type</code> is <code>upstreams</code> and the <code>src_id</code> is <code>1</code>.</li><li>name: the name of the health checker.</li><li>nodes: the target nodes of the health checker.</li><li>healthy_nodes: the healthy node known by the health checker.</li></ul><p>User can also use <code>/v1/healthcheck/$src_type/$src_id</code> can get the status of a health checker.</p><p>For example, <code>GET /v1/healthcheck/upstreams/1</code> [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/customize-nginx-configuration/index.html b/docs/apisix/customize-nginx-configuration/index.html
index 01da5cb..78bc491 100644
--- a/docs/apisix/customize-nginx-configuration/index.html
+++ b/docs/apisix/customize-nginx-configuration/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Customize Nginx configuration | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/customize-nginx-configuration"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.7"><meta data-react-he [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -24,7 +24,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">            location /ysec_status </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">                req_status_show;</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">                allow 127.0.0.1;</span></div><div class="token-li [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">        chunked_transfer_encoding on;</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    </span><span class="token key atrule">http_server_configuration_snippet</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">|</span><span class="token scalar string" style="color:rgb(195, 232, 141)"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token  [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/debug-function/index.html b/docs/apisix/debug-function/index.html
index 84b12d0..703e866 100644
--- a/docs/apisix/debug-function/index.html
+++ b/docs/apisix/debug-function/index.html
@@ -15,14 +15,14 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Debug Function | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/debug-function"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.7"><meta data-react-helmet="true" name="docsearch:do [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 </span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>It has a response header of <code>X-APISIX-Upstream-Status: 502</code>.</p><blockquote><p>Example 2: <code>502</code> response status code comes from <code>APISIX</code></p></blockquote><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class= [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/discovery/consul_kv/index.html b/docs/apisix/discovery/consul_kv/index.html
index 5304383..3cc1189 100644
--- a/docs/apisix/discovery/consul_kv/index.html
+++ b/docs/apisix/discovery/consul_kv/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">consul_kv | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/discovery/consul_kv"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.7"><meta data-react-helmet="true" name="docsearch:do [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -24,7 +24,7 @@
 <img src="https://user-images.githubusercontent.com/548385/107141841-6ced3e00-6966-11eb-8aa4-bc790a4ad113.png"></p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="configuration-for-discovery-client"></a>Configuration for discovery client<a class="hash-link" href="#configuration-for-discovery-client" title="Direct link to heading">#</a></h2><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="configuration-for-consul-kv"></a>Configuration for Consul KV<a class="hash-link" [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">\</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    -X PUT </span><span class="token punctuation" style="color:rgb(199, 146, 234)">\</span><span class="token [...]
 To avoid confusion, use the full consul key url path as service name in practice.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="upstream-setting"></a>Upstream setting<a class="hash-link" href="#upstream-setting" title="Direct link to heading">#</a></h3><p>Here is an example of routing a request with a URL of &quot;/*&quot; to a service which named &quot;<a href="http://127.0.0.1:8500/v1/kv/upstreams/webpages/%22" target="_blank" rel="noopener noreferrer">http://127.0.0.1: [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/discovery/dns/index.html b/docs/apisix/discovery/dns/index.html
index ad62a96..6bf9fe8 100644
--- a/docs/apisix/discovery/dns/index.html
+++ b/docs/apisix/discovery/dns/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">DNS | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/discovery/dns"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.7"><meta data-react-helmet="true" name="docsearch:docusaurus_tag [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -30,7 +30,7 @@ noisy).  In the presence of records containing weights greater
 than 0, records with weight 0 should have a very small chance of
 being selected.</p></blockquote><p>We treat weight 0 record has a weight of 1 so the node &quot;have a very small chance of
 being selected&quot;, which is also the common way to treat this type of record.</p></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/discovery/dns.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAspectRatio="xMidYMid meet" role="img" viewBox="0 0 40 40" class="iconEdit_2_ui" aria-label="Edit page"><g><path d="m34.5 11.7l-3 3.1-6.3- [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/discovery/eureka/index.html b/docs/apisix/discovery/eureka/index.html
index a2800ed..9318e20 100644
--- a/docs/apisix/discovery/eureka/index.html
+++ b/docs/apisix/discovery/eureka/index.html
@@ -15,14 +15,14 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">eureka | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/discovery/eureka"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.7"><meta data-react-helmet="true" name="docsearch:docusaur [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 reading from <a href="/docs/apisix/discovery#supported-discovery-registries">Supported discovery registries</a>.</p></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/discovery/eureka.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAspectRatio="xMidYMid meet" role="img" viewBox="0 0 40 40" class="iconEdit_2_ui" aria-label="Edit page" [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/discovery/index.html b/docs/apisix/discovery/index.html
index 7ef3148..c4dee3d 100644
--- a/docs/apisix/discovery/index.html
+++ b/docs/apisix/discovery/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Integration service discovery registry | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/discovery"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.7"><meta data-react-helmet="true" [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -32,7 +32,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:rgb(247, 140, 108)">201</span><span class="token plain"> Created</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Date: Sat, </span><span class="token number" style="color:rgb(247, 140, 108)">31</span><span class="token plain"> Aug </span><span class="token number" style="color:rgb(247, 140, 108)">2019</span><span  [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token string" style="color:rgb(195, 232, 141)">&quot;node&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token string" style="color:rgb(195, 232, 141)">&quot;value&quot;</span><span class="token plain">:</span><span class="token  [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/2 -H </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><span class="token plain"> -X PUT -i -d </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;</span></ [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/discovery/nacos/index.html b/docs/apisix/discovery/nacos/index.html
index 36b7c86..44bacbb 100644
--- a/docs/apisix/discovery/nacos/index.html
+++ b/docs/apisix/discovery/nacos/index.html
@@ -15,13 +15,13 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">nacos | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/discovery/nacos"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.7"><meta data-react-helmet="true" name="docsearch:docusaurus [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/dns/index.html b/docs/apisix/dns/index.html
index 3a6c907..492aeb0 100644
--- a/docs/apisix/dns/index.html
+++ b/docs/apisix/dns/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">DNS | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/dns"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.7"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content= [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -28,7 +28,7 @@ noisy).  In the presence of records containing weights greater
 than 0, records with weight 0 should have a very small chance of
 being selected.</p></blockquote><p>We treat weight 0 record has a weight of 1 so the node &quot;have a very small chance of
 being selected&quot;, which is also the common way to treat this type of record.</p><p>TODO: support priority.</p></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/dns.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAspectRatio="xMidYMid meet" role="img" viewBox="0 0 40 40" class="iconEdit_2_ui" aria-label="Edit page"><g><path d="m3 [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/examples/plugins-hmac-auth-generate-signature/index.html b/docs/apisix/examples/plugins-hmac-auth-generate-signature/index.html
index 6dc5544..e94268f 100644
--- a/docs/apisix/examples/plugins-hmac-auth-generate-signature/index.html
+++ b/docs/apisix/examples/plugins-hmac-auth-generate-signature/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">HMAC Generate Signature Examples | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/examples/plugins-hmac-auth-generate-signature"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.7"> [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -55,7 +55,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">--to base64</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">ngx.say(ngx.encode_base64(digest))</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="shell"></a>Shell<a class="hash-link" href="#shell" title="Direct link to heading">#</a [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># to lowercase hexits</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token builtin class-name" style="color:rgb(255, 203, 107)">echo</span><span class="token plain"> -e </span><span class="token variable" style="color:rgb(191, 199, [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># to base64</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token builtin class-name" style="color:rgb(255, 203, 107)">echo</span><span class="token plain"> -e </span><span class="token variable" style="color:rgb(191, 199, 213)">$ME [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/external-plugin/index.html b/docs/apisix/external-plugin/index.html
index dae19d4..f046386 100644
--- a/docs/apisix/external-plugin/index.html
+++ b/docs/apisix/external-plugin/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">External Plugin | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/external-plugin"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.7"><meta data-react-helmet="true" name="docsearch: [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -40,7 +40,7 @@ declare your variable first in the <code>conf/config.yaml</code>:</p><div class=
 OpenResty 1.19+.</p><p>However, APISIX needs to wait the runner to quit so that we can ensure the resource
 for the process group is freed.</p><p>Therefore, we send SIGTERM first. And then after 1 second, if the runner is still
 running, we will send SIGKILL.</p></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/external-plugin.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAspectRatio="xMidYMid meet" role="img" viewBox="0 0 40 40" class="iconEdit_2_ui" aria-label="Edit page"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0. [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/getting-started/index.html b/docs/apisix/getting-started/index.html
index c6fba57..8b061fc 100644
--- a/docs/apisix/getting-started/index.html
+++ b/docs/apisix/getting-started/index.html
@@ -15,14 +15,14 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Getting Started | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/getting-started"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.7"><meta data-react-helmet="true" name="docsearch: [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 the proxy-rewrite plugin to do it.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly bash"><div tabindex="0" class="prism-code language-bash codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> </span><span class="token string" s [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/grpc-proxy/index.html b/docs/apisix/grpc-proxy/index.html
index 5924891..36625c1 100644
--- a/docs/apisix/grpc-proxy/index.html
+++ b/docs/apisix/grpc-proxy/index.html
@@ -15,14 +15,14 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">gRPC Proxy | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/grpc-proxy"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.7"><meta data-react-helmet="true" name="docsearch:docusaurus [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 gRPC client -&gt; APISIX -&gt; gRPC/gRPCS server</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="parameters"></a>Parameters<a class="hash-link" href="#parameters" title="Direct link to heading">#</a></h2><ul><li><code>scheme</code>: the <code>scheme</code> of the route&#x27;s upstream must be <code>grpc</code> or <code>grpcs</code>.</li><li><code>uri</code>: format likes /service/method, Example:/helloworld.Greeter/SayHello</li></ul><h3><a aria-hidden="true" tabindex="-1" c [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/health-check/index.html b/docs/apisix/health-check/index.html
index 2e72374..0d11840 100644
--- a/docs/apisix/health-check/index.html
+++ b/docs/apisix/health-check/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Health Check | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/health-check"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.7"><meta data-react-helmet="true" name="docsearch:docusa [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -25,7 +25,7 @@ you can use it for upstream.</p><p>Note:</p><ul><li>We only start the health che
 There won&#x27;t be any health check if an upstream is configured but isn&#x27;t in used.</li><li>If there is no healthy node can be chosen, we will continue to access the upstream.</li><li>We won&#x27;t start the health check when the upstream only has one node, as we will access
 it whether this unique node is healthy or not.</li><li>Active health check is required so that the unhealthy node can recover.</li></ul><p>The following is an example of health check:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token  [...]
 contains: <code>active</code> or <code>passive</code>.</p><ul><li><p><code>active</code>: To enable active health checks, you need to specify the configuration items under <code>checks.active</code> in the Upstream object configuration.</p><ul><li><p><code>active.timeout</code>: Socket timeout for active checks (in seconds), support decimals. For example <code>1.01</code> means <code>1010</code> milliseconds, <code>2</code> means <code>2000</code> milliseconds.</p></li><li><p><code>activ [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/how-to-build/index.html b/docs/apisix/how-to-build/index.html
index 4e6d09b..0a7fc12 100644
--- a/docs/apisix/how-to-build/index.html
+++ b/docs/apisix/how-to-build/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">How to build Apache APISIX | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/how-to-build"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.7"><meta data-react-helmet="true" name="do [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -33,7 +33,7 @@ Here is an example:</p><div class="codeBlockContainer_K1bP"><div class="codeBloc
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes?api_key</span><span class="token operator" style="color:rgb(137, 221, 255)">=</span><span class="token plain">abcdefghabcdefgh-invalid -i</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">HTTP/1.1 </span><span class="token [...]
 If you need those features, you can build OpenResty with
 <a href="https://raw.githubusercontent.com/api7/apisix-build-tools/master/build-apisix-openresty.sh" target="_blank" rel="noopener noreferrer">this build script</a>.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="7-add-systemd-unit-file-for-apisix"></a>7. Add systemd unit file for APISIX<a class="hash-link" href="#7-add-systemd-unit-file-for-apisix" title="Direct link to heading">#</a></h2><p>If you install APISIX with rpm package, the unit file is installed automatically, [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/https/index.html b/docs/apisix/https/index.html
index d5d149f..69ac2c1 100644
--- a/docs/apisix/https/index.html
+++ b/docs/apisix/https/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">HTTPS | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/https"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.7"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" cont [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -36,7 +36,7 @@ and RSA key-exchange algorithm, then just configure the extra certificates (the
 first certificate and private key should be still put in <code>cert</code> and <code>key</code>) and
 private keys by <code>certs</code> and <code>keys</code>.</p><ul><li><code>certs</code>: PEM-encoded certificate array.</li><li><code>keys</code>: PEM-encoded private key array.</li></ul><p><code>APISIX</code> will pair certificate and private key with the same indice as a SSL key
 pair. So the length of <code>certs</code> and <code>keys</code> must be same.</p></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/https.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAspectRatio="xMidYMid meet" role="img" viewBox="0 0 40 40" class="iconEdit_2_ui" aria-label="Edit page"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0 [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/install-dependencies/index.html b/docs/apisix/install-dependencies/index.html
index 63d919e..6ee1b17 100644
--- a/docs/apisix/install-dependencies/index.html
+++ b/docs/apisix/install-dependencies/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Install Dependencies | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/install-dependencies"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.7"><meta data-react-helmet="true" name=" [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -40,7 +40,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># start etcd server</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">nohup</span><span class="token plain"> etcd </span><span class="token operator" style="color:rgb(137, 221, 255)">&a [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># start etcd server</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">brew services start etcd</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># enable TLS for etcd server</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">etcd --cert-file</span><span class="token operator" style="color:rgb(137, 221, 255)">=</span><span class="token plain">/path/to/cert --key-file</span><span class="token operat [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/mtls/index.html b/docs/apisix/mtls/index.html
index 35151ee..52d4f04 100644
--- a/docs/apisix/mtls/index.html
+++ b/docs/apisix/mtls/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Mutual TLS Authentication | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/mtls"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="2.7"><meta data-react-helmet="true" name="docsearch:d [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -28,7 +28,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token keyword" style="font-style:italic">if</span><span class="token plain"> </span><span class="token builtin" style="color:rgb(130, 170, 255)">len</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">sys</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">argv</span><span class=" [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">reqParam </span><span class="token operator" style="color:rgb(137, 221, 255)">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    </span><span class="token string" style="color:rgb(195, 232, 141)">&quot;tls&quot;</span><span clas [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">resp </span><span class="token operator" style="color:rgb(137, 221, 255)">=</span><span class="token plain"> requests</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">patch</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token string" style="color:rgb(195, 232, 141)">&quot;http://127.0.0.1:9080/apisix/admi [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/next/FAQ/index.html b/docs/apisix/next/FAQ/index.html
index 8655541..4311574 100644
--- a/docs/apisix/next/FAQ/index.html
+++ b/docs/apisix/next/FAQ/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">FAQ | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/next/FAQ"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -33,7 +33,7 @@ See the <code>Hot reload</code> section in <a href="/docs/apisix/next/plugins">p
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ acme.sh  --issue  --staging  -d demo.domain --renew-hook </span><span class="token string" style="color:rgb(195, 232, 141)">&quot;/root/.acme.sh/renew-hook-update-apisix.sh  -h http://apisix-admin:port -p /root/.acme.sh/demo.domain/demo.domain.cer -k /root/.acme.sh/demo.domain/demo.domain.key -a xxxxxxxxxxxxx&quot;</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ acme.sh --renew --domain demo.domain</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
 </span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>Blog <a href="https://juejin.cn/post/6965778290619449351" target="_blank" rel="noopener noreferrer">https://juejin.cn/post/6965778290619449351</a> has detail setup.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="how-to-strip-route-prefix-for-path-matching"></a>How to strip route prefix for path matching<a class="hash-link" href="#how-to-str [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/next/IGNORE_DOC/index.html b/docs/apisix/next/IGNORE_DOC/index.html
index 8ea7341..a49bf89 100644
--- a/docs/apisix/next/IGNORE_DOC/index.html
+++ b/docs/apisix/next/IGNORE_DOC/index.html
@@ -15,13 +15,13 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">IGNORE_DOC | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/next/IGNORE_DOC"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:d [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
-<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/next/admin-api/index.html b/docs/apisix/next/admin-api/index.html
index 19ed488..695e51d 100644
--- a/docs/apisix/next/admin-api/index.html
+++ b/docs/apisix/next/admin-api/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Admin API | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/next/admin-api"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:doc [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -83,7 +83,7 @@ This feature requires APISIX to run on <a href="/docs/apisix/next/how-to-build#6
 used when all the nodes with higher priority are unavailable or tried.</p><p>As the default priority is 0, we can configure nodes with negative priority as the backup.</p><p>For example:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly json"><div tabindex="0" class="prism-code language-json codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token [...]
 Therefore it is the backup of <code>127.0.0.1</code>.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="response-parameters-3"></a>Response Parameters<a class="hash-link" href="#response-parameters-3" title="Direct link to heading">#</a></h3><p>Return response from etcd currently.</p><p><a href="#table-of-contents">Back to TOC</a></p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="ssl"></a>SSL<a class="hash-link" href="#ssl" title="Direct link to heading">#</a></h2 [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> </span><span class="token string" style="color:rgb(195, 232, 141)">&quot;http://127.0.0.1:9080/apisix/admin/plugins/key-auth&quot;</span><span class="token plain"> -H </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><s [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/next/architecture-design/apisix/index.html b/docs/apisix/next/architecture-design/apisix/index.html
index 70812fc..1e13b2c 100644
--- a/docs/apisix/next/architecture-design/apisix/index.html
+++ b/docs/apisix/next/architecture-design/apisix/index.html
@@ -15,15 +15,15 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">APISIX | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/next/architecture-design/apisix"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name= [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 and keep other configurations as default. The configuration in <code>config.yaml</code> should be like this:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><div tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token key atrule">apisix</span><span class="token punctuation" style="color:rgb(199 [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token key atrule">etcd</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  </span><span class="token key atrule">host</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> </span><span class="tok [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/next/architecture-design/consumer/index.html b/docs/apisix/next/architecture-design/consumer/index.html
index 88de17b..7052c65 100644
--- a/docs/apisix/next/architecture-design/consumer/index.html
+++ b/docs/apisix/next/architecture-design/consumer/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Consumer | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/next/architecture-design/consumer"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" n [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -28,7 +28,7 @@
 </span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>Use the <a href="/docs/apisix/next/plugins/consumer-restriction">consumer-restriction</a> plug-in to restrict the access of Jack to this API.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># Repeated tests, all return 403; Jack is forbidden to access this API</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/he [...]
 </span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/architecture-design/consumer.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAspectRatio="xMidYMid meet" role="img" viewBox="0 0 40 40" class="iconEdit_ [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/next/architecture-design/debug-mode/index.html b/docs/apisix/next/architecture-design/debug-mode/index.html
index 0cc31cf..56ef6ab 100644
--- a/docs/apisix/next/architecture-design/debug-mode/index.html
+++ b/docs/apisix/next/architecture-design/debug-mode/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Debug Mode | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/next/architecture-design/debug-mode"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="tru [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -24,7 +24,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello world</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>If the information can not be delivered via HTTP response header, for example, the plugin is in stream
 subsystem, the information will be logged in the error log with <code>warn</code> level.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="advanced-debug-mode"></a>Advanced Debug Mode<a class="hash-link" href="#advanced-debug-mode" title="Direct link to heading">#</a></h3><p>Enable advanced debug mode by modifying the configuration in <code>conf/debug.yaml</code> file. Because there will be a check every second, only the checker reads the <code>#END</code> flag, and the file  [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token key atrule">hook_phase</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> </span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># Module Function List, Name: hook_phase</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  </span [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/next/architecture-design/global-rule/index.html b/docs/apisix/next/architecture-design/global-rule/index.html
index bdca6ef..53a8407 100644
--- a/docs/apisix/next/architecture-design/global-rule/index.html
+++ b/docs/apisix/next/architecture-design/global-rule/index.html
@@ -15,14 +15,14 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Global rule | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/next/architecture-design/global-rule"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="t [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 We can register a global <a href="/docs/apisix/next/architecture-design/plugin">Plugin</a> with <code>GlobalRule</code>:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span cla [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/next/architecture-design/index.html b/docs/apisix/next/architecture-design/index.html
index 63b217f..4d0d102 100644
--- a/docs/apisix/next/architecture-design/index.html
+++ b/docs/apisix/next/architecture-design/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Architecture Design | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/next/architecture-design"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -41,7 +41,7 @@ will be merged into it. The same plugin in the plugin config will override one i
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello world</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>If the information can be delivered via HTTP response header, for example, the plugin is in stream
 subsystem, the information will be logged in the error log with <code>warn</code> level.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="advanced-debug-mode"></a>Advanced Debug Mode<a class="hash-link" href="#advanced-debug-mode" title="Direct link to heading">#</a></h3><p>Enable advanced debug mode by modifying the configuration in <code>conf/debug.yaml</code> file. Because there will be a check every second, only the checker reads the <code>#END</code> flag, and the file  [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token key atrule">hook_phase</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> </span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># Module Function List, Name: hook_phase</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  </span [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/next/architecture-design/plugin-config/index.html b/docs/apisix/next/architecture-design/plugin-config/index.html
index cbf0a7c..f8a17cb 100644
--- a/docs/apisix/next/architecture-design/plugin-config/index.html
+++ b/docs/apisix/next/architecture-design/plugin-config/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Plugin Config | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/next/architecture-design/plugin-config"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helme [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -24,7 +24,7 @@
 bind it with a route directly.</p><p>For instance, you can do something like:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># create a plugin config</span><span class="to [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># bind it to route</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1 -H </span><span class="token str [...]
 will be merged into it. The same plugin in the plugin config will override one in the <code>plugins</code>.</p><p>For example, when we configure a plugin config</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-undefined codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">{</span></div><div [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/next/architecture-design/plugin/index.html b/docs/apisix/next/architecture-design/plugin/index.html
index 5fe08cb..b2fe791 100644
--- a/docs/apisix/next/architecture-design/plugin/index.html
+++ b/docs/apisix/next/architecture-design/plugin/index.html
@@ -15,14 +15,14 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Plugin | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/next/architecture-design/plugin"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name= [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 then its execution will be skipped.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="hot-reload-in-stand-alone-mode"></a>Hot reload in stand-alone mode<a class="hash-link" href="#hot-reload-in-stand-alone-mode" title="Direct link to heading">#</a></h3><p>For stand-alone mode, see plugin related section in <a href="/docs/apisix/next/stand-alone">stand alone mode</a>.</p></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/ [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/next/architecture-design/route/index.html b/docs/apisix/next/architecture-design/route/index.html
index 30e4c77..e97b59c 100644
--- a/docs/apisix/next/architecture-design/route/index.html
+++ b/docs/apisix/next/architecture-design/route/index.html
@@ -15,15 +15,15 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Route | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/next/architecture-design/route"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="d [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:rgb(247, 140, 108)">201</span><span class="token plain"> Created</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Date: Sat, </span><span class="token number" style="color:rgb(247, 140, 108)">31</span><span class="token plain"> Aug </span><span class="token number" style="color:rgb(247, 140, 108)">2019</span><span  [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token string" style="color:rgb(195, 232, 141)">&quot;node&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token string" style="color:rgb(195, 232, 141)">&quot;value&quot;</span><span class="token plain">:</span><span class="token  [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/next/architecture-design/router/index.html b/docs/apisix/next/architecture-design/router/index.html
index f033b55..5f5d44e 100644
--- a/docs/apisix/next/architecture-design/router/index.html
+++ b/docs/apisix/next/architecture-design/router/index.html
@@ -15,13 +15,13 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Router | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/next/architecture-design/router"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name= [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/next/architecture-design/script/index.html b/docs/apisix/next/architecture-design/script/index.html
index 5fcbe08..90e7dc9 100644
--- a/docs/apisix/next/architecture-design/script/index.html
+++ b/docs/apisix/next/architecture-design/script/index.html
@@ -15,13 +15,13 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Script | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/next/architecture-design/script"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name= [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/next/architecture-design/service/index.html b/docs/apisix/next/architecture-design/service/index.html
index dd83428..33556d6 100644
--- a/docs/apisix/next/architecture-design/service/index.html
+++ b/docs/apisix/next/architecture-design/service/index.html
@@ -15,15 +15,15 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Service | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/next/architecture-design/service"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" nam [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># create new Route and reference the service by id `200`</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/route [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/101 -H </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><span class="token plain"> -X PUT -d </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;</span></div [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/next/architecture-design/upstream/index.html b/docs/apisix/next/architecture-design/upstream/index.html
index d4fb09d..4885e31 100644
--- a/docs/apisix/next/architecture-design/upstream/index.html
+++ b/docs/apisix/next/architecture-design/upstream/index.html
@@ -15,13 +15,13 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Upstream | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/next/architecture-design/upstream"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" n [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/next/aws/index.html b/docs/apisix/next/aws/index.html
index a9f2f4e..7a8fe94 100644
--- a/docs/apisix/next/aws/index.html
+++ b/docs/apisix/next/aws/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Running APISIX in AWS with AWS CDK | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/next/aws"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true"  [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -43,7 +43,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Non-authoritative answer:</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Name:   apiSi-PhpSe-FOL2MM4TW7G8-09029e095ab36fcc.elb.us-west-2.amazonaws.com</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Address: </span><span class="token number" style="color:rgb(247, 140, 108)">44.224</span><span class="token plain">.124.213</span></div [...]
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/aws-define-service.png">
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/aws-define-route.png"></p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="validation"></a>Validation<a class="hash-link" href="#validation" title="Direct link to heading">#</a></h2><p>OK. Let&#x27;s test the <code>/index.php</code> on <code>{apiSix.ApiSixServiceServiceURL}/index.php</code></p><p><img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/aws-caddy-php-we [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/next/batch-processor/index.html b/docs/apisix/next/batch-processor/index.html
index 927961d..4adfa07 100644
--- a/docs/apisix/next/batch-processor/index.html
+++ b/docs/apisix/next/batch-processor/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Batch Processor | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/next/batch-processor"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="d [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -31,7 +31,7 @@ argument and the batch configuration as the second parameter.</p><div class="cod
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">if batch_processor then</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    batch_processor:push({hello=&#x27;world&#x27;})</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">end</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>Note: Please make sure th [...]
 The timer to flush the batch runs based on the <code>inactive_timeout</code> configuration. Thus, for optimal usage,
 keep the <code>inactive_timeout</code> smaller than the <code>buffer_duration</code>.</p></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/batch-processor.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAspectRatio="xMidYMid meet" role="img" viewBox="0 0 40 40" class="iconEdit_2_ui" aria-label="Edit page"><g><path d="m34.5 11.7l-3 3 [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/next/benchmark/index.html b/docs/apisix/next/benchmark/index.html
index 0bc32d5..bd2600e 100644
--- a/docs/apisix/next/benchmark/index.html
+++ b/docs/apisix/next/benchmark/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Benchmark | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/next/benchmark"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:doc [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -26,7 +26,7 @@ and the response size was 1KB.</p><h4><a aria-hidden="true" tabindex="-1" class=
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/flamegraph-1.jpg" alt="flamegraph-1"></p><p>And if you want to run the benchmark test in your machine, you should run another Nginx to listen 80 port.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="to [...]
 and the response size was 1KB.</p><h4><a aria-hidden="true" tabindex="-1" class="anchor" id="qps-1"></a>QPS<a class="hash-link" href="#qps-1" title="Direct link to heading">#</a></h4><p>The x-axis means the size of CPU core, and the y-axis is QPS.</p><p><img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/benchmark-2.jpg" alt="benchmark-2"></p><h4><a aria-hidden="true" tabindex="-1" class="anchor" id="latency-1"></a>Latency<a class="hash-link" href="#latenc [...]
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/flamegraph-2.jpg" alt="flamegraph-2"></p><p>And if you want to run the benchmark test in your machine, you should run another Nginx to listen 80 port.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="to [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/next/certificate/index.html b/docs/apisix/next/certificate/index.html
index a14a7b6..a1740aa 100644
--- a/docs/apisix/next/certificate/index.html
+++ b/docs/apisix/next/certificate/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Certificate | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/next/certificate"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -36,7 +36,7 @@ and RSA key-exchange algorithm, then just configure the extra certificates (the
 first certificate and private key should be still put in <code>cert</code> and <code>key</code>) and
 private keys by <code>certs</code> and <code>keys</code>.</p><ul><li><code>certs</code>: PEM-encoded certificate array.</li><li><code>keys</code>: PEM-encoded private key array.</li></ul><p><code>APISIX</code> will pair certificate and private key with the same indice as a SSL key
 pair. So the length of <code>certs</code> and <code>keys</code> must be same.</p></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/certificate.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAspectRatio="xMidYMid meet" role="img" viewBox="0 0 40 40" class="iconEdit_2_ui" aria-label="Edit page"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3 [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/next/control-api/index.html b/docs/apisix/next/control-api/index.html
index f03830a..84528cf 100644
--- a/docs/apisix/next/control-api/index.html
+++ b/docs/apisix/next/control-api/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Control API | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/next/control-api"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -27,7 +27,7 @@ of fields like <code>consumer_schema</code> or <code>type</code>, it is depended
 definition.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="get-v1healthcheck"></a>GET /v1/healthcheck<a class="hash-link" href="#get-v1healthcheck" title="Direct link to heading">#</a></h3><p>Introduced since <code>v2.3</code>.</p><p>Return current <a href="/docs/apisix/next/health-check">health check</a> status in the format below:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly json"><div tabindex="0" class="prism-code language-json codeBlock_23 [...]
 object with id 1 creates a health checker, the <code>src_type</code> is <code>upstreams</code> and the <code>src_id</code> is <code>1</code>.</li><li>name: the name of the health checker.</li><li>nodes: the target nodes of the health checker.</li><li>healthy_nodes: the healthy node known by the health checker.</li></ul><p>User can also use <code>/v1/healthcheck/$src_type/$src_id</code> can get the status of a health checker.</p><p>For example, <code>GET /v1/healthcheck/upstreams/1</code> [...]
 Note that when you enable stream proxy, APISIX will run another Lua VM for the stream subsystem. It won&#x27;t trigger a full GC in this Lua VM .</p></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/control-api.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAspectRatio="xMidYMid meet" role="img" viewBox="0 0 40 40" class="iconEdit_ [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/next/customize-nginx-configuration/index.html b/docs/apisix/next/customize-nginx-configuration/index.html
index bbf384b..7612b47 100644
--- a/docs/apisix/next/customize-nginx-configuration/index.html
+++ b/docs/apisix/next/customize-nginx-configuration/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Customize Nginx configuration | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/next/customize-nginx-configuration"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -24,7 +24,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">            location /ysec_status </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">                req_status_show;</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">                allow 127.0.0.1;</span></div><div class="token-li [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">        chunked_transfer_encoding on;</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    </span><span class="token key atrule">http_server_configuration_snippet</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">|</span><span class="token scalar string" style="color:rgb(195, 232, 141)"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token  [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/next/debug-function/index.html b/docs/apisix/next/debug-function/index.html
index 7616201..faaf379 100644
--- a/docs/apisix/next/debug-function/index.html
+++ b/docs/apisix/next/debug-function/index.html
@@ -15,14 +15,14 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Debug Function | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/next/debug-function"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="doc [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
 <div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 </span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>It has a response header of <code>X-APISIX-Upstream-Status: 502</code>.</p><blockquote><p>Example 2: <code>502</code> response status code comes from <code>APISIX</code></p></blockquote><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class= [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/next/discovery/consul_kv/index.html b/docs/apisix/next/discovery/consul_kv/index.html
index ee49f06..7da2525 100644
--- a/docs/apisix/next/discovery/consul_kv/index.html
+++ b/docs/apisix/next/discovery/consul_kv/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">consul_kv | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/next/discovery/consul_kv"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="doc [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -24,7 +24,7 @@
 <img src="https://user-images.githubusercontent.com/548385/107141841-6ced3e00-6966-11eb-8aa4-bc790a4ad113.png"></p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="configuration-for-discovery-client"></a>Configuration for discovery client<a class="hash-link" href="#configuration-for-discovery-client" title="Direct link to heading">#</a></h2><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="configuration-for-consul-kv"></a>Configuration for Consul KV<a class="hash-link" [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">\</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    -X PUT </span><span class="token punctuation" style="color:rgb(199, 146, 234)">\</span><span class="token [...]
 To avoid confusion, use the full consul key url path as service name in practice.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="upstream-setting"></a>Upstream setting<a class="hash-link" href="#upstream-setting" title="Direct link to heading">#</a></h3><p>Here is an example of routing a request with a URL of &quot;/*&quot; to a service which named &quot;<a href="http://127.0.0.1:8500/v1/kv/upstreams/webpages/%22" target="_blank" rel="noopener noreferrer">http://127.0.0.1: [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/next/discovery/dns/index.html b/docs/apisix/next/discovery/dns/index.html
index d9769ff..a17f1f8 100644
--- a/docs/apisix/next/discovery/dns/index.html
+++ b/docs/apisix/next/discovery/dns/index.html
@@ -15,8 +15,8 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">DNS | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/next/discovery/dns"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docus [...]
-<link rel="preload" href="/assets/js/runtime~main.da0c8bde.js" as="script">
-<link rel="preload" href="/assets/js/main.e5ba0273.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a930ad85.js" as="script">
+<link rel="preload" href="/assets/js/main.f30ebc00.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
@@ -30,7 +30,7 @@ noisy).  In the presence of records containing weights greater
 than 0, records with weight 0 should have a very small chance of
 being selected.</p></blockquote><p>We treat weight 0 record has a weight of 1 so the node &quot;have a very small chance of
 being selected&quot;, which is also the common way to treat this type of record.</p></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/discovery/dns.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAspectRatio="xMidYMid meet" role="img" viewBox="0 0 40 40" class="iconEdit_2_ui" aria-label="Edit page"><g><path d="m34.5 11.7l-3 3.1-6.3- [...]
-<script src="/assets/js/runtime~main.da0c8bde.js"></script>
-<script src="/assets/js/main.e5ba0273.js"></script>
+<script src="/assets/js/runtime~main.a930ad85.js"></script>
+<script src="/assets/js/main.f30ebc00.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/next/discovery/eureka/index.html b/docs/apisix/next/discovery/eureka/index.html
... 21475 lines suppressed ...