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/07/27 09:42:47 UTC

[apisix-website] branch asf-site updated: deploy: 2e61aa9753dad3031abdc25d79c7e10aefd0b5ad

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 7b49fc5  deploy: 2e61aa9753dad3031abdc25d79c7e10aefd0b5ad
7b49fc5 is described below

commit 7b49fc59c6f9448955c6fb1a4a04986db8d13595
Author: juzhiyuan <ju...@users.noreply.github.com>
AuthorDate: Tue Jul 27 09:42:35 2021 +0000

    deploy: 2e61aa9753dad3031abdc25d79c7e10aefd0b5ad
---
 404.html                                                     | 10 +++++-----
 assets/js/19945770.1dde9ac6.js                               |  1 +
 assets/js/19945770.ad41e01f.js                               |  1 -
 assets/js/{3393d167.649b3555.js => 3393d167.2c91caa6.js}     |  2 +-
 .../601c6eaa.54e5ad47.js => assets/js/358566b4.14f5294c.js   |  2 +-
 assets/js/358566b4.c4f60685.js                               |  1 -
 assets/js/3dc9f306.3d828fb3.js                               |  1 +
 assets/js/3dc9f306.c745e53e.js                               |  1 -
 .../601c6eaa.54e5ad47.js => assets/js/40fb2fae.376c72bf.js   |  2 +-
 assets/js/40fb2fae.ab983ed4.js                               |  1 -
 assets/js/{4c20006b.77c0a1a6.js => 4c20006b.4d63211e.js}     |  2 +-
 assets/js/50facf8e.6408fc11.js                               |  1 +
 assets/js/50facf8e.7f110f1e.js                               |  1 -
 assets/js/542fd41f.40402d9c.js                               |  1 +
 assets/js/542fd41f.76546769.js                               |  1 -
 assets/js/{601c6eaa.51303680.js => 601c6eaa.3ccc0295.js}     |  2 +-
 assets/js/66fbb9c2.5f4af35e.js                               |  1 -
 assets/js/66fbb9c2.6e5c7038.js                               |  1 +
 assets/js/7af3052c.c335919f.js                               |  1 -
 assets/js/7af3052c.dc625ca8.js                               |  1 +
 assets/js/8e784bf3.17d89684.js                               |  1 -
 assets/js/8e784bf3.bceceb6e.js                               |  1 +
 assets/js/adbb350b.7a5ea1e4.js                               |  1 +
 assets/js/adbb350b.c9b4aa3d.js                               |  1 -
 .../601c6eaa.54e5ad47.js => assets/js/d18db9b0.05b8ca20.js   |  2 +-
 assets/js/d18db9b0.e654b66f.js                               |  1 -
 assets/js/main.88f0d7c0.js                                   |  2 --
 assets/js/main.bc8668b1.js                                   |  2 ++
 .../js/main.bc8668b1.js.LICENSE.txt                          |  0
 .../{runtime~main.31e8c9cc.js => runtime~main.1cb97c6c.js}   |  2 +-
 blog/2020/08/22/new-website/index.html                       | 10 +++++-----
 .../12/16/another-way-to-implement-envoy-filter/index.html   | 10 +++++-----
 .../12/18/a-first-look-at-kubernetes-service-api/index.html  | 10 +++++-----
 .../index.html                                               | 10 +++++-----
 blog/2021/01/21/run-ingress-apisix-on-amazon-eks/index.html  | 10 +++++-----
 .../02/08/stable-product-delivery-with-cypress/index.html    | 10 +++++-----
 .../02/26/install-apache-apisix-from-helm-charts/index.html  | 10 +++++-----
 .../02/get-front-end-test-coverage-with-cypress/index.html   | 10 +++++-----
 .../index.html                                               | 10 +++++-----
 .../index.html"                                              | 10 +++++-----
 .../index.html"                                              | 10 +++++-----
 .../index.html                                               | 10 +++++-----
 .../index.html                                               | 10 +++++-----
 .../index.html                                               | 10 +++++-----
 .../index.html                                               | 10 +++++-----
 .../06/21/use-Java-to-write-Apache-APISIX-plugins/index.html | 10 +++++-----
 .../index.html                                               | 10 +++++-----
 blog/2021/06/29/release-apache-apisix-2.7-en/index.html      | 10 +++++-----
 blog/2021/06/29/release-apache-apisix-2.7/index.html         | 10 +++++-----
 .../06/30/etcd3-support-HTTP-access-perfectly/index.html     | 10 +++++-----
 blog/2021/07/06/celebrate-200-contributors/index.html        | 10 +++++-----
 .../index.html                                               | 10 +++++-----
 .../07/16/Analyze-Apache-APISIX-Mesh-Agent-deeply/index.html | 10 +++++-----
 .../use-of-plugin-orchestration-in-Apache-APISIX/index.html  | 10 +++++-----
 blog/index.html                                              | 10 +++++-----
 blog/page/2/index.html                                       | 10 +++++-----
 blog/page/3/index.html                                       | 10 +++++-----
 docs/apisix/2.4/FAQ/index.html                               | 10 +++++-----
 docs/apisix/2.4/IGNORE_DOC/index.html                        | 10 +++++-----
 docs/apisix/2.4/admin-api/index.html                         | 10 +++++-----
 docs/apisix/2.4/architecture-design/index.html               | 10 +++++-----
 docs/apisix/2.4/aws/index.html                               | 10 +++++-----
 docs/apisix/2.4/batch-processor/index.html                   | 10 +++++-----
 docs/apisix/2.4/benchmark/index.html                         | 10 +++++-----
 docs/apisix/2.4/control-api/index.html                       | 10 +++++-----
 docs/apisix/2.4/customize-nginx-configuration/index.html     | 10 +++++-----
 docs/apisix/2.4/debug-function/index.html                    | 10 +++++-----
 docs/apisix/2.4/discovery/consul_kv/index.html               | 10 +++++-----
 docs/apisix/2.4/discovery/index.html                         | 10 +++++-----
 docs/apisix/2.4/dns/index.html                               | 10 +++++-----
 .../examples/plugins-hmac-auth-generate-signature/index.html | 10 +++++-----
 docs/apisix/2.4/getting-started/index.html                   | 10 +++++-----
 docs/apisix/2.4/grpc-proxy/index.html                        | 10 +++++-----
 docs/apisix/2.4/health-check/index.html                      | 10 +++++-----
 docs/apisix/2.4/how-to-build/index.html                      | 10 +++++-----
 docs/apisix/2.4/https/index.html                             | 10 +++++-----
 docs/apisix/2.4/install-dependencies/index.html              | 10 +++++-----
 docs/apisix/2.4/mtls/index.html                              | 10 +++++-----
 docs/apisix/2.4/plugin-develop/index.html                    | 10 +++++-----
 docs/apisix/2.4/plugin-interceptors/index.html               | 10 +++++-----
 docs/apisix/2.4/plugins/api-breaker/index.html               | 10 +++++-----
 docs/apisix/2.4/plugins/authz-keycloak/index.html            | 10 +++++-----
 docs/apisix/2.4/plugins/basic-auth/index.html                | 10 +++++-----
 docs/apisix/2.4/plugins/batch-requests/index.html            | 10 +++++-----
 docs/apisix/2.4/plugins/consumer-restriction/index.html      | 10 +++++-----
 docs/apisix/2.4/plugins/cors/index.html                      | 10 +++++-----
 docs/apisix/2.4/plugins/dubbo-proxy/index.html               | 10 +++++-----
 docs/apisix/2.4/plugins/echo/index.html                      | 10 +++++-----
 docs/apisix/2.4/plugins/error-log-logger/index.html          | 10 +++++-----
 docs/apisix/2.4/plugins/fault-injection/index.html           | 10 +++++-----
 docs/apisix/2.4/plugins/grpc-transcode/index.html            | 10 +++++-----
 docs/apisix/2.4/plugins/hmac-auth/index.html                 | 10 +++++-----
 docs/apisix/2.4/plugins/http-logger/index.html               | 10 +++++-----
 docs/apisix/2.4/plugins/index.html                           | 10 +++++-----
 docs/apisix/2.4/plugins/ip-restriction/index.html            | 10 +++++-----
 docs/apisix/2.4/plugins/jwt-auth/index.html                  | 10 +++++-----
 docs/apisix/2.4/plugins/kafka-logger/index.html              | 10 +++++-----
 docs/apisix/2.4/plugins/key-auth/index.html                  | 10 +++++-----
 docs/apisix/2.4/plugins/limit-conn/index.html                | 10 +++++-----
 docs/apisix/2.4/plugins/limit-count/index.html               | 10 +++++-----
 docs/apisix/2.4/plugins/limit-req/index.html                 | 10 +++++-----
 docs/apisix/2.4/plugins/log-rotate/index.html                | 10 +++++-----
 docs/apisix/2.4/plugins/mqtt-proxy/index.html                | 10 +++++-----
 docs/apisix/2.4/plugins/node-status/index.html               | 10 +++++-----
 docs/apisix/2.4/plugins/openid-connect/index.html            | 10 +++++-----
 docs/apisix/2.4/plugins/prometheus/index.html                | 10 +++++-----
 docs/apisix/2.4/plugins/proxy-cache/index.html               | 10 +++++-----
 docs/apisix/2.4/plugins/proxy-mirror/index.html              | 10 +++++-----
 docs/apisix/2.4/plugins/proxy-rewrite/index.html             | 10 +++++-----
 docs/apisix/2.4/plugins/redirect/index.html                  | 10 +++++-----
 docs/apisix/2.4/plugins/referer-restriction/index.html       | 10 +++++-----
 docs/apisix/2.4/plugins/request-id/index.html                | 10 +++++-----
 docs/apisix/2.4/plugins/request-validation/index.html        | 10 +++++-----
 docs/apisix/2.4/plugins/response-rewrite/index.html          | 10 +++++-----
 docs/apisix/2.4/plugins/server-info/index.html               | 10 +++++-----
 docs/apisix/2.4/plugins/serverless/index.html                | 10 +++++-----
 docs/apisix/2.4/plugins/skywalking/index.html                | 10 +++++-----
 docs/apisix/2.4/plugins/sls-logger/index.html                | 10 +++++-----
 docs/apisix/2.4/plugins/syslog/index.html                    | 10 +++++-----
 docs/apisix/2.4/plugins/tcp-logger/index.html                | 10 +++++-----
 docs/apisix/2.4/plugins/traffic-split/index.html             | 10 +++++-----
 docs/apisix/2.4/plugins/udp-logger/index.html                | 10 +++++-----
 docs/apisix/2.4/plugins/uri-blocker/index.html               | 10 +++++-----
 docs/apisix/2.4/plugins/wolf-rbac/index.html                 | 10 +++++-----
 docs/apisix/2.4/plugins/zipkin/index.html                    | 10 +++++-----
 docs/apisix/2.4/powered-by/index.html                        | 10 +++++-----
 docs/apisix/2.4/profile/index.html                           | 10 +++++-----
 docs/apisix/2.4/router-radixtree/index.html                  | 10 +++++-----
 docs/apisix/2.4/stand-alone/index.html                       | 10 +++++-----
 docs/apisix/2.4/stream-proxy/index.html                      | 10 +++++-----
 docs/apisix/2.5/FAQ/index.html                               | 10 +++++-----
 docs/apisix/2.5/IGNORE_DOC/index.html                        | 10 +++++-----
 docs/apisix/2.5/admin-api/index.html                         | 10 +++++-----
 docs/apisix/2.5/architecture-design/apisix/index.html        | 10 +++++-----
 docs/apisix/2.5/architecture-design/consumer/index.html      | 10 +++++-----
 docs/apisix/2.5/architecture-design/debug-mode/index.html    | 10 +++++-----
 docs/apisix/2.5/architecture-design/global-rule/index.html   | 10 +++++-----
 docs/apisix/2.5/architecture-design/index.html               | 10 +++++-----
 docs/apisix/2.5/architecture-design/plugin-config/index.html | 10 +++++-----
 docs/apisix/2.5/architecture-design/plugin/index.html        | 10 +++++-----
 docs/apisix/2.5/architecture-design/route/index.html         | 10 +++++-----
 docs/apisix/2.5/architecture-design/router/index.html        | 10 +++++-----
 docs/apisix/2.5/architecture-design/script/index.html        | 10 +++++-----
 docs/apisix/2.5/architecture-design/service/index.html       | 10 +++++-----
 docs/apisix/2.5/architecture-design/upstream/index.html      | 10 +++++-----
 docs/apisix/2.5/aws/index.html                               | 10 +++++-----
 docs/apisix/2.5/batch-processor/index.html                   | 10 +++++-----
 docs/apisix/2.5/benchmark/index.html                         | 10 +++++-----
 docs/apisix/2.5/control-api/index.html                       | 10 +++++-----
 docs/apisix/2.5/customize-nginx-configuration/index.html     | 10 +++++-----
 docs/apisix/2.5/debug-function/index.html                    | 10 +++++-----
 docs/apisix/2.5/discovery/consul_kv/index.html               | 10 +++++-----
 docs/apisix/2.5/discovery/dns/index.html                     | 10 +++++-----
 docs/apisix/2.5/discovery/index.html                         | 10 +++++-----
 docs/apisix/2.5/dns/index.html                               | 10 +++++-----
 .../examples/plugins-hmac-auth-generate-signature/index.html | 10 +++++-----
 docs/apisix/2.5/getting-started/index.html                   | 10 +++++-----
 docs/apisix/2.5/grpc-proxy/index.html                        | 10 +++++-----
 docs/apisix/2.5/health-check/index.html                      | 10 +++++-----
 docs/apisix/2.5/how-to-build/index.html                      | 10 +++++-----
 docs/apisix/2.5/https/index.html                             | 10 +++++-----
 docs/apisix/2.5/install-dependencies/index.html              | 10 +++++-----
 docs/apisix/2.5/mtls/index.html                              | 10 +++++-----
 docs/apisix/2.5/plugin-develop/index.html                    | 10 +++++-----
 docs/apisix/2.5/plugin-interceptors/index.html               | 10 +++++-----
 docs/apisix/2.5/plugins/api-breaker/index.html               | 10 +++++-----
 docs/apisix/2.5/plugins/authz-keycloak/index.html            | 10 +++++-----
 docs/apisix/2.5/plugins/basic-auth/index.html                | 10 +++++-----
 docs/apisix/2.5/plugins/batch-requests/index.html            | 10 +++++-----
 docs/apisix/2.5/plugins/consumer-restriction/index.html      | 10 +++++-----
 docs/apisix/2.5/plugins/cors/index.html                      | 10 +++++-----
 docs/apisix/2.5/plugins/dubbo-proxy/index.html               | 10 +++++-----
 docs/apisix/2.5/plugins/echo/index.html                      | 10 +++++-----
 docs/apisix/2.5/plugins/error-log-logger/index.html          | 10 +++++-----
 docs/apisix/2.5/plugins/fault-injection/index.html           | 10 +++++-----
 docs/apisix/2.5/plugins/grpc-transcode/index.html            | 10 +++++-----
 docs/apisix/2.5/plugins/hmac-auth/index.html                 | 10 +++++-----
 docs/apisix/2.5/plugins/http-logger/index.html               | 10 +++++-----
 docs/apisix/2.5/plugins/index.html                           | 10 +++++-----
 docs/apisix/2.5/plugins/ip-restriction/index.html            | 10 +++++-----
 docs/apisix/2.5/plugins/jwt-auth/index.html                  | 10 +++++-----
 docs/apisix/2.5/plugins/kafka-logger/index.html              | 10 +++++-----
 docs/apisix/2.5/plugins/key-auth/index.html                  | 10 +++++-----
 docs/apisix/2.5/plugins/limit-conn/index.html                | 10 +++++-----
 docs/apisix/2.5/plugins/limit-count/index.html               | 10 +++++-----
 docs/apisix/2.5/plugins/limit-req/index.html                 | 10 +++++-----
 docs/apisix/2.5/plugins/log-rotate/index.html                | 10 +++++-----
 docs/apisix/2.5/plugins/mqtt-proxy/index.html                | 10 +++++-----
 docs/apisix/2.5/plugins/node-status/index.html               | 10 +++++-----
 docs/apisix/2.5/plugins/openid-connect/index.html            | 10 +++++-----
 docs/apisix/2.5/plugins/prometheus/index.html                | 10 +++++-----
 docs/apisix/2.5/plugins/proxy-cache/index.html               | 10 +++++-----
 docs/apisix/2.5/plugins/proxy-mirror/index.html              | 10 +++++-----
 docs/apisix/2.5/plugins/proxy-rewrite/index.html             | 10 +++++-----
 docs/apisix/2.5/plugins/redirect/index.html                  | 10 +++++-----
 docs/apisix/2.5/plugins/referer-restriction/index.html       | 10 +++++-----
 docs/apisix/2.5/plugins/request-id/index.html                | 10 +++++-----
 docs/apisix/2.5/plugins/request-validation/index.html        | 10 +++++-----
 docs/apisix/2.5/plugins/response-rewrite/index.html          | 10 +++++-----
 docs/apisix/2.5/plugins/server-info/index.html               | 10 +++++-----
 docs/apisix/2.5/plugins/serverless/index.html                | 10 +++++-----
 docs/apisix/2.5/plugins/skywalking/index.html                | 10 +++++-----
 docs/apisix/2.5/plugins/sls-logger/index.html                | 10 +++++-----
 docs/apisix/2.5/plugins/syslog/index.html                    | 10 +++++-----
 docs/apisix/2.5/plugins/tcp-logger/index.html                | 10 +++++-----
 docs/apisix/2.5/plugins/traffic-split/index.html             | 10 +++++-----
 docs/apisix/2.5/plugins/udp-logger/index.html                | 10 +++++-----
 docs/apisix/2.5/plugins/uri-blocker/index.html               | 10 +++++-----
 docs/apisix/2.5/plugins/wolf-rbac/index.html                 | 10 +++++-----
 docs/apisix/2.5/plugins/zipkin/index.html                    | 10 +++++-----
 docs/apisix/2.5/powered-by/index.html                        | 10 +++++-----
 docs/apisix/2.5/profile/index.html                           | 10 +++++-----
 docs/apisix/2.5/router-radixtree/index.html                  | 10 +++++-----
 docs/apisix/2.5/stand-alone/index.html                       | 10 +++++-----
 docs/apisix/2.5/stream-proxy/index.html                      | 10 +++++-----
 docs/apisix/2.6/FAQ/index.html                               | 10 +++++-----
 docs/apisix/2.6/IGNORE_DOC/index.html                        | 10 +++++-----
 docs/apisix/2.6/admin-api/index.html                         | 10 +++++-----
 docs/apisix/2.6/architecture-design/apisix/index.html        | 10 +++++-----
 docs/apisix/2.6/architecture-design/consumer/index.html      | 10 +++++-----
 docs/apisix/2.6/architecture-design/debug-mode/index.html    | 10 +++++-----
 docs/apisix/2.6/architecture-design/global-rule/index.html   | 10 +++++-----
 docs/apisix/2.6/architecture-design/index.html               | 10 +++++-----
 docs/apisix/2.6/architecture-design/plugin-config/index.html | 10 +++++-----
 docs/apisix/2.6/architecture-design/plugin/index.html        | 10 +++++-----
 docs/apisix/2.6/architecture-design/route/index.html         | 10 +++++-----
 docs/apisix/2.6/architecture-design/router/index.html        | 10 +++++-----
 docs/apisix/2.6/architecture-design/script/index.html        | 10 +++++-----
 docs/apisix/2.6/architecture-design/service/index.html       | 10 +++++-----
 docs/apisix/2.6/architecture-design/upstream/index.html      | 10 +++++-----
 docs/apisix/2.6/aws/index.html                               | 10 +++++-----
 docs/apisix/2.6/batch-processor/index.html                   | 10 +++++-----
 docs/apisix/2.6/benchmark/index.html                         | 10 +++++-----
 docs/apisix/2.6/control-api/index.html                       | 10 +++++-----
 docs/apisix/2.6/customize-nginx-configuration/index.html     | 10 +++++-----
 docs/apisix/2.6/debug-function/index.html                    | 10 +++++-----
 docs/apisix/2.6/discovery/consul_kv/index.html               | 10 +++++-----
 docs/apisix/2.6/discovery/dns/index.html                     | 10 +++++-----
 docs/apisix/2.6/discovery/eureka/index.html                  | 10 +++++-----
 docs/apisix/2.6/discovery/index.html                         | 10 +++++-----
 docs/apisix/2.6/discovery/nacos/index.html                   | 10 +++++-----
 docs/apisix/2.6/dns/index.html                               | 10 +++++-----
 .../examples/plugins-hmac-auth-generate-signature/index.html | 10 +++++-----
 docs/apisix/2.6/getting-started/index.html                   | 10 +++++-----
 docs/apisix/2.6/grpc-proxy/index.html                        | 10 +++++-----
 docs/apisix/2.6/health-check/index.html                      | 10 +++++-----
 docs/apisix/2.6/how-to-build/index.html                      | 10 +++++-----
 docs/apisix/2.6/https/index.html                             | 10 +++++-----
 docs/apisix/2.6/install-dependencies/index.html              | 10 +++++-----
 docs/apisix/2.6/mtls/index.html                              | 10 +++++-----
 docs/apisix/2.6/plugin-develop/index.html                    | 10 +++++-----
 docs/apisix/2.6/plugin-interceptors/index.html               | 10 +++++-----
 docs/apisix/2.6/plugins/api-breaker/index.html               | 10 +++++-----
 docs/apisix/2.6/plugins/authz-keycloak/index.html            | 10 +++++-----
 docs/apisix/2.6/plugins/basic-auth/index.html                | 10 +++++-----
 docs/apisix/2.6/plugins/batch-requests/index.html            | 10 +++++-----
 docs/apisix/2.6/plugins/consumer-restriction/index.html      | 10 +++++-----
 docs/apisix/2.6/plugins/cors/index.html                      | 10 +++++-----
 docs/apisix/2.6/plugins/dubbo-proxy/index.html               | 10 +++++-----
 docs/apisix/2.6/plugins/echo/index.html                      | 10 +++++-----
 docs/apisix/2.6/plugins/error-log-logger/index.html          | 10 +++++-----
 docs/apisix/2.6/plugins/fault-injection/index.html           | 10 +++++-----
 docs/apisix/2.6/plugins/grpc-transcode/index.html            | 10 +++++-----
 docs/apisix/2.6/plugins/hmac-auth/index.html                 | 10 +++++-----
 docs/apisix/2.6/plugins/http-logger/index.html               | 10 +++++-----
 docs/apisix/2.6/plugins/index.html                           | 10 +++++-----
 docs/apisix/2.6/plugins/ip-restriction/index.html            | 10 +++++-----
 docs/apisix/2.6/plugins/jwt-auth/index.html                  | 10 +++++-----
 docs/apisix/2.6/plugins/kafka-logger/index.html              | 10 +++++-----
 docs/apisix/2.6/plugins/key-auth/index.html                  | 10 +++++-----
 docs/apisix/2.6/plugins/limit-conn/index.html                | 10 +++++-----
 docs/apisix/2.6/plugins/limit-count/index.html               | 10 +++++-----
 docs/apisix/2.6/plugins/limit-req/index.html                 | 10 +++++-----
 docs/apisix/2.6/plugins/log-rotate/index.html                | 10 +++++-----
 docs/apisix/2.6/plugins/mqtt-proxy/index.html                | 10 +++++-----
 docs/apisix/2.6/plugins/node-status/index.html               | 10 +++++-----
 docs/apisix/2.6/plugins/openid-connect/index.html            | 10 +++++-----
 docs/apisix/2.6/plugins/prometheus/index.html                | 10 +++++-----
 docs/apisix/2.6/plugins/proxy-cache/index.html               | 10 +++++-----
 docs/apisix/2.6/plugins/proxy-mirror/index.html              | 10 +++++-----
 docs/apisix/2.6/plugins/proxy-rewrite/index.html             | 10 +++++-----
 docs/apisix/2.6/plugins/redirect/index.html                  | 10 +++++-----
 docs/apisix/2.6/plugins/referer-restriction/index.html       | 10 +++++-----
 docs/apisix/2.6/plugins/request-id/index.html                | 10 +++++-----
 docs/apisix/2.6/plugins/request-validation/index.html        | 10 +++++-----
 docs/apisix/2.6/plugins/response-rewrite/index.html          | 10 +++++-----
 docs/apisix/2.6/plugins/server-info/index.html               | 10 +++++-----
 docs/apisix/2.6/plugins/serverless/index.html                | 10 +++++-----
 docs/apisix/2.6/plugins/skywalking/index.html                | 10 +++++-----
 docs/apisix/2.6/plugins/sls-logger/index.html                | 10 +++++-----
 docs/apisix/2.6/plugins/syslog/index.html                    | 10 +++++-----
 docs/apisix/2.6/plugins/tcp-logger/index.html                | 10 +++++-----
 docs/apisix/2.6/plugins/traffic-split/index.html             | 10 +++++-----
 docs/apisix/2.6/plugins/udp-logger/index.html                | 10 +++++-----
 docs/apisix/2.6/plugins/uri-blocker/index.html               | 10 +++++-----
 docs/apisix/2.6/plugins/wolf-rbac/index.html                 | 10 +++++-----
 docs/apisix/2.6/plugins/zipkin/index.html                    | 10 +++++-----
 docs/apisix/2.6/powered-by/index.html                        | 10 +++++-----
 docs/apisix/2.6/profile/index.html                           | 10 +++++-----
 docs/apisix/2.6/router-radixtree/index.html                  | 10 +++++-----
 docs/apisix/2.6/stand-alone/index.html                       | 10 +++++-----
 docs/apisix/2.6/stream-proxy/index.html                      | 10 +++++-----
 docs/apisix/2.7/FAQ/index.html                               | 10 +++++-----
 docs/apisix/2.7/IGNORE_DOC/index.html                        | 10 +++++-----
 docs/apisix/2.7/admin-api/index.html                         | 10 +++++-----
 docs/apisix/2.7/architecture-design/apisix/index.html        | 10 +++++-----
 docs/apisix/2.7/architecture-design/consumer/index.html      | 10 +++++-----
 docs/apisix/2.7/architecture-design/debug-mode/index.html    | 10 +++++-----
 docs/apisix/2.7/architecture-design/global-rule/index.html   | 10 +++++-----
 docs/apisix/2.7/architecture-design/index.html               | 10 +++++-----
 docs/apisix/2.7/architecture-design/plugin-config/index.html | 10 +++++-----
 docs/apisix/2.7/architecture-design/plugin/index.html        | 10 +++++-----
 docs/apisix/2.7/architecture-design/route/index.html         | 10 +++++-----
 docs/apisix/2.7/architecture-design/router/index.html        | 10 +++++-----
 docs/apisix/2.7/architecture-design/script/index.html        | 10 +++++-----
 docs/apisix/2.7/architecture-design/service/index.html       | 10 +++++-----
 docs/apisix/2.7/architecture-design/upstream/index.html      | 10 +++++-----
 docs/apisix/2.7/aws/index.html                               | 10 +++++-----
 docs/apisix/2.7/batch-processor/index.html                   | 10 +++++-----
 docs/apisix/2.7/benchmark/index.html                         | 10 +++++-----
 docs/apisix/2.7/certificate/index.html                       | 10 +++++-----
 docs/apisix/2.7/control-api/index.html                       | 10 +++++-----
 docs/apisix/2.7/customize-nginx-configuration/index.html     | 10 +++++-----
 docs/apisix/2.7/debug-function/index.html                    | 10 +++++-----
 docs/apisix/2.7/discovery/consul_kv/index.html               | 10 +++++-----
 docs/apisix/2.7/discovery/dns/index.html                     | 10 +++++-----
 docs/apisix/2.7/discovery/eureka/index.html                  | 10 +++++-----
 docs/apisix/2.7/discovery/index.html                         | 10 +++++-----
 docs/apisix/2.7/discovery/nacos/index.html                   | 10 +++++-----
 docs/apisix/2.7/dns/index.html                               | 10 +++++-----
 .../examples/plugins-hmac-auth-generate-signature/index.html | 10 +++++-----
 docs/apisix/2.7/external-plugin/index.html                   | 10 +++++-----
 docs/apisix/2.7/getting-started/index.html                   | 10 +++++-----
 docs/apisix/2.7/grpc-proxy/index.html                        | 10 +++++-----
 docs/apisix/2.7/health-check/index.html                      | 10 +++++-----
 docs/apisix/2.7/how-to-build/index.html                      | 10 +++++-----
 docs/apisix/2.7/https/index.html                             | 10 +++++-----
 docs/apisix/2.7/install-dependencies/index.html              | 10 +++++-----
 docs/apisix/2.7/mtls/index.html                              | 10 +++++-----
 docs/apisix/2.7/plugin-develop/index.html                    | 10 +++++-----
 docs/apisix/2.7/plugin-interceptors/index.html               | 10 +++++-----
 docs/apisix/2.7/plugins/api-breaker/index.html               | 10 +++++-----
 docs/apisix/2.7/plugins/authz-keycloak/index.html            | 10 +++++-----
 docs/apisix/2.7/plugins/basic-auth/index.html                | 10 +++++-----
 docs/apisix/2.7/plugins/batch-requests/index.html            | 10 +++++-----
 docs/apisix/2.7/plugins/client-control/index.html            | 10 +++++-----
 docs/apisix/2.7/plugins/consumer-restriction/index.html      | 10 +++++-----
 docs/apisix/2.7/plugins/cors/index.html                      | 10 +++++-----
 docs/apisix/2.7/plugins/dubbo-proxy/index.html               | 10 +++++-----
 docs/apisix/2.7/plugins/echo/index.html                      | 10 +++++-----
 docs/apisix/2.7/plugins/error-log-logger/index.html          | 10 +++++-----
 docs/apisix/2.7/plugins/ext-plugin-post-req/index.html       | 10 +++++-----
 docs/apisix/2.7/plugins/ext-plugin-pre-req/index.html        | 10 +++++-----
 docs/apisix/2.7/plugins/fault-injection/index.html           | 10 +++++-----
 docs/apisix/2.7/plugins/grpc-transcode/index.html            | 10 +++++-----
 docs/apisix/2.7/plugins/hmac-auth/index.html                 | 10 +++++-----
 docs/apisix/2.7/plugins/http-logger/index.html               | 10 +++++-----
 docs/apisix/2.7/plugins/index.html                           | 10 +++++-----
 docs/apisix/2.7/plugins/ip-restriction/index.html            | 10 +++++-----
 docs/apisix/2.7/plugins/jwt-auth/index.html                  | 10 +++++-----
 docs/apisix/2.7/plugins/kafka-logger/index.html              | 10 +++++-----
 docs/apisix/2.7/plugins/key-auth/index.html                  | 10 +++++-----
 docs/apisix/2.7/plugins/limit-conn/index.html                | 10 +++++-----
 docs/apisix/2.7/plugins/limit-count/index.html               | 10 +++++-----
 docs/apisix/2.7/plugins/limit-req/index.html                 | 10 +++++-----
 docs/apisix/2.7/plugins/log-rotate/index.html                | 10 +++++-----
 docs/apisix/2.7/plugins/mqtt-proxy/index.html                | 10 +++++-----
 docs/apisix/2.7/plugins/node-status/index.html               | 10 +++++-----
 docs/apisix/2.7/plugins/openid-connect/index.html            | 10 +++++-----
 docs/apisix/2.7/plugins/prometheus/index.html                | 10 +++++-----
 docs/apisix/2.7/plugins/proxy-cache/index.html               | 10 +++++-----
 docs/apisix/2.7/plugins/proxy-mirror/index.html              | 10 +++++-----
 docs/apisix/2.7/plugins/proxy-rewrite/index.html             | 10 +++++-----
 docs/apisix/2.7/plugins/redirect/index.html                  | 10 +++++-----
 docs/apisix/2.7/plugins/referer-restriction/index.html       | 10 +++++-----
 docs/apisix/2.7/plugins/request-id/index.html                | 10 +++++-----
 docs/apisix/2.7/plugins/request-validation/index.html        | 10 +++++-----
 docs/apisix/2.7/plugins/response-rewrite/index.html          | 10 +++++-----
 docs/apisix/2.7/plugins/server-info/index.html               | 10 +++++-----
 docs/apisix/2.7/plugins/serverless/index.html                | 10 +++++-----
 docs/apisix/2.7/plugins/skywalking/index.html                | 10 +++++-----
 docs/apisix/2.7/plugins/sls-logger/index.html                | 10 +++++-----
 docs/apisix/2.7/plugins/syslog/index.html                    | 10 +++++-----
 docs/apisix/2.7/plugins/tcp-logger/index.html                | 10 +++++-----
 docs/apisix/2.7/plugins/traffic-split/index.html             | 10 +++++-----
 docs/apisix/2.7/plugins/udp-logger/index.html                | 10 +++++-----
 docs/apisix/2.7/plugins/uri-blocker/index.html               | 10 +++++-----
 docs/apisix/2.7/plugins/wolf-rbac/index.html                 | 10 +++++-----
 docs/apisix/2.7/plugins/zipkin/index.html                    | 10 +++++-----
 docs/apisix/2.7/powered-by/index.html                        | 10 +++++-----
 docs/apisix/2.7/profile/index.html                           | 10 +++++-----
 docs/apisix/2.7/router-radixtree/index.html                  | 10 +++++-----
 docs/apisix/2.7/stand-alone/index.html                       | 10 +++++-----
 docs/apisix/2.7/stream-proxy/index.html                      | 10 +++++-----
 docs/apisix/FAQ/index.html                                   | 10 +++++-----
 docs/apisix/IGNORE_DOC/index.html                            | 10 +++++-----
 docs/apisix/admin-api/index.html                             | 10 +++++-----
 docs/apisix/architecture-design/apisix/index.html            | 10 +++++-----
 docs/apisix/architecture-design/consumer/index.html          | 10 +++++-----
 docs/apisix/architecture-design/debug-mode/index.html        | 10 +++++-----
 docs/apisix/architecture-design/global-rule/index.html       | 10 +++++-----
 docs/apisix/architecture-design/index.html                   | 10 +++++-----
 docs/apisix/architecture-design/plugin-config/index.html     | 10 +++++-----
 docs/apisix/architecture-design/plugin/index.html            | 10 +++++-----
 docs/apisix/architecture-design/route/index.html             | 10 +++++-----
 docs/apisix/architecture-design/router/index.html            | 10 +++++-----
 docs/apisix/architecture-design/script/index.html            | 10 +++++-----
 docs/apisix/architecture-design/service/index.html           | 10 +++++-----
 docs/apisix/architecture-design/upstream/index.html          | 10 +++++-----
 docs/apisix/aws/index.html                                   | 10 +++++-----
 docs/apisix/batch-processor/index.html                       | 10 +++++-----
 docs/apisix/benchmark/index.html                             | 10 +++++-----
 docs/apisix/certificate/index.html                           | 10 +++++-----
 docs/apisix/control-api/index.html                           | 10 +++++-----
 docs/apisix/customize-nginx-configuration/index.html         | 10 +++++-----
 docs/apisix/debug-function/index.html                        | 10 +++++-----
 docs/apisix/discovery/consul_kv/index.html                   | 10 +++++-----
 docs/apisix/discovery/dns/index.html                         | 10 +++++-----
 docs/apisix/discovery/eureka/index.html                      | 10 +++++-----
 docs/apisix/discovery/index.html                             | 10 +++++-----
 docs/apisix/discovery/nacos/index.html                       | 10 +++++-----
 docs/apisix/dns/index.html                                   | 10 +++++-----
 .../examples/plugins-hmac-auth-generate-signature/index.html | 10 +++++-----
 docs/apisix/external-plugin/index.html                       | 10 +++++-----
 docs/apisix/getting-started/index.html                       | 10 +++++-----
 docs/apisix/grpc-proxy/index.html                            | 10 +++++-----
 docs/apisix/health-check/index.html                          | 10 +++++-----
 docs/apisix/how-to-build/index.html                          | 10 +++++-----
 docs/apisix/https/index.html                                 | 10 +++++-----
 docs/apisix/install-dependencies/index.html                  | 10 +++++-----
 docs/apisix/mtls/index.html                                  | 10 +++++-----
 docs/apisix/next/FAQ/index.html                              | 10 +++++-----
 docs/apisix/next/IGNORE_DOC/index.html                       | 10 +++++-----
 docs/apisix/next/admin-api/index.html                        | 10 +++++-----
 docs/apisix/next/architecture-design/apisix/index.html       | 10 +++++-----
 docs/apisix/next/architecture-design/consumer/index.html     | 10 +++++-----
 docs/apisix/next/architecture-design/debug-mode/index.html   | 10 +++++-----
 docs/apisix/next/architecture-design/global-rule/index.html  | 10 +++++-----
 docs/apisix/next/architecture-design/index.html              | 10 +++++-----
 .../apisix/next/architecture-design/plugin-config/index.html | 10 +++++-----
 docs/apisix/next/architecture-design/plugin/index.html       | 10 +++++-----
 docs/apisix/next/architecture-design/route/index.html        | 10 +++++-----
 docs/apisix/next/architecture-design/router/index.html       | 10 +++++-----
 docs/apisix/next/architecture-design/script/index.html       | 10 +++++-----
 docs/apisix/next/architecture-design/service/index.html      | 10 +++++-----
 docs/apisix/next/architecture-design/upstream/index.html     | 10 +++++-----
 docs/apisix/next/aws/index.html                              | 10 +++++-----
 docs/apisix/next/batch-processor/index.html                  | 10 +++++-----
 docs/apisix/next/benchmark/index.html                        | 10 +++++-----
 docs/apisix/next/certificate/index.html                      | 10 +++++-----
 docs/apisix/next/control-api/index.html                      | 10 +++++-----
 docs/apisix/next/customize-nginx-configuration/index.html    | 10 +++++-----
 docs/apisix/next/debug-function/index.html                   | 10 +++++-----
 docs/apisix/next/discovery/consul_kv/index.html              | 10 +++++-----
 docs/apisix/next/discovery/dns/index.html                    | 10 +++++-----
 docs/apisix/next/discovery/eureka/index.html                 | 10 +++++-----
 docs/apisix/next/discovery/index.html                        | 10 +++++-----
 docs/apisix/next/discovery/nacos/index.html                  | 10 +++++-----
 docs/apisix/next/dns/index.html                              | 10 +++++-----
 .../examples/plugins-hmac-auth-generate-signature/index.html | 10 +++++-----
 docs/apisix/next/external-plugin/index.html                  | 10 +++++-----
 docs/apisix/next/getting-started/index.html                  | 10 +++++-----
 docs/apisix/next/grpc-proxy/index.html                       | 10 +++++-----
 docs/apisix/next/health-check/index.html                     | 10 +++++-----
 docs/apisix/next/how-to-build/index.html                     | 10 +++++-----
 docs/apisix/next/https/index.html                            | 10 +++++-----
 docs/apisix/next/install-dependencies/index.html             | 10 +++++-----
 docs/apisix/next/mtls/index.html                             | 10 +++++-----
 docs/apisix/next/plugin-develop/index.html                   | 10 +++++-----
 docs/apisix/next/plugin-interceptors/index.html              | 10 +++++-----
 docs/apisix/next/plugins/api-breaker/index.html              | 10 +++++-----
 docs/apisix/next/plugins/authz-keycloak/index.html           | 10 +++++-----
 docs/apisix/next/plugins/basic-auth/index.html               | 10 +++++-----
 docs/apisix/next/plugins/batch-requests/index.html           | 10 +++++-----
 docs/apisix/next/plugins/client-control/index.html           | 10 +++++-----
 docs/apisix/next/plugins/consumer-restriction/index.html     | 10 +++++-----
 docs/apisix/next/plugins/cors/index.html                     | 10 +++++-----
 docs/apisix/next/plugins/dubbo-proxy/index.html              | 10 +++++-----
 docs/apisix/next/plugins/echo/index.html                     | 10 +++++-----
 docs/apisix/next/plugins/error-log-logger/index.html         | 10 +++++-----
 docs/apisix/next/plugins/ext-plugin-post-req/index.html      | 10 +++++-----
 docs/apisix/next/plugins/ext-plugin-pre-req/index.html       | 10 +++++-----
 docs/apisix/next/plugins/fault-injection/index.html          | 10 +++++-----
 docs/apisix/next/plugins/grpc-transcode/index.html           | 10 +++++-----
 docs/apisix/next/plugins/gzip/index.html                     | 10 +++++-----
 docs/apisix/next/plugins/hmac-auth/index.html                | 10 +++++-----
 docs/apisix/next/plugins/http-logger/index.html              | 10 +++++-----
 docs/apisix/next/plugins/index.html                          | 10 +++++-----
 docs/apisix/next/plugins/ip-restriction/index.html           | 10 +++++-----
 docs/apisix/next/plugins/jwt-auth/index.html                 | 10 +++++-----
 docs/apisix/next/plugins/kafka-logger/index.html             | 10 +++++-----
 docs/apisix/next/plugins/key-auth/index.html                 | 10 +++++-----
 docs/apisix/next/plugins/limit-conn/index.html               | 10 +++++-----
 docs/apisix/next/plugins/limit-count/index.html              | 10 +++++-----
 docs/apisix/next/plugins/limit-req/index.html                | 10 +++++-----
 docs/apisix/next/plugins/log-rotate/index.html               | 10 +++++-----
 docs/apisix/next/plugins/mqtt-proxy/index.html               | 10 +++++-----
 docs/apisix/next/plugins/node-status/index.html              | 10 +++++-----
 docs/apisix/next/plugins/openid-connect/index.html           | 10 +++++-----
 docs/apisix/next/plugins/prometheus/index.html               | 10 +++++-----
 docs/apisix/next/plugins/proxy-cache/index.html              | 10 +++++-----
 docs/apisix/next/plugins/proxy-mirror/index.html             | 10 +++++-----
 docs/apisix/next/plugins/proxy-rewrite/index.html            | 10 +++++-----
 docs/apisix/next/plugins/redirect/index.html                 | 10 +++++-----
 docs/apisix/next/plugins/referer-restriction/index.html      | 10 +++++-----
 docs/apisix/next/plugins/request-id/index.html               | 10 +++++-----
 docs/apisix/next/plugins/request-validation/index.html       | 10 +++++-----
 docs/apisix/next/plugins/response-rewrite/index.html         | 10 +++++-----
 docs/apisix/next/plugins/server-info/index.html              | 10 +++++-----
 docs/apisix/next/plugins/serverless/index.html               | 10 +++++-----
 docs/apisix/next/plugins/skywalking/index.html               | 10 +++++-----
 docs/apisix/next/plugins/sls-logger/index.html               | 10 +++++-----
 docs/apisix/next/plugins/syslog/index.html                   | 10 +++++-----
 docs/apisix/next/plugins/tcp-logger/index.html               | 10 +++++-----
 docs/apisix/next/plugins/traffic-split/index.html            | 10 +++++-----
 docs/apisix/next/plugins/ua-restriction/index.html           | 10 +++++-----
 docs/apisix/next/plugins/udp-logger/index.html               | 10 +++++-----
 docs/apisix/next/plugins/uri-blocker/index.html              | 10 +++++-----
 docs/apisix/next/plugins/wolf-rbac/index.html                | 10 +++++-----
 docs/apisix/next/plugins/zipkin/index.html                   | 10 +++++-----
 docs/apisix/next/powered-by/index.html                       | 10 +++++-----
 docs/apisix/next/profile/index.html                          | 10 +++++-----
 docs/apisix/next/router-radixtree/index.html                 | 10 +++++-----
 docs/apisix/next/stand-alone/index.html                      | 10 +++++-----
 docs/apisix/next/stream-proxy/index.html                     | 10 +++++-----
 docs/apisix/plugin-develop/index.html                        | 10 +++++-----
 docs/apisix/plugin-interceptors/index.html                   | 10 +++++-----
 docs/apisix/plugins/api-breaker/index.html                   | 10 +++++-----
 docs/apisix/plugins/authz-keycloak/index.html                | 10 +++++-----
 docs/apisix/plugins/basic-auth/index.html                    | 10 +++++-----
 docs/apisix/plugins/batch-requests/index.html                | 10 +++++-----
 docs/apisix/plugins/client-control/index.html                | 10 +++++-----
 docs/apisix/plugins/consumer-restriction/index.html          | 10 +++++-----
 docs/apisix/plugins/cors/index.html                          | 10 +++++-----
 docs/apisix/plugins/dubbo-proxy/index.html                   | 10 +++++-----
 docs/apisix/plugins/echo/index.html                          | 10 +++++-----
 docs/apisix/plugins/error-log-logger/index.html              | 10 +++++-----
 docs/apisix/plugins/ext-plugin-post-req/index.html           | 10 +++++-----
 docs/apisix/plugins/ext-plugin-pre-req/index.html            | 10 +++++-----
 docs/apisix/plugins/fault-injection/index.html               | 10 +++++-----
 docs/apisix/plugins/grpc-transcode/index.html                | 10 +++++-----
 docs/apisix/plugins/gzip/index.html                          | 10 +++++-----
 docs/apisix/plugins/hmac-auth/index.html                     | 10 +++++-----
 docs/apisix/plugins/http-logger/index.html                   | 10 +++++-----
 docs/apisix/plugins/index.html                               | 10 +++++-----
 docs/apisix/plugins/ip-restriction/index.html                | 10 +++++-----
 docs/apisix/plugins/jwt-auth/index.html                      | 10 +++++-----
 docs/apisix/plugins/kafka-logger/index.html                  | 10 +++++-----
 docs/apisix/plugins/key-auth/index.html                      | 10 +++++-----
 docs/apisix/plugins/limit-conn/index.html                    | 10 +++++-----
 docs/apisix/plugins/limit-count/index.html                   | 10 +++++-----
 docs/apisix/plugins/limit-req/index.html                     | 10 +++++-----
 docs/apisix/plugins/log-rotate/index.html                    | 10 +++++-----
 docs/apisix/plugins/mqtt-proxy/index.html                    | 10 +++++-----
 docs/apisix/plugins/node-status/index.html                   | 10 +++++-----
 docs/apisix/plugins/openid-connect/index.html                | 10 +++++-----
 docs/apisix/plugins/prometheus/index.html                    | 10 +++++-----
 docs/apisix/plugins/proxy-cache/index.html                   | 10 +++++-----
 docs/apisix/plugins/proxy-mirror/index.html                  | 10 +++++-----
 docs/apisix/plugins/proxy-rewrite/index.html                 | 10 +++++-----
 docs/apisix/plugins/redirect/index.html                      | 10 +++++-----
 docs/apisix/plugins/referer-restriction/index.html           | 10 +++++-----
 docs/apisix/plugins/request-id/index.html                    | 10 +++++-----
 docs/apisix/plugins/request-validation/index.html            | 10 +++++-----
 docs/apisix/plugins/response-rewrite/index.html              | 10 +++++-----
 docs/apisix/plugins/server-info/index.html                   | 10 +++++-----
 docs/apisix/plugins/serverless/index.html                    | 10 +++++-----
 docs/apisix/plugins/skywalking/index.html                    | 10 +++++-----
 docs/apisix/plugins/sls-logger/index.html                    | 10 +++++-----
 docs/apisix/plugins/syslog/index.html                        | 10 +++++-----
 docs/apisix/plugins/tcp-logger/index.html                    | 10 +++++-----
 docs/apisix/plugins/traffic-split/index.html                 | 10 +++++-----
 docs/apisix/plugins/ua-restriction/index.html                | 10 +++++-----
 docs/apisix/plugins/udp-logger/index.html                    | 10 +++++-----
 docs/apisix/plugins/uri-blocker/index.html                   | 10 +++++-----
 docs/apisix/plugins/wolf-rbac/index.html                     | 10 +++++-----
 docs/apisix/plugins/zipkin/index.html                        | 10 +++++-----
 docs/apisix/powered-by/index.html                            | 10 +++++-----
 docs/apisix/profile/index.html                               | 10 +++++-----
 docs/apisix/router-radixtree/index.html                      | 10 +++++-----
 docs/apisix/stand-alone/index.html                           | 10 +++++-----
 docs/apisix/stream-proxy/index.html                          | 10 +++++-----
 docs/dashboard/2.5/FAQ/index.html                            | 10 +++++-----
 docs/dashboard/2.5/I18N_USER_GUIDE/index.html                | 10 +++++-----
 docs/dashboard/2.5/IGNORE_DOC/index.html                     | 10 +++++-----
 docs/dashboard/2.5/IMPORT_OPENAPI_USER_GUIDE/index.html      | 10 +++++-----
 docs/dashboard/2.5/USER_GUIDE/index.html                     | 10 +++++-----
 docs/dashboard/2.5/api/api/index.html                        | 10 +++++-----
 docs/dashboard/2.5/back-end-tests/index.html                 | 10 +++++-----
 docs/dashboard/2.5/deploy-with-docker/index.html             | 10 +++++-----
 docs/dashboard/2.5/deploy-with-rpm/index.html                | 10 +++++-----
 docs/dashboard/2.5/deploy/index.html                         | 10 +++++-----
 docs/dashboard/2.5/develop/index.html                        | 10 +++++-----
 docs/dashboard/2.5/front-end-e2e/index.html                  | 10 +++++-----
 docs/dashboard/2.6.1/FAQ/index.html                          | 10 +++++-----
 docs/dashboard/2.6.1/I18N_USER_GUIDE/index.html              | 10 +++++-----
 docs/dashboard/2.6.1/IGNORE_DOC/index.html                   | 10 +++++-----
 docs/dashboard/2.6.1/IMPORT_OPENAPI_USER_GUIDE/index.html    | 10 +++++-----
 docs/dashboard/2.6.1/USER_GUIDE/index.html                   | 10 +++++-----
 docs/dashboard/2.6.1/api/api/index.html                      | 10 +++++-----
 docs/dashboard/2.6.1/back-end-tests/index.html               | 10 +++++-----
 docs/dashboard/2.6.1/deploy-with-docker/index.html           | 10 +++++-----
 docs/dashboard/2.6.1/deploy-with-rpm/index.html              | 10 +++++-----
 docs/dashboard/2.6.1/deploy/index.html                       | 10 +++++-----
 docs/dashboard/2.6.1/develop/index.html                      | 10 +++++-----
 docs/dashboard/2.6.1/front-end-e2e/index.html                | 10 +++++-----
 docs/dashboard/2.6/FAQ/index.html                            | 10 +++++-----
 docs/dashboard/2.6/I18N_USER_GUIDE/index.html                | 10 +++++-----
 docs/dashboard/2.6/IGNORE_DOC/index.html                     | 10 +++++-----
 docs/dashboard/2.6/IMPORT_OPENAPI_USER_GUIDE/index.html      | 10 +++++-----
 docs/dashboard/2.6/USER_GUIDE/index.html                     | 10 +++++-----
 docs/dashboard/2.6/api/api/index.html                        | 10 +++++-----
 docs/dashboard/2.6/back-end-tests/index.html                 | 10 +++++-----
 docs/dashboard/2.6/deploy-with-docker/index.html             | 10 +++++-----
 docs/dashboard/2.6/deploy-with-rpm/index.html                | 10 +++++-----
 docs/dashboard/2.6/deploy/index.html                         | 10 +++++-----
 docs/dashboard/2.6/develop/index.html                        | 10 +++++-----
 docs/dashboard/2.6/front-end-e2e/index.html                  | 10 +++++-----
 docs/dashboard/FAQ/index.html                                | 10 +++++-----
 docs/dashboard/I18N_USER_GUIDE/index.html                    | 10 +++++-----
 docs/dashboard/IGNORE_DOC/index.html                         | 10 +++++-----
 docs/dashboard/IMPORT_OPENAPI_USER_GUIDE/index.html          | 10 +++++-----
 docs/dashboard/USER_GUIDE/index.html                         | 10 +++++-----
 docs/dashboard/api/api/index.html                            | 10 +++++-----
 docs/dashboard/back-end-tests/index.html                     | 10 +++++-----
 docs/dashboard/deploy-with-docker/index.html                 | 10 +++++-----
 docs/dashboard/deploy-with-rpm/index.html                    | 10 +++++-----
 docs/dashboard/deploy/index.html                             | 10 +++++-----
 docs/dashboard/develop/index.html                            | 10 +++++-----
 docs/dashboard/front-end-e2e/index.html                      | 10 +++++-----
 docs/dashboard/next/FAQ/index.html                           | 10 +++++-----
 docs/dashboard/next/I18N_USER_GUIDE/index.html               | 10 +++++-----
 docs/dashboard/next/IGNORE_DOC/index.html                    | 10 +++++-----
 docs/dashboard/next/IMPORT_OPENAPI_USER_GUIDE/index.html     | 10 +++++-----
 docs/dashboard/next/USER_GUIDE/index.html                    | 10 +++++-----
 docs/dashboard/next/api/api/index.html                       | 10 +++++-----
 docs/dashboard/next/back-end-tests/index.html                | 10 +++++-----
 docs/dashboard/next/deploy-with-docker/index.html            | 10 +++++-----
 docs/dashboard/next/deploy-with-rpm/index.html               | 10 +++++-----
 docs/dashboard/next/deploy/index.html                        | 10 +++++-----
 docs/dashboard/next/develop/index.html                       | 10 +++++-----
 docs/dashboard/next/front-end-e2e/index.html                 | 10 +++++-----
 docs/docker/IGNORE_DOC/index.html                            | 10 +++++-----
 docs/docker/build/index.html                                 | 10 +++++-----
 docs/docker/example/index.html                               | 10 +++++-----
 docs/docker/manual/index.html                                | 10 +++++-----
 docs/general/2fa/index.html                                  | 10 +++++-----
 docs/general/committer-guide/index.html                      | 10 +++++-----
 docs/general/contributor-guide/index.html                    | 10 +++++-----
 docs/general/integrate-with-project-docs/index.html          | 10 +++++-----
 docs/general/release-guide/index.html                        | 12 ++++++------
 docs/general/security/index.html                             | 10 +++++-----
 docs/general/subscribe-guide/index.html                      | 10 +++++-----
 docs/go-plugin-runner/IGNORE_DOC/index.html                  | 10 +++++-----
 docs/go-plugin-runner/developer-guide/index.html             | 10 +++++-----
 docs/go-plugin-runner/getting-started/index.html             | 10 +++++-----
 docs/go-plugin-runner/next/IGNORE_DOC/index.html             | 10 +++++-----
 docs/go-plugin-runner/next/developer-guide/index.html        | 10 +++++-----
 docs/go-plugin-runner/next/getting-started/index.html        | 10 +++++-----
 docs/helm-chart/IGNORE_DOC/index.html                        | 10 +++++-----
 docs/helm-chart/apisix-dashboard/index.html                  | 10 +++++-----
 docs/helm-chart/apisix-ingress-controller/index.html         | 10 +++++-----
 docs/helm-chart/apisix/index.html                            | 10 +++++-----
 docs/index.html                                              | 10 +++++-----
 docs/ingress-controller/FAQ/index.html                       | 10 +++++-----
 docs/ingress-controller/IGNORE_DOC/index.html                | 10 +++++-----
 docs/ingress-controller/concepts/annotations/index.html      | 10 +++++-----
 .../concepts/apisix_cluster_config/index.html                | 10 +++++-----
 docs/ingress-controller/concepts/apisix_route/index.html     | 10 +++++-----
 docs/ingress-controller/concepts/apisix_tls/index.html       | 10 +++++-----
 docs/ingress-controller/concepts/apisix_upstream/index.html  | 10 +++++-----
 docs/ingress-controller/contribute/index.html                | 10 +++++-----
 docs/ingress-controller/deployments/ack/index.html           | 10 +++++-----
 docs/ingress-controller/deployments/aws/index.html           | 10 +++++-----
 docs/ingress-controller/deployments/azure/index.html         | 10 +++++-----
 docs/ingress-controller/deployments/gke/index.html           | 10 +++++-----
 docs/ingress-controller/deployments/k3s-rke/index.html       | 10 +++++-----
 docs/ingress-controller/deployments/kubesphere/index.html    | 10 +++++-----
 docs/ingress-controller/deployments/minikube/index.html      | 10 +++++-----
 docs/ingress-controller/deployments/tke/index.html           | 10 +++++-----
 docs/ingress-controller/design/index.html                    | 10 +++++-----
 docs/ingress-controller/development/index.html               | 10 +++++-----
 docs/ingress-controller/getting-started/index.html           | 10 +++++-----
 .../ingress-controller/practices/check-crd-status/index.html | 10 +++++-----
 docs/ingress-controller/practices/index/index.html           | 10 +++++-----
 docs/ingress-controller/practices/mtls/index.html            | 10 +++++-----
 .../proxy-the-httpbin-service-with-ingress/index.html        | 10 +++++-----
 .../practices/proxy-the-httpbin-service/index.html           | 10 +++++-----
 docs/ingress-controller/practices/the-hard-way/index.html    | 10 +++++-----
 .../references/apisix_cluster_config/index.html              | 10 +++++-----
 .../ingress-controller/references/apisix_route_v1/index.html | 10 +++++-----
 .../references/apisix_route_v2alpha1/index.html              | 10 +++++-----
 .../references/apisix_route_v2beta1/index.html               | 10 +++++-----
 docs/ingress-controller/references/apisix_tls/index.html     | 10 +++++-----
 .../ingress-controller/references/apisix_upstream/index.html | 10 +++++-----
 docs/java-plugin-runner/IGNORE_DOC/index.html                | 10 +++++-----
 docs/java-plugin-runner/development/index.html               | 10 +++++-----
 docs/java-plugin-runner/how-it-works/index.html              | 10 +++++-----
 docs/java-plugin-runner/next/IGNORE_DOC/index.html           | 10 +++++-----
 docs/java-plugin-runner/next/development/index.html          | 10 +++++-----
 docs/java-plugin-runner/next/how-it-works/index.html         | 10 +++++-----
 .../the-internal-of-apisix-java-plugin-runner/index.html     | 10 +++++-----
 .../the-internal-of-apisix-java-plugin-runner/index.html     | 10 +++++-----
 downloads/ProjectCard/index.html                             |  8 ++++----
 downloads/index.html                                         | 10 +++++-----
 .../index.html                                               | 10 +++++-----
 .../index.html                                               | 10 +++++-----
 events/2021/02/09/release-apache-apisix-2.3/index.html       | 10 +++++-----
 .../index.html                                               | 10 +++++-----
 .../02/12/release-apache-apisix-dashboard-2.4/index.html     | 10 +++++-----
 events/2021/03/05/release-apache-apisix-2.4/index.html       | 10 +++++-----
 .../index.html                                               | 10 +++++-----
 events/2021/04/05/release-apache-apisix-2.5/index.html       | 10 +++++-----
 .../04/13/release-apisix-ingress-controller-0.5/index.html   | 10 +++++-----
 .../04/22/release-apache-apisix-dashboard-2.6/index.html     | 10 +++++-----
 events/2021/05/24/release-apache-apisix-2.6/index.html       | 10 +++++-----
 .../05/27/release-apache-apisix-dashboard-2.6.1/index.html   | 10 +++++-----
 .../06/15/release-apache-apisix-dashboard-2.7/index.html     | 10 +++++-----
 events/2021/06/25/release-apache-apisix-2.7/index.html       | 10 +++++-----
 events/index.html                                            | 10 +++++-----
 events/page/2/index.html                                     | 10 +++++-----
 help/index.html                                              | 10 +++++-----
 index.html                                                   | 10 +++++-----
 search/index.html                                            | 10 +++++-----
 team/index.html                                              | 10 +++++-----
 zh/404.html                                                  | 10 +++++-----
 zh/assets/js/19945770.6752f802.js                            |  1 -
 zh/assets/js/19945770.ee491baa.js                            |  1 +
 zh/assets/js/{3393d167.17bf589d.js => 3393d167.310a2ff4.js}  |  2 +-
 zh/assets/js/{601c6eaa.54e5ad47.js => 358566b4.14904352.js}  |  2 +-
 zh/assets/js/358566b4.78b16c46.js                            |  1 -
 zh/assets/js/3dc9f306.3b02fffb.js                            |  1 -
 zh/assets/js/3dc9f306.51d76f2a.js                            |  1 +
 zh/assets/js/{601c6eaa.54e5ad47.js => 40fb2fae.79f1115b.js}  |  2 +-
 zh/assets/js/40fb2fae.8033870d.js                            |  1 -
 zh/assets/js/{4c20006b.e946863a.js => 4c20006b.b8c6b551.js}  |  2 +-
 zh/assets/js/50facf8e.240fa524.js                            |  1 -
 zh/assets/js/50facf8e.74b46bd7.js                            |  1 +
 zh/assets/js/542fd41f.2d098b6a.js                            |  1 +
 zh/assets/js/542fd41f.39e03d20.js                            |  1 -
 zh/assets/js/{601c6eaa.54e5ad47.js => 601c6eaa.6dca01de.js}  |  2 +-
 zh/assets/js/66fbb9c2.1d6ece14.js                            |  1 +
 zh/assets/js/66fbb9c2.abf9c6fb.js                            |  1 -
 zh/assets/js/7af3052c.e2322c4e.js                            |  1 +
 zh/assets/js/7af3052c.fb3729dd.js                            |  1 -
 zh/assets/js/8e784bf3.5a2d5733.js                            |  1 +
 zh/assets/js/8e784bf3.9b05b16a.js                            |  1 -
 zh/assets/js/adbb350b.21c557b2.js                            |  1 +
 zh/assets/js/adbb350b.8d153b94.js                            |  1 -
 zh/assets/js/{601c6eaa.54e5ad47.js => d18db9b0.2056b9c9.js}  |  2 +-
 zh/assets/js/d18db9b0.836841d8.js                            |  1 -
 zh/assets/js/main.42a0ef0d.js                                |  2 ++
 .../assets/js/main.42a0ef0d.js.LICENSE.txt                   |  0
 zh/assets/js/main.9945377f.js                                |  2 --
 .../{runtime~main.114fe289.js => runtime~main.0d28a35e.js}   |  2 +-
 zh/blog/2020/08/22/new-website/index.html                    | 10 +++++-----
 .../12/16/another-way-to-implement-envoy-filter/index.html   | 10 +++++-----
 .../12/18/a-first-look-at-kubernetes-service-api/index.html  | 10 +++++-----
 .../index.html                                               | 10 +++++-----
 .../2021/01/21/run-ingress-apisix-on-amazon-eks/index.html   | 10 +++++-----
 .../02/08/stable-product-delivery-with-cypress/index.html    | 10 +++++-----
 .../02/26/install-apache-apisix-from-helm-charts/index.html  | 10 +++++-----
 .../02/get-front-end-test-coverage-with-cypress/index.html   | 10 +++++-----
 .../index.html                                               | 10 +++++-----
 .../index.html"                                              | 10 +++++-----
 .../index.html"                                              | 10 +++++-----
 .../index.html                                               | 10 +++++-----
 .../index.html                                               | 10 +++++-----
 .../index.html                                               | 10 +++++-----
 .../index.html                                               | 10 +++++-----
 .../06/21/use-Java-to-write-Apache-APISIX-plugins/index.html | 10 +++++-----
 .../index.html                                               | 10 +++++-----
 zh/blog/2021/06/29/release-apache-apisix-2.7-en/index.html   | 10 +++++-----
 zh/blog/2021/06/29/release-apache-apisix-2.7/index.html      | 10 +++++-----
 .../06/30/etcd3-support-HTTP-access-perfectly/index.html     | 10 +++++-----
 zh/blog/2021/07/06/celebrate-200-contributors/index.html     | 10 +++++-----
 .../index.html                                               | 10 +++++-----
 .../07/16/Analyze-Apache-APISIX-Mesh-Agent-deeply/index.html | 10 +++++-----
 .../use-of-plugin-orchestration-in-Apache-APISIX/index.html  | 10 +++++-----
 zh/blog/index.html                                           | 10 +++++-----
 zh/blog/page/2/index.html                                    | 10 +++++-----
 zh/blog/page/3/index.html                                    | 10 +++++-----
 zh/docs/apisix/2.4/FAQ/index.html                            | 10 +++++-----
 zh/docs/apisix/2.4/IGNORE_DOC/index.html                     | 10 +++++-----
 zh/docs/apisix/2.4/admin-api/index.html                      | 10 +++++-----
 zh/docs/apisix/2.4/architecture-design/index.html            | 10 +++++-----
 zh/docs/apisix/2.4/aws/index.html                            | 10 +++++-----
 zh/docs/apisix/2.4/batch-processor/index.html                | 10 +++++-----
 zh/docs/apisix/2.4/benchmark/index.html                      | 10 +++++-----
 zh/docs/apisix/2.4/control-api/index.html                    | 10 +++++-----
 zh/docs/apisix/2.4/customize-nginx-configuration/index.html  | 10 +++++-----
 zh/docs/apisix/2.4/debug-function/index.html                 | 10 +++++-----
 zh/docs/apisix/2.4/discovery/consul_kv/index.html            | 10 +++++-----
 zh/docs/apisix/2.4/discovery/index.html                      | 10 +++++-----
 zh/docs/apisix/2.4/dns/index.html                            | 10 +++++-----
 .../examples/plugins-hmac-auth-generate-signature/index.html | 10 +++++-----
 zh/docs/apisix/2.4/getting-started/index.html                | 10 +++++-----
 zh/docs/apisix/2.4/grpc-proxy/index.html                     | 10 +++++-----
 zh/docs/apisix/2.4/health-check/index.html                   | 10 +++++-----
 zh/docs/apisix/2.4/how-to-build/index.html                   | 10 +++++-----
 zh/docs/apisix/2.4/https/index.html                          | 10 +++++-----
 zh/docs/apisix/2.4/install-dependencies/index.html           | 10 +++++-----
 zh/docs/apisix/2.4/mtls/index.html                           | 10 +++++-----
 zh/docs/apisix/2.4/plugin-develop/index.html                 | 10 +++++-----
 zh/docs/apisix/2.4/plugin-interceptors/index.html            | 10 +++++-----
 zh/docs/apisix/2.4/plugins/api-breaker/index.html            | 10 +++++-----
 zh/docs/apisix/2.4/plugins/authz-keycloak/index.html         | 10 +++++-----
 zh/docs/apisix/2.4/plugins/basic-auth/index.html             | 10 +++++-----
 zh/docs/apisix/2.4/plugins/batch-requests/index.html         | 10 +++++-----
 zh/docs/apisix/2.4/plugins/consumer-restriction/index.html   | 10 +++++-----
 zh/docs/apisix/2.4/plugins/cors/index.html                   | 10 +++++-----
 zh/docs/apisix/2.4/plugins/dubbo-proxy/index.html            | 10 +++++-----
 zh/docs/apisix/2.4/plugins/echo/index.html                   | 10 +++++-----
 zh/docs/apisix/2.4/plugins/error-log-logger/index.html       | 10 +++++-----
 zh/docs/apisix/2.4/plugins/fault-injection/index.html        | 10 +++++-----
 zh/docs/apisix/2.4/plugins/grpc-transcode/index.html         | 10 +++++-----
 zh/docs/apisix/2.4/plugins/hmac-auth/index.html              | 10 +++++-----
 zh/docs/apisix/2.4/plugins/http-logger/index.html            | 10 +++++-----
 zh/docs/apisix/2.4/plugins/index.html                        | 10 +++++-----
 zh/docs/apisix/2.4/plugins/ip-restriction/index.html         | 10 +++++-----
 zh/docs/apisix/2.4/plugins/jwt-auth/index.html               | 10 +++++-----
 zh/docs/apisix/2.4/plugins/kafka-logger/index.html           | 10 +++++-----
 zh/docs/apisix/2.4/plugins/key-auth/index.html               | 10 +++++-----
 zh/docs/apisix/2.4/plugins/limit-conn/index.html             | 10 +++++-----
 zh/docs/apisix/2.4/plugins/limit-count/index.html            | 10 +++++-----
 zh/docs/apisix/2.4/plugins/limit-req/index.html              | 10 +++++-----
 zh/docs/apisix/2.4/plugins/log-rotate/index.html             | 10 +++++-----
 zh/docs/apisix/2.4/plugins/mqtt-proxy/index.html             | 10 +++++-----
 zh/docs/apisix/2.4/plugins/node-status/index.html            | 10 +++++-----
 zh/docs/apisix/2.4/plugins/openid-connect/index.html         | 10 +++++-----
 zh/docs/apisix/2.4/plugins/prometheus/index.html             | 10 +++++-----
 zh/docs/apisix/2.4/plugins/proxy-cache/index.html            | 10 +++++-----
 zh/docs/apisix/2.4/plugins/proxy-mirror/index.html           | 10 +++++-----
 zh/docs/apisix/2.4/plugins/proxy-rewrite/index.html          | 10 +++++-----
 zh/docs/apisix/2.4/plugins/redirect/index.html               | 10 +++++-----
 zh/docs/apisix/2.4/plugins/referer-restriction/index.html    | 10 +++++-----
 zh/docs/apisix/2.4/plugins/request-id/index.html             | 10 +++++-----
 zh/docs/apisix/2.4/plugins/request-validation/index.html     | 10 +++++-----
 zh/docs/apisix/2.4/plugins/response-rewrite/index.html       | 10 +++++-----
 zh/docs/apisix/2.4/plugins/server-info/index.html            | 10 +++++-----
 zh/docs/apisix/2.4/plugins/serverless/index.html             | 10 +++++-----
 zh/docs/apisix/2.4/plugins/skywalking/index.html             | 10 +++++-----
 zh/docs/apisix/2.4/plugins/sls-logger/index.html             | 10 +++++-----
 zh/docs/apisix/2.4/plugins/syslog/index.html                 | 10 +++++-----
 zh/docs/apisix/2.4/plugins/tcp-logger/index.html             | 10 +++++-----
 zh/docs/apisix/2.4/plugins/traffic-split/index.html          | 10 +++++-----
 zh/docs/apisix/2.4/plugins/udp-logger/index.html             | 10 +++++-----
 zh/docs/apisix/2.4/plugins/uri-blocker/index.html            | 10 +++++-----
 zh/docs/apisix/2.4/plugins/wolf-rbac/index.html              | 10 +++++-----
 zh/docs/apisix/2.4/plugins/zipkin/index.html                 | 10 +++++-----
 zh/docs/apisix/2.4/powered-by/index.html                     | 10 +++++-----
 zh/docs/apisix/2.4/profile/index.html                        | 10 +++++-----
 zh/docs/apisix/2.4/router-radixtree/index.html               | 10 +++++-----
 zh/docs/apisix/2.4/stand-alone/index.html                    | 10 +++++-----
 zh/docs/apisix/2.4/stream-proxy/index.html                   | 10 +++++-----
 zh/docs/apisix/2.5/FAQ/index.html                            | 10 +++++-----
 zh/docs/apisix/2.5/IGNORE_DOC/index.html                     | 10 +++++-----
 zh/docs/apisix/2.5/admin-api/index.html                      | 10 +++++-----
 zh/docs/apisix/2.5/architecture-design/apisix/index.html     | 10 +++++-----
 zh/docs/apisix/2.5/architecture-design/consumer/index.html   | 10 +++++-----
 zh/docs/apisix/2.5/architecture-design/debug-mode/index.html | 10 +++++-----
 .../apisix/2.5/architecture-design/global-rule/index.html    | 10 +++++-----
 zh/docs/apisix/2.5/architecture-design/index.html            | 10 +++++-----
 .../apisix/2.5/architecture-design/plugin-config/index.html  | 10 +++++-----
 zh/docs/apisix/2.5/architecture-design/plugin/index.html     | 10 +++++-----
 zh/docs/apisix/2.5/architecture-design/route/index.html      | 10 +++++-----
 zh/docs/apisix/2.5/architecture-design/router/index.html     | 10 +++++-----
 zh/docs/apisix/2.5/architecture-design/script/index.html     | 10 +++++-----
 zh/docs/apisix/2.5/architecture-design/service/index.html    | 10 +++++-----
 zh/docs/apisix/2.5/architecture-design/upstream/index.html   | 10 +++++-----
 zh/docs/apisix/2.5/aws/index.html                            | 10 +++++-----
 zh/docs/apisix/2.5/batch-processor/index.html                | 10 +++++-----
 zh/docs/apisix/2.5/benchmark/index.html                      | 10 +++++-----
 zh/docs/apisix/2.5/control-api/index.html                    | 10 +++++-----
 zh/docs/apisix/2.5/customize-nginx-configuration/index.html  | 10 +++++-----
 zh/docs/apisix/2.5/debug-function/index.html                 | 10 +++++-----
 zh/docs/apisix/2.5/discovery/consul_kv/index.html            | 10 +++++-----
 zh/docs/apisix/2.5/discovery/dns/index.html                  | 10 +++++-----
 zh/docs/apisix/2.5/discovery/index.html                      | 10 +++++-----
 zh/docs/apisix/2.5/dns/index.html                            | 10 +++++-----
 .../examples/plugins-hmac-auth-generate-signature/index.html | 10 +++++-----
 zh/docs/apisix/2.5/getting-started/index.html                | 10 +++++-----
 zh/docs/apisix/2.5/grpc-proxy/index.html                     | 10 +++++-----
 zh/docs/apisix/2.5/health-check/index.html                   | 10 +++++-----
 zh/docs/apisix/2.5/how-to-build/index.html                   | 10 +++++-----
 zh/docs/apisix/2.5/https/index.html                          | 10 +++++-----
 zh/docs/apisix/2.5/install-dependencies/index.html           | 10 +++++-----
 zh/docs/apisix/2.5/mtls/index.html                           | 10 +++++-----
 zh/docs/apisix/2.5/plugin-develop/index.html                 | 10 +++++-----
 zh/docs/apisix/2.5/plugin-interceptors/index.html            | 10 +++++-----
 zh/docs/apisix/2.5/plugins/api-breaker/index.html            | 10 +++++-----
 zh/docs/apisix/2.5/plugins/authz-keycloak/index.html         | 10 +++++-----
 zh/docs/apisix/2.5/plugins/basic-auth/index.html             | 10 +++++-----
 zh/docs/apisix/2.5/plugins/batch-requests/index.html         | 10 +++++-----
 zh/docs/apisix/2.5/plugins/consumer-restriction/index.html   | 10 +++++-----
 zh/docs/apisix/2.5/plugins/cors/index.html                   | 10 +++++-----
 zh/docs/apisix/2.5/plugins/dubbo-proxy/index.html            | 10 +++++-----
 zh/docs/apisix/2.5/plugins/echo/index.html                   | 10 +++++-----
 zh/docs/apisix/2.5/plugins/error-log-logger/index.html       | 10 +++++-----
 zh/docs/apisix/2.5/plugins/fault-injection/index.html        | 10 +++++-----
 zh/docs/apisix/2.5/plugins/grpc-transcode/index.html         | 10 +++++-----
 zh/docs/apisix/2.5/plugins/hmac-auth/index.html              | 10 +++++-----
 zh/docs/apisix/2.5/plugins/http-logger/index.html            | 10 +++++-----
 zh/docs/apisix/2.5/plugins/index.html                        | 10 +++++-----
 zh/docs/apisix/2.5/plugins/ip-restriction/index.html         | 10 +++++-----
 zh/docs/apisix/2.5/plugins/jwt-auth/index.html               | 10 +++++-----
 zh/docs/apisix/2.5/plugins/kafka-logger/index.html           | 10 +++++-----
 zh/docs/apisix/2.5/plugins/key-auth/index.html               | 10 +++++-----
 zh/docs/apisix/2.5/plugins/limit-conn/index.html             | 10 +++++-----
 zh/docs/apisix/2.5/plugins/limit-count/index.html            | 10 +++++-----
 zh/docs/apisix/2.5/plugins/limit-req/index.html              | 10 +++++-----
 zh/docs/apisix/2.5/plugins/log-rotate/index.html             | 10 +++++-----
 zh/docs/apisix/2.5/plugins/mqtt-proxy/index.html             | 10 +++++-----
 zh/docs/apisix/2.5/plugins/node-status/index.html            | 10 +++++-----
 zh/docs/apisix/2.5/plugins/openid-connect/index.html         | 10 +++++-----
 zh/docs/apisix/2.5/plugins/prometheus/index.html             | 10 +++++-----
 zh/docs/apisix/2.5/plugins/proxy-cache/index.html            | 10 +++++-----
 zh/docs/apisix/2.5/plugins/proxy-mirror/index.html           | 10 +++++-----
 zh/docs/apisix/2.5/plugins/proxy-rewrite/index.html          | 10 +++++-----
 zh/docs/apisix/2.5/plugins/redirect/index.html               | 10 +++++-----
 zh/docs/apisix/2.5/plugins/referer-restriction/index.html    | 10 +++++-----
 zh/docs/apisix/2.5/plugins/request-id/index.html             | 10 +++++-----
 zh/docs/apisix/2.5/plugins/request-validation/index.html     | 10 +++++-----
 zh/docs/apisix/2.5/plugins/response-rewrite/index.html       | 10 +++++-----
 zh/docs/apisix/2.5/plugins/server-info/index.html            | 10 +++++-----
 zh/docs/apisix/2.5/plugins/serverless/index.html             | 10 +++++-----
 zh/docs/apisix/2.5/plugins/skywalking/index.html             | 10 +++++-----
 zh/docs/apisix/2.5/plugins/sls-logger/index.html             | 10 +++++-----
 zh/docs/apisix/2.5/plugins/syslog/index.html                 | 10 +++++-----
 zh/docs/apisix/2.5/plugins/tcp-logger/index.html             | 10 +++++-----
 zh/docs/apisix/2.5/plugins/traffic-split/index.html          | 10 +++++-----
 zh/docs/apisix/2.5/plugins/udp-logger/index.html             | 10 +++++-----
 zh/docs/apisix/2.5/plugins/uri-blocker/index.html            | 10 +++++-----
 zh/docs/apisix/2.5/plugins/wolf-rbac/index.html              | 10 +++++-----
 zh/docs/apisix/2.5/plugins/zipkin/index.html                 | 10 +++++-----
 zh/docs/apisix/2.5/powered-by/index.html                     | 10 +++++-----
 zh/docs/apisix/2.5/profile/index.html                        | 10 +++++-----
 zh/docs/apisix/2.5/router-radixtree/index.html               | 10 +++++-----
 zh/docs/apisix/2.5/stand-alone/index.html                    | 10 +++++-----
 zh/docs/apisix/2.5/stream-proxy/index.html                   | 10 +++++-----
 zh/docs/apisix/2.6/FAQ/index.html                            | 10 +++++-----
 zh/docs/apisix/2.6/IGNORE_DOC/index.html                     | 10 +++++-----
 zh/docs/apisix/2.6/admin-api/index.html                      | 10 +++++-----
 zh/docs/apisix/2.6/architecture-design/apisix/index.html     | 10 +++++-----
 zh/docs/apisix/2.6/architecture-design/consumer/index.html   | 10 +++++-----
 zh/docs/apisix/2.6/architecture-design/debug-mode/index.html | 10 +++++-----
 .../apisix/2.6/architecture-design/global-rule/index.html    | 10 +++++-----
 zh/docs/apisix/2.6/architecture-design/index.html            | 10 +++++-----
 .../apisix/2.6/architecture-design/plugin-config/index.html  | 10 +++++-----
 zh/docs/apisix/2.6/architecture-design/plugin/index.html     | 10 +++++-----
 zh/docs/apisix/2.6/architecture-design/route/index.html      | 10 +++++-----
 zh/docs/apisix/2.6/architecture-design/router/index.html     | 10 +++++-----
 zh/docs/apisix/2.6/architecture-design/script/index.html     | 10 +++++-----
 zh/docs/apisix/2.6/architecture-design/service/index.html    | 10 +++++-----
 zh/docs/apisix/2.6/architecture-design/upstream/index.html   | 10 +++++-----
 zh/docs/apisix/2.6/aws/index.html                            | 10 +++++-----
 zh/docs/apisix/2.6/batch-processor/index.html                | 10 +++++-----
 zh/docs/apisix/2.6/benchmark/index.html                      | 10 +++++-----
 zh/docs/apisix/2.6/control-api/index.html                    | 10 +++++-----
 zh/docs/apisix/2.6/customize-nginx-configuration/index.html  | 10 +++++-----
 zh/docs/apisix/2.6/debug-function/index.html                 | 10 +++++-----
 zh/docs/apisix/2.6/discovery/consul_kv/index.html            | 10 +++++-----
 zh/docs/apisix/2.6/discovery/dns/index.html                  | 10 +++++-----
 zh/docs/apisix/2.6/discovery/eureka/index.html               | 10 +++++-----
 zh/docs/apisix/2.6/discovery/index.html                      | 10 +++++-----
 zh/docs/apisix/2.6/discovery/nacos/index.html                | 10 +++++-----
 zh/docs/apisix/2.6/dns/index.html                            | 10 +++++-----
 .../examples/plugins-hmac-auth-generate-signature/index.html | 10 +++++-----
 zh/docs/apisix/2.6/getting-started/index.html                | 10 +++++-----
 zh/docs/apisix/2.6/grpc-proxy/index.html                     | 10 +++++-----
 zh/docs/apisix/2.6/health-check/index.html                   | 10 +++++-----
 zh/docs/apisix/2.6/how-to-build/index.html                   | 10 +++++-----
 zh/docs/apisix/2.6/https/index.html                          | 10 +++++-----
 zh/docs/apisix/2.6/install-dependencies/index.html           | 10 +++++-----
 zh/docs/apisix/2.6/mtls/index.html                           | 10 +++++-----
 zh/docs/apisix/2.6/plugin-develop/index.html                 | 10 +++++-----
 zh/docs/apisix/2.6/plugin-interceptors/index.html            | 10 +++++-----
 zh/docs/apisix/2.6/plugins/api-breaker/index.html            | 10 +++++-----
 zh/docs/apisix/2.6/plugins/authz-keycloak/index.html         | 10 +++++-----
 zh/docs/apisix/2.6/plugins/basic-auth/index.html             | 10 +++++-----
 zh/docs/apisix/2.6/plugins/batch-requests/index.html         | 10 +++++-----
 zh/docs/apisix/2.6/plugins/consumer-restriction/index.html   | 10 +++++-----
 zh/docs/apisix/2.6/plugins/cors/index.html                   | 10 +++++-----
 zh/docs/apisix/2.6/plugins/dubbo-proxy/index.html            | 10 +++++-----
 zh/docs/apisix/2.6/plugins/echo/index.html                   | 10 +++++-----
 zh/docs/apisix/2.6/plugins/error-log-logger/index.html       | 10 +++++-----
 zh/docs/apisix/2.6/plugins/fault-injection/index.html        | 10 +++++-----
 zh/docs/apisix/2.6/plugins/grpc-transcode/index.html         | 10 +++++-----
 zh/docs/apisix/2.6/plugins/hmac-auth/index.html              | 10 +++++-----
 zh/docs/apisix/2.6/plugins/http-logger/index.html            | 10 +++++-----
 zh/docs/apisix/2.6/plugins/index.html                        | 10 +++++-----
 zh/docs/apisix/2.6/plugins/ip-restriction/index.html         | 10 +++++-----
 zh/docs/apisix/2.6/plugins/jwt-auth/index.html               | 10 +++++-----
 zh/docs/apisix/2.6/plugins/kafka-logger/index.html           | 10 +++++-----
 zh/docs/apisix/2.6/plugins/key-auth/index.html               | 10 +++++-----
 zh/docs/apisix/2.6/plugins/limit-conn/index.html             | 10 +++++-----
 zh/docs/apisix/2.6/plugins/limit-count/index.html            | 10 +++++-----
 zh/docs/apisix/2.6/plugins/limit-req/index.html              | 10 +++++-----
 zh/docs/apisix/2.6/plugins/log-rotate/index.html             | 10 +++++-----
 zh/docs/apisix/2.6/plugins/mqtt-proxy/index.html             | 10 +++++-----
 zh/docs/apisix/2.6/plugins/node-status/index.html            | 10 +++++-----
 zh/docs/apisix/2.6/plugins/openid-connect/index.html         | 10 +++++-----
 zh/docs/apisix/2.6/plugins/prometheus/index.html             | 10 +++++-----
 zh/docs/apisix/2.6/plugins/proxy-cache/index.html            | 10 +++++-----
 zh/docs/apisix/2.6/plugins/proxy-mirror/index.html           | 10 +++++-----
 zh/docs/apisix/2.6/plugins/proxy-rewrite/index.html          | 10 +++++-----
 zh/docs/apisix/2.6/plugins/redirect/index.html               | 10 +++++-----
 zh/docs/apisix/2.6/plugins/referer-restriction/index.html    | 10 +++++-----
 zh/docs/apisix/2.6/plugins/request-id/index.html             | 10 +++++-----
 zh/docs/apisix/2.6/plugins/request-validation/index.html     | 10 +++++-----
 zh/docs/apisix/2.6/plugins/response-rewrite/index.html       | 10 +++++-----
 zh/docs/apisix/2.6/plugins/server-info/index.html            | 10 +++++-----
 zh/docs/apisix/2.6/plugins/serverless/index.html             | 10 +++++-----
 zh/docs/apisix/2.6/plugins/skywalking/index.html             | 10 +++++-----
 zh/docs/apisix/2.6/plugins/sls-logger/index.html             | 10 +++++-----
 zh/docs/apisix/2.6/plugins/syslog/index.html                 | 10 +++++-----
 zh/docs/apisix/2.6/plugins/tcp-logger/index.html             | 10 +++++-----
 zh/docs/apisix/2.6/plugins/traffic-split/index.html          | 10 +++++-----
 zh/docs/apisix/2.6/plugins/udp-logger/index.html             | 10 +++++-----
 zh/docs/apisix/2.6/plugins/uri-blocker/index.html            | 10 +++++-----
 zh/docs/apisix/2.6/plugins/wolf-rbac/index.html              | 10 +++++-----
 zh/docs/apisix/2.6/plugins/zipkin/index.html                 | 10 +++++-----
 zh/docs/apisix/2.6/powered-by/index.html                     | 10 +++++-----
 zh/docs/apisix/2.6/profile/index.html                        | 10 +++++-----
 zh/docs/apisix/2.6/router-radixtree/index.html               | 10 +++++-----
 zh/docs/apisix/2.6/stand-alone/index.html                    | 10 +++++-----
 zh/docs/apisix/2.6/stream-proxy/index.html                   | 10 +++++-----
 zh/docs/apisix/2.7/FAQ/index.html                            | 10 +++++-----
 zh/docs/apisix/2.7/IGNORE_DOC/index.html                     | 10 +++++-----
 zh/docs/apisix/2.7/admin-api/index.html                      | 10 +++++-----
 zh/docs/apisix/2.7/architecture-design/apisix/index.html     | 10 +++++-----
 zh/docs/apisix/2.7/architecture-design/consumer/index.html   | 10 +++++-----
 zh/docs/apisix/2.7/architecture-design/debug-mode/index.html | 10 +++++-----
 .../apisix/2.7/architecture-design/global-rule/index.html    | 10 +++++-----
 zh/docs/apisix/2.7/architecture-design/index.html            | 10 +++++-----
 .../apisix/2.7/architecture-design/plugin-config/index.html  | 10 +++++-----
 zh/docs/apisix/2.7/architecture-design/plugin/index.html     | 10 +++++-----
 zh/docs/apisix/2.7/architecture-design/route/index.html      | 10 +++++-----
 zh/docs/apisix/2.7/architecture-design/router/index.html     | 10 +++++-----
 zh/docs/apisix/2.7/architecture-design/script/index.html     | 10 +++++-----
 zh/docs/apisix/2.7/architecture-design/service/index.html    | 10 +++++-----
 zh/docs/apisix/2.7/architecture-design/upstream/index.html   | 10 +++++-----
 zh/docs/apisix/2.7/aws/index.html                            | 10 +++++-----
 zh/docs/apisix/2.7/batch-processor/index.html                | 10 +++++-----
 zh/docs/apisix/2.7/benchmark/index.html                      | 10 +++++-----
 zh/docs/apisix/2.7/certificate/index.html                    | 10 +++++-----
 zh/docs/apisix/2.7/control-api/index.html                    | 10 +++++-----
 zh/docs/apisix/2.7/customize-nginx-configuration/index.html  | 10 +++++-----
 zh/docs/apisix/2.7/debug-function/index.html                 | 10 +++++-----
 zh/docs/apisix/2.7/discovery/consul_kv/index.html            | 10 +++++-----
 zh/docs/apisix/2.7/discovery/dns/index.html                  | 10 +++++-----
 zh/docs/apisix/2.7/discovery/eureka/index.html               | 10 +++++-----
 zh/docs/apisix/2.7/discovery/index.html                      | 10 +++++-----
 zh/docs/apisix/2.7/discovery/nacos/index.html                | 10 +++++-----
 zh/docs/apisix/2.7/dns/index.html                            | 10 +++++-----
 .../examples/plugins-hmac-auth-generate-signature/index.html | 10 +++++-----
 zh/docs/apisix/2.7/external-plugin/index.html                | 10 +++++-----
 zh/docs/apisix/2.7/getting-started/index.html                | 10 +++++-----
 zh/docs/apisix/2.7/grpc-proxy/index.html                     | 10 +++++-----
 zh/docs/apisix/2.7/health-check/index.html                   | 10 +++++-----
 zh/docs/apisix/2.7/how-to-build/index.html                   | 10 +++++-----
 zh/docs/apisix/2.7/https/index.html                          | 10 +++++-----
 zh/docs/apisix/2.7/install-dependencies/index.html           | 10 +++++-----
 zh/docs/apisix/2.7/mtls/index.html                           | 10 +++++-----
 zh/docs/apisix/2.7/plugin-develop/index.html                 | 10 +++++-----
 zh/docs/apisix/2.7/plugin-interceptors/index.html            | 10 +++++-----
 zh/docs/apisix/2.7/plugins/api-breaker/index.html            | 10 +++++-----
 zh/docs/apisix/2.7/plugins/authz-keycloak/index.html         | 10 +++++-----
 zh/docs/apisix/2.7/plugins/basic-auth/index.html             | 10 +++++-----
 zh/docs/apisix/2.7/plugins/batch-requests/index.html         | 10 +++++-----
 zh/docs/apisix/2.7/plugins/client-control/index.html         | 10 +++++-----
 zh/docs/apisix/2.7/plugins/consumer-restriction/index.html   | 10 +++++-----
 zh/docs/apisix/2.7/plugins/cors/index.html                   | 10 +++++-----
 zh/docs/apisix/2.7/plugins/dubbo-proxy/index.html            | 10 +++++-----
 zh/docs/apisix/2.7/plugins/echo/index.html                   | 10 +++++-----
 zh/docs/apisix/2.7/plugins/error-log-logger/index.html       | 10 +++++-----
 zh/docs/apisix/2.7/plugins/ext-plugin-post-req/index.html    | 10 +++++-----
 zh/docs/apisix/2.7/plugins/ext-plugin-pre-req/index.html     | 10 +++++-----
 zh/docs/apisix/2.7/plugins/fault-injection/index.html        | 10 +++++-----
 zh/docs/apisix/2.7/plugins/grpc-transcode/index.html         | 10 +++++-----
 zh/docs/apisix/2.7/plugins/hmac-auth/index.html              | 10 +++++-----
 zh/docs/apisix/2.7/plugins/http-logger/index.html            | 10 +++++-----
 zh/docs/apisix/2.7/plugins/index.html                        | 10 +++++-----
 zh/docs/apisix/2.7/plugins/ip-restriction/index.html         | 10 +++++-----
 zh/docs/apisix/2.7/plugins/jwt-auth/index.html               | 10 +++++-----
 zh/docs/apisix/2.7/plugins/kafka-logger/index.html           | 10 +++++-----
 zh/docs/apisix/2.7/plugins/key-auth/index.html               | 10 +++++-----
 zh/docs/apisix/2.7/plugins/limit-conn/index.html             | 10 +++++-----
 zh/docs/apisix/2.7/plugins/limit-count/index.html            | 10 +++++-----
 zh/docs/apisix/2.7/plugins/limit-req/index.html              | 10 +++++-----
 zh/docs/apisix/2.7/plugins/log-rotate/index.html             | 10 +++++-----
 zh/docs/apisix/2.7/plugins/mqtt-proxy/index.html             | 10 +++++-----
 zh/docs/apisix/2.7/plugins/node-status/index.html            | 10 +++++-----
 zh/docs/apisix/2.7/plugins/openid-connect/index.html         | 10 +++++-----
 zh/docs/apisix/2.7/plugins/prometheus/index.html             | 10 +++++-----
 zh/docs/apisix/2.7/plugins/proxy-cache/index.html            | 10 +++++-----
 zh/docs/apisix/2.7/plugins/proxy-mirror/index.html           | 10 +++++-----
 zh/docs/apisix/2.7/plugins/proxy-rewrite/index.html          | 10 +++++-----
 zh/docs/apisix/2.7/plugins/redirect/index.html               | 10 +++++-----
 zh/docs/apisix/2.7/plugins/referer-restriction/index.html    | 10 +++++-----
 zh/docs/apisix/2.7/plugins/request-id/index.html             | 10 +++++-----
 zh/docs/apisix/2.7/plugins/request-validation/index.html     | 10 +++++-----
 zh/docs/apisix/2.7/plugins/response-rewrite/index.html       | 10 +++++-----
 zh/docs/apisix/2.7/plugins/server-info/index.html            | 10 +++++-----
 zh/docs/apisix/2.7/plugins/serverless/index.html             | 10 +++++-----
 zh/docs/apisix/2.7/plugins/skywalking/index.html             | 10 +++++-----
 zh/docs/apisix/2.7/plugins/sls-logger/index.html             | 10 +++++-----
 zh/docs/apisix/2.7/plugins/syslog/index.html                 | 10 +++++-----
 zh/docs/apisix/2.7/plugins/tcp-logger/index.html             | 10 +++++-----
 zh/docs/apisix/2.7/plugins/traffic-split/index.html          | 10 +++++-----
 zh/docs/apisix/2.7/plugins/udp-logger/index.html             | 10 +++++-----
 zh/docs/apisix/2.7/plugins/uri-blocker/index.html            | 10 +++++-----
 zh/docs/apisix/2.7/plugins/wolf-rbac/index.html              | 10 +++++-----
 zh/docs/apisix/2.7/plugins/zipkin/index.html                 | 10 +++++-----
 zh/docs/apisix/2.7/powered-by/index.html                     | 10 +++++-----
 zh/docs/apisix/2.7/profile/index.html                        | 10 +++++-----
 zh/docs/apisix/2.7/router-radixtree/index.html               | 10 +++++-----
 zh/docs/apisix/2.7/stand-alone/index.html                    | 10 +++++-----
 zh/docs/apisix/2.7/stream-proxy/index.html                   | 10 +++++-----
 zh/docs/apisix/FAQ/index.html                                | 10 +++++-----
 zh/docs/apisix/IGNORE_DOC/index.html                         | 10 +++++-----
 zh/docs/apisix/admin-api/index.html                          | 10 +++++-----
 zh/docs/apisix/architecture-design/apisix/index.html         | 10 +++++-----
 zh/docs/apisix/architecture-design/consumer/index.html       | 10 +++++-----
 zh/docs/apisix/architecture-design/debug-mode/index.html     | 10 +++++-----
 zh/docs/apisix/architecture-design/global-rule/index.html    | 10 +++++-----
 zh/docs/apisix/architecture-design/index.html                | 10 +++++-----
 zh/docs/apisix/architecture-design/plugin-config/index.html  | 10 +++++-----
 zh/docs/apisix/architecture-design/plugin/index.html         | 10 +++++-----
 zh/docs/apisix/architecture-design/route/index.html          | 10 +++++-----
 zh/docs/apisix/architecture-design/router/index.html         | 10 +++++-----
 zh/docs/apisix/architecture-design/script/index.html         | 10 +++++-----
 zh/docs/apisix/architecture-design/service/index.html        | 10 +++++-----
 zh/docs/apisix/architecture-design/upstream/index.html       | 10 +++++-----
 zh/docs/apisix/aws/index.html                                | 10 +++++-----
 zh/docs/apisix/batch-processor/index.html                    | 10 +++++-----
 zh/docs/apisix/benchmark/index.html                          | 10 +++++-----
 zh/docs/apisix/certificate/index.html                        | 10 +++++-----
 zh/docs/apisix/control-api/index.html                        | 10 +++++-----
 zh/docs/apisix/customize-nginx-configuration/index.html      | 10 +++++-----
 zh/docs/apisix/debug-function/index.html                     | 10 +++++-----
 zh/docs/apisix/discovery/consul_kv/index.html                | 10 +++++-----
 zh/docs/apisix/discovery/dns/index.html                      | 10 +++++-----
 zh/docs/apisix/discovery/eureka/index.html                   | 10 +++++-----
 zh/docs/apisix/discovery/index.html                          | 10 +++++-----
 zh/docs/apisix/discovery/nacos/index.html                    | 10 +++++-----
 zh/docs/apisix/dns/index.html                                | 10 +++++-----
 .../examples/plugins-hmac-auth-generate-signature/index.html | 10 +++++-----
 zh/docs/apisix/external-plugin/index.html                    | 10 +++++-----
 zh/docs/apisix/getting-started/index.html                    | 10 +++++-----
 zh/docs/apisix/grpc-proxy/index.html                         | 10 +++++-----
 zh/docs/apisix/health-check/index.html                       | 10 +++++-----
 zh/docs/apisix/how-to-build/index.html                       | 10 +++++-----
 zh/docs/apisix/https/index.html                              | 10 +++++-----
 zh/docs/apisix/install-dependencies/index.html               | 10 +++++-----
 zh/docs/apisix/mtls/index.html                               | 10 +++++-----
 zh/docs/apisix/next/FAQ/index.html                           | 10 +++++-----
 zh/docs/apisix/next/IGNORE_DOC/index.html                    | 10 +++++-----
 zh/docs/apisix/next/admin-api/index.html                     | 10 +++++-----
 zh/docs/apisix/next/architecture-design/apisix/index.html    | 10 +++++-----
 zh/docs/apisix/next/architecture-design/consumer/index.html  | 10 +++++-----
 .../apisix/next/architecture-design/debug-mode/index.html    | 10 +++++-----
 .../apisix/next/architecture-design/global-rule/index.html   | 10 +++++-----
 zh/docs/apisix/next/architecture-design/index.html           | 10 +++++-----
 .../apisix/next/architecture-design/plugin-config/index.html | 10 +++++-----
 zh/docs/apisix/next/architecture-design/plugin/index.html    | 10 +++++-----
 zh/docs/apisix/next/architecture-design/route/index.html     | 10 +++++-----
 zh/docs/apisix/next/architecture-design/router/index.html    | 10 +++++-----
 zh/docs/apisix/next/architecture-design/script/index.html    | 10 +++++-----
 zh/docs/apisix/next/architecture-design/service/index.html   | 10 +++++-----
 zh/docs/apisix/next/architecture-design/upstream/index.html  | 10 +++++-----
 zh/docs/apisix/next/aws/index.html                           | 10 +++++-----
 zh/docs/apisix/next/batch-processor/index.html               | 10 +++++-----
 zh/docs/apisix/next/benchmark/index.html                     | 10 +++++-----
 zh/docs/apisix/next/certificate/index.html                   | 10 +++++-----
 zh/docs/apisix/next/control-api/index.html                   | 10 +++++-----
 zh/docs/apisix/next/customize-nginx-configuration/index.html | 10 +++++-----
 zh/docs/apisix/next/debug-function/index.html                | 10 +++++-----
 zh/docs/apisix/next/discovery/consul_kv/index.html           | 10 +++++-----
 zh/docs/apisix/next/discovery/dns/index.html                 | 10 +++++-----
 zh/docs/apisix/next/discovery/eureka/index.html              | 10 +++++-----
 zh/docs/apisix/next/discovery/index.html                     | 10 +++++-----
 zh/docs/apisix/next/discovery/nacos/index.html               | 10 +++++-----
 zh/docs/apisix/next/dns/index.html                           | 10 +++++-----
 .../examples/plugins-hmac-auth-generate-signature/index.html | 10 +++++-----
 zh/docs/apisix/next/external-plugin/index.html               | 10 +++++-----
 zh/docs/apisix/next/getting-started/index.html               | 10 +++++-----
 zh/docs/apisix/next/grpc-proxy/index.html                    | 10 +++++-----
 zh/docs/apisix/next/health-check/index.html                  | 10 +++++-----
 zh/docs/apisix/next/how-to-build/index.html                  | 10 +++++-----
 zh/docs/apisix/next/https/index.html                         | 10 +++++-----
 zh/docs/apisix/next/install-dependencies/index.html          | 10 +++++-----
 zh/docs/apisix/next/mtls/index.html                          | 10 +++++-----
 zh/docs/apisix/next/plugin-develop/index.html                | 10 +++++-----
 zh/docs/apisix/next/plugin-interceptors/index.html           | 10 +++++-----
 zh/docs/apisix/next/plugins/api-breaker/index.html           | 10 +++++-----
 zh/docs/apisix/next/plugins/authz-keycloak/index.html        | 10 +++++-----
 zh/docs/apisix/next/plugins/basic-auth/index.html            | 10 +++++-----
 zh/docs/apisix/next/plugins/batch-requests/index.html        | 10 +++++-----
 zh/docs/apisix/next/plugins/client-control/index.html        | 10 +++++-----
 zh/docs/apisix/next/plugins/consumer-restriction/index.html  | 10 +++++-----
 zh/docs/apisix/next/plugins/cors/index.html                  | 10 +++++-----
 zh/docs/apisix/next/plugins/dubbo-proxy/index.html           | 10 +++++-----
 zh/docs/apisix/next/plugins/echo/index.html                  | 10 +++++-----
 zh/docs/apisix/next/plugins/error-log-logger/index.html      | 10 +++++-----
 zh/docs/apisix/next/plugins/ext-plugin-post-req/index.html   | 10 +++++-----
 zh/docs/apisix/next/plugins/ext-plugin-pre-req/index.html    | 10 +++++-----
 zh/docs/apisix/next/plugins/fault-injection/index.html       | 10 +++++-----
 zh/docs/apisix/next/plugins/grpc-transcode/index.html        | 10 +++++-----
 zh/docs/apisix/next/plugins/gzip/index.html                  | 10 +++++-----
 zh/docs/apisix/next/plugins/hmac-auth/index.html             | 10 +++++-----
 zh/docs/apisix/next/plugins/http-logger/index.html           | 10 +++++-----
 zh/docs/apisix/next/plugins/index.html                       | 10 +++++-----
 zh/docs/apisix/next/plugins/ip-restriction/index.html        | 10 +++++-----
 zh/docs/apisix/next/plugins/jwt-auth/index.html              | 10 +++++-----
 zh/docs/apisix/next/plugins/kafka-logger/index.html          | 10 +++++-----
 zh/docs/apisix/next/plugins/key-auth/index.html              | 10 +++++-----
 zh/docs/apisix/next/plugins/limit-conn/index.html            | 10 +++++-----
 zh/docs/apisix/next/plugins/limit-count/index.html           | 10 +++++-----
 zh/docs/apisix/next/plugins/limit-req/index.html             | 10 +++++-----
 zh/docs/apisix/next/plugins/log-rotate/index.html            | 10 +++++-----
 zh/docs/apisix/next/plugins/mqtt-proxy/index.html            | 10 +++++-----
 zh/docs/apisix/next/plugins/node-status/index.html           | 10 +++++-----
 zh/docs/apisix/next/plugins/openid-connect/index.html        | 10 +++++-----
 zh/docs/apisix/next/plugins/prometheus/index.html            | 10 +++++-----
 zh/docs/apisix/next/plugins/proxy-cache/index.html           | 10 +++++-----
 zh/docs/apisix/next/plugins/proxy-mirror/index.html          | 10 +++++-----
 zh/docs/apisix/next/plugins/proxy-rewrite/index.html         | 10 +++++-----
 zh/docs/apisix/next/plugins/redirect/index.html              | 10 +++++-----
 zh/docs/apisix/next/plugins/referer-restriction/index.html   | 10 +++++-----
 zh/docs/apisix/next/plugins/request-id/index.html            | 10 +++++-----
 zh/docs/apisix/next/plugins/request-validation/index.html    | 10 +++++-----
 zh/docs/apisix/next/plugins/response-rewrite/index.html      | 10 +++++-----
 zh/docs/apisix/next/plugins/server-info/index.html           | 10 +++++-----
 zh/docs/apisix/next/plugins/serverless/index.html            | 10 +++++-----
 zh/docs/apisix/next/plugins/skywalking/index.html            | 10 +++++-----
 zh/docs/apisix/next/plugins/sls-logger/index.html            | 10 +++++-----
 zh/docs/apisix/next/plugins/syslog/index.html                | 10 +++++-----
 zh/docs/apisix/next/plugins/tcp-logger/index.html            | 10 +++++-----
 zh/docs/apisix/next/plugins/traffic-split/index.html         | 10 +++++-----
 zh/docs/apisix/next/plugins/ua-restriction/index.html        | 10 +++++-----
 zh/docs/apisix/next/plugins/udp-logger/index.html            | 10 +++++-----
 zh/docs/apisix/next/plugins/uri-blocker/index.html           | 10 +++++-----
 zh/docs/apisix/next/plugins/wolf-rbac/index.html             | 10 +++++-----
 zh/docs/apisix/next/plugins/zipkin/index.html                | 10 +++++-----
 zh/docs/apisix/next/powered-by/index.html                    | 10 +++++-----
 zh/docs/apisix/next/profile/index.html                       | 10 +++++-----
 zh/docs/apisix/next/router-radixtree/index.html              | 10 +++++-----
 zh/docs/apisix/next/stand-alone/index.html                   | 10 +++++-----
 zh/docs/apisix/next/stream-proxy/index.html                  | 10 +++++-----
 zh/docs/apisix/plugin-develop/index.html                     | 10 +++++-----
 zh/docs/apisix/plugin-interceptors/index.html                | 10 +++++-----
 zh/docs/apisix/plugins/api-breaker/index.html                | 10 +++++-----
 zh/docs/apisix/plugins/authz-keycloak/index.html             | 10 +++++-----
 zh/docs/apisix/plugins/basic-auth/index.html                 | 10 +++++-----
 zh/docs/apisix/plugins/batch-requests/index.html             | 10 +++++-----
 zh/docs/apisix/plugins/client-control/index.html             | 10 +++++-----
 zh/docs/apisix/plugins/consumer-restriction/index.html       | 10 +++++-----
 zh/docs/apisix/plugins/cors/index.html                       | 10 +++++-----
 zh/docs/apisix/plugins/dubbo-proxy/index.html                | 10 +++++-----
 zh/docs/apisix/plugins/echo/index.html                       | 10 +++++-----
 zh/docs/apisix/plugins/error-log-logger/index.html           | 10 +++++-----
 zh/docs/apisix/plugins/ext-plugin-post-req/index.html        | 10 +++++-----
 zh/docs/apisix/plugins/ext-plugin-pre-req/index.html         | 10 +++++-----
 zh/docs/apisix/plugins/fault-injection/index.html            | 10 +++++-----
 zh/docs/apisix/plugins/grpc-transcode/index.html             | 10 +++++-----
 zh/docs/apisix/plugins/gzip/index.html                       | 10 +++++-----
 zh/docs/apisix/plugins/hmac-auth/index.html                  | 10 +++++-----
 zh/docs/apisix/plugins/http-logger/index.html                | 10 +++++-----
 zh/docs/apisix/plugins/index.html                            | 10 +++++-----
 zh/docs/apisix/plugins/ip-restriction/index.html             | 10 +++++-----
 zh/docs/apisix/plugins/jwt-auth/index.html                   | 10 +++++-----
 zh/docs/apisix/plugins/kafka-logger/index.html               | 10 +++++-----
 zh/docs/apisix/plugins/key-auth/index.html                   | 10 +++++-----
 zh/docs/apisix/plugins/limit-conn/index.html                 | 10 +++++-----
 zh/docs/apisix/plugins/limit-count/index.html                | 10 +++++-----
 zh/docs/apisix/plugins/limit-req/index.html                  | 10 +++++-----
 zh/docs/apisix/plugins/log-rotate/index.html                 | 10 +++++-----
 zh/docs/apisix/plugins/mqtt-proxy/index.html                 | 10 +++++-----
 zh/docs/apisix/plugins/node-status/index.html                | 10 +++++-----
 zh/docs/apisix/plugins/openid-connect/index.html             | 10 +++++-----
 zh/docs/apisix/plugins/prometheus/index.html                 | 10 +++++-----
 zh/docs/apisix/plugins/proxy-cache/index.html                | 10 +++++-----
 zh/docs/apisix/plugins/proxy-mirror/index.html               | 10 +++++-----
 zh/docs/apisix/plugins/proxy-rewrite/index.html              | 10 +++++-----
 zh/docs/apisix/plugins/redirect/index.html                   | 10 +++++-----
 zh/docs/apisix/plugins/referer-restriction/index.html        | 10 +++++-----
 zh/docs/apisix/plugins/request-id/index.html                 | 10 +++++-----
 zh/docs/apisix/plugins/request-validation/index.html         | 10 +++++-----
 zh/docs/apisix/plugins/response-rewrite/index.html           | 10 +++++-----
 zh/docs/apisix/plugins/server-info/index.html                | 10 +++++-----
 zh/docs/apisix/plugins/serverless/index.html                 | 10 +++++-----
 zh/docs/apisix/plugins/skywalking/index.html                 | 10 +++++-----
 zh/docs/apisix/plugins/sls-logger/index.html                 | 10 +++++-----
 zh/docs/apisix/plugins/syslog/index.html                     | 10 +++++-----
 zh/docs/apisix/plugins/tcp-logger/index.html                 | 10 +++++-----
 zh/docs/apisix/plugins/traffic-split/index.html              | 10 +++++-----
 zh/docs/apisix/plugins/ua-restriction/index.html             | 10 +++++-----
 zh/docs/apisix/plugins/udp-logger/index.html                 | 10 +++++-----
 zh/docs/apisix/plugins/uri-blocker/index.html                | 10 +++++-----
 zh/docs/apisix/plugins/wolf-rbac/index.html                  | 10 +++++-----
 zh/docs/apisix/plugins/zipkin/index.html                     | 10 +++++-----
 zh/docs/apisix/powered-by/index.html                         | 10 +++++-----
 zh/docs/apisix/profile/index.html                            | 10 +++++-----
 zh/docs/apisix/router-radixtree/index.html                   | 10 +++++-----
 zh/docs/apisix/stand-alone/index.html                        | 10 +++++-----
 zh/docs/apisix/stream-proxy/index.html                       | 10 +++++-----
 zh/docs/dashboard/2.5/FAQ/index.html                         | 10 +++++-----
 zh/docs/dashboard/2.5/I18N_USER_GUIDE/index.html             | 10 +++++-----
 zh/docs/dashboard/2.5/IGNORE_DOC/index.html                  | 10 +++++-----
 zh/docs/dashboard/2.5/IMPORT_OPENAPI_USER_GUIDE/index.html   | 10 +++++-----
 zh/docs/dashboard/2.5/USER_GUIDE/index.html                  | 10 +++++-----
 zh/docs/dashboard/2.5/api/api/index.html                     | 10 +++++-----
 zh/docs/dashboard/2.5/back-end-tests/index.html              | 10 +++++-----
 zh/docs/dashboard/2.5/deploy-with-docker/index.html          | 10 +++++-----
 zh/docs/dashboard/2.5/deploy-with-rpm/index.html             | 10 +++++-----
 zh/docs/dashboard/2.5/deploy/index.html                      | 10 +++++-----
 zh/docs/dashboard/2.5/develop/index.html                     | 10 +++++-----
 zh/docs/dashboard/2.5/front-end-e2e/index.html               | 10 +++++-----
 zh/docs/dashboard/2.6.1/FAQ/index.html                       | 10 +++++-----
 zh/docs/dashboard/2.6.1/I18N_USER_GUIDE/index.html           | 10 +++++-----
 zh/docs/dashboard/2.6.1/IGNORE_DOC/index.html                | 10 +++++-----
 zh/docs/dashboard/2.6.1/IMPORT_OPENAPI_USER_GUIDE/index.html | 10 +++++-----
 zh/docs/dashboard/2.6.1/USER_GUIDE/index.html                | 10 +++++-----
 zh/docs/dashboard/2.6.1/api/api/index.html                   | 10 +++++-----
 zh/docs/dashboard/2.6.1/back-end-tests/index.html            | 10 +++++-----
 zh/docs/dashboard/2.6.1/deploy-with-docker/index.html        | 10 +++++-----
 zh/docs/dashboard/2.6.1/deploy-with-rpm/index.html           | 10 +++++-----
 zh/docs/dashboard/2.6.1/deploy/index.html                    | 10 +++++-----
 zh/docs/dashboard/2.6.1/develop/index.html                   | 10 +++++-----
 zh/docs/dashboard/2.6.1/front-end-e2e/index.html             | 10 +++++-----
 zh/docs/dashboard/2.6/FAQ/index.html                         | 10 +++++-----
 zh/docs/dashboard/2.6/I18N_USER_GUIDE/index.html             | 10 +++++-----
 zh/docs/dashboard/2.6/IGNORE_DOC/index.html                  | 10 +++++-----
 zh/docs/dashboard/2.6/IMPORT_OPENAPI_USER_GUIDE/index.html   | 10 +++++-----
 zh/docs/dashboard/2.6/USER_GUIDE/index.html                  | 10 +++++-----
 zh/docs/dashboard/2.6/api/api/index.html                     | 10 +++++-----
 zh/docs/dashboard/2.6/back-end-tests/index.html              | 10 +++++-----
 zh/docs/dashboard/2.6/deploy-with-docker/index.html          | 10 +++++-----
 zh/docs/dashboard/2.6/deploy-with-rpm/index.html             | 10 +++++-----
 zh/docs/dashboard/2.6/deploy/index.html                      | 10 +++++-----
 zh/docs/dashboard/2.6/develop/index.html                     | 10 +++++-----
 zh/docs/dashboard/2.6/front-end-e2e/index.html               | 10 +++++-----
 zh/docs/dashboard/FAQ/index.html                             | 10 +++++-----
 zh/docs/dashboard/I18N_USER_GUIDE/index.html                 | 10 +++++-----
 zh/docs/dashboard/IGNORE_DOC/index.html                      | 10 +++++-----
 zh/docs/dashboard/IMPORT_OPENAPI_USER_GUIDE/index.html       | 10 +++++-----
 zh/docs/dashboard/USER_GUIDE/index.html                      | 10 +++++-----
 zh/docs/dashboard/api/api/index.html                         | 10 +++++-----
 zh/docs/dashboard/back-end-tests/index.html                  | 10 +++++-----
 zh/docs/dashboard/deploy-with-docker/index.html              | 10 +++++-----
 zh/docs/dashboard/deploy-with-rpm/index.html                 | 10 +++++-----
 zh/docs/dashboard/deploy/index.html                          | 10 +++++-----
 zh/docs/dashboard/develop/index.html                         | 10 +++++-----
 zh/docs/dashboard/front-end-e2e/index.html                   | 10 +++++-----
 zh/docs/dashboard/next/FAQ/index.html                        | 10 +++++-----
 zh/docs/dashboard/next/I18N_USER_GUIDE/index.html            | 10 +++++-----
 zh/docs/dashboard/next/IGNORE_DOC/index.html                 | 10 +++++-----
 zh/docs/dashboard/next/IMPORT_OPENAPI_USER_GUIDE/index.html  | 10 +++++-----
 zh/docs/dashboard/next/USER_GUIDE/index.html                 | 10 +++++-----
 zh/docs/dashboard/next/api/api/index.html                    | 10 +++++-----
 zh/docs/dashboard/next/back-end-tests/index.html             | 10 +++++-----
 zh/docs/dashboard/next/deploy-with-docker/index.html         | 10 +++++-----
 zh/docs/dashboard/next/deploy-with-rpm/index.html            | 10 +++++-----
 zh/docs/dashboard/next/deploy/index.html                     | 10 +++++-----
 zh/docs/dashboard/next/develop/index.html                    | 10 +++++-----
 zh/docs/dashboard/next/front-end-e2e/index.html              | 10 +++++-----
 zh/docs/docker/IGNORE_DOC/index.html                         | 10 +++++-----
 zh/docs/docker/build/index.html                              | 10 +++++-----
 zh/docs/docker/example/index.html                            | 10 +++++-----
 zh/docs/docker/manual/index.html                             | 10 +++++-----
 zh/docs/general/2fa/index.html                               | 10 +++++-----
 zh/docs/general/committer-guide/index.html                   | 10 +++++-----
 zh/docs/general/contributor-guide/index.html                 | 10 +++++-----
 zh/docs/general/integrate-with-project-docs/index.html       | 10 +++++-----
 zh/docs/general/release-guide/index.html                     | 12 ++++++------
 zh/docs/general/security/index.html                          | 10 +++++-----
 zh/docs/general/subscribe-guide/index.html                   | 10 +++++-----
 zh/docs/go-plugin-runner/IGNORE_DOC/index.html               | 10 +++++-----
 zh/docs/go-plugin-runner/developer-guide/index.html          | 10 +++++-----
 zh/docs/go-plugin-runner/getting-started/index.html          | 10 +++++-----
 zh/docs/go-plugin-runner/next/IGNORE_DOC/index.html          | 10 +++++-----
 zh/docs/go-plugin-runner/next/developer-guide/index.html     | 10 +++++-----
 zh/docs/go-plugin-runner/next/getting-started/index.html     | 10 +++++-----
 zh/docs/helm-chart/IGNORE_DOC/index.html                     | 10 +++++-----
 zh/docs/helm-chart/apisix-dashboard/index.html               | 10 +++++-----
 zh/docs/helm-chart/apisix-ingress-controller/index.html      | 10 +++++-----
 zh/docs/helm-chart/apisix/index.html                         | 10 +++++-----
 zh/docs/index.html                                           | 10 +++++-----
 zh/docs/ingress-controller/FAQ/index.html                    | 10 +++++-----
 zh/docs/ingress-controller/IGNORE_DOC/index.html             | 10 +++++-----
 zh/docs/ingress-controller/concepts/annotations/index.html   | 10 +++++-----
 .../concepts/apisix_cluster_config/index.html                | 10 +++++-----
 zh/docs/ingress-controller/concepts/apisix_route/index.html  | 10 +++++-----
 zh/docs/ingress-controller/concepts/apisix_tls/index.html    | 10 +++++-----
 .../ingress-controller/concepts/apisix_upstream/index.html   | 10 +++++-----
 zh/docs/ingress-controller/contribute/index.html             | 10 +++++-----
 zh/docs/ingress-controller/deployments/ack/index.html        | 10 +++++-----
 zh/docs/ingress-controller/deployments/aws/index.html        | 10 +++++-----
 zh/docs/ingress-controller/deployments/azure/index.html      | 10 +++++-----
 zh/docs/ingress-controller/deployments/gke/index.html        | 10 +++++-----
 zh/docs/ingress-controller/deployments/k3s-rke/index.html    | 10 +++++-----
 zh/docs/ingress-controller/deployments/kubesphere/index.html | 10 +++++-----
 zh/docs/ingress-controller/deployments/minikube/index.html   | 10 +++++-----
 zh/docs/ingress-controller/deployments/tke/index.html        | 10 +++++-----
 zh/docs/ingress-controller/design/index.html                 | 10 +++++-----
 zh/docs/ingress-controller/development/index.html            | 10 +++++-----
 zh/docs/ingress-controller/getting-started/index.html        | 10 +++++-----
 .../ingress-controller/practices/check-crd-status/index.html | 10 +++++-----
 zh/docs/ingress-controller/practices/index/index.html        | 10 +++++-----
 zh/docs/ingress-controller/practices/mtls/index.html         | 10 +++++-----
 .../proxy-the-httpbin-service-with-ingress/index.html        | 10 +++++-----
 .../practices/proxy-the-httpbin-service/index.html           | 10 +++++-----
 zh/docs/ingress-controller/practices/the-hard-way/index.html | 10 +++++-----
 .../references/apisix_cluster_config/index.html              | 10 +++++-----
 .../ingress-controller/references/apisix_route_v1/index.html | 10 +++++-----
 .../references/apisix_route_v2alpha1/index.html              | 10 +++++-----
 .../references/apisix_route_v2beta1/index.html               | 10 +++++-----
 zh/docs/ingress-controller/references/apisix_tls/index.html  | 10 +++++-----
 .../ingress-controller/references/apisix_upstream/index.html | 10 +++++-----
 zh/docs/java-plugin-runner/IGNORE_DOC/index.html             | 10 +++++-----
 zh/docs/java-plugin-runner/development/index.html            | 10 +++++-----
 zh/docs/java-plugin-runner/how-it-works/index.html           | 10 +++++-----
 zh/docs/java-plugin-runner/next/IGNORE_DOC/index.html        | 10 +++++-----
 zh/docs/java-plugin-runner/next/development/index.html       | 10 +++++-----
 zh/docs/java-plugin-runner/next/how-it-works/index.html      | 10 +++++-----
 .../the-internal-of-apisix-java-plugin-runner/index.html     | 10 +++++-----
 .../the-internal-of-apisix-java-plugin-runner/index.html     | 10 +++++-----
 zh/downloads/ProjectCard/index.html                          |  8 ++++----
 zh/downloads/index.html                                      | 10 +++++-----
 .../index.html                                               | 10 +++++-----
 .../index.html                                               | 10 +++++-----
 zh/events/2021/02/09/release-apache-apisix-2.3/index.html    | 10 +++++-----
 .../index.html                                               | 10 +++++-----
 .../02/12/release-apache-apisix-dashboard-2.4/index.html     | 10 +++++-----
 zh/events/2021/03/05/release-apache-apisix-2.4/index.html    | 10 +++++-----
 .../index.html                                               | 10 +++++-----
 zh/events/2021/04/05/release-apache-apisix-2.5/index.html    | 10 +++++-----
 .../04/13/release-apisix-ingress-controller-0.5/index.html   | 10 +++++-----
 .../04/22/release-apache-apisix-dashboard-2.6/index.html     | 10 +++++-----
 zh/events/2021/05/24/release-apache-apisix-2.6/index.html    | 10 +++++-----
 .../05/27/release-apache-apisix-dashboard-2.6.1/index.html   | 10 +++++-----
 .../06/15/release-apache-apisix-dashboard-2.7/index.html     | 10 +++++-----
 zh/events/2021/06/25/release-apache-apisix-2.7/index.html    | 10 +++++-----
 zh/events/index.html                                         | 10 +++++-----
 zh/events/page/2/index.html                                  | 10 +++++-----
 zh/help/index.html                                           | 10 +++++-----
 zh/index.html                                                | 10 +++++-----
 zh/search/index.html                                         | 10 +++++-----
 zh/team/index.html                                           | 10 +++++-----
 1450 files changed, 6994 insertions(+), 7000 deletions(-)

diff --git a/404.html b/404.html
index 3fd11d1..907c647 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.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.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/assets/js/19945770.1dde9ac6.js b/assets/js/19945770.1dde9ac6.js
new file mode 100644
index 0000000..ecf7553
--- /dev/null
+++ b/assets/js/19945770.1dde9ac6.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.ad41e01f.js b/assets/js/19945770.ad41e01f.js
deleted file mode 100644
index 0266ed0..0000000
--- a/assets/js/19945770.ad41e01f.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/3393d167.649b3555.js b/assets/js/3393d167.2c91caa6.js
similarity index 83%
rename from assets/js/3393d167.649b3555.js
rename to assets/js/3393d167.2c91caa6.js
index d569dab..85d49c7 100644
--- a/assets/js/3393d167.649b3555.js
+++ b/assets/js/3393d167.2c91caa6.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/zh/assets/js/601c6eaa.54e5ad47.js b/assets/js/358566b4.14f5294c.js
similarity index 69%
copy from zh/assets/js/601c6eaa.54e5ad47.js
copy to assets/js/358566b4.14f5294c.js
index 16b1fee..71bcaf3 100644
--- a/zh/assets/js/601c6eaa.54e5ad47.js
+++ b/assets/js/358566b4.14f5294c.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([[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 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.c4f60685.js b/assets/js/358566b4.c4f60685.js
deleted file mode 100644
index ae53ff8..0000000
--- a/assets/js/358566b4.c4f60685.js
+++ /dev/null
@@ -1 +0,0 @@
-(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.3d828fb3.js b/assets/js/3dc9f306.3d828fb3.js
new file mode 100644
index 0000000..d42634b
--- /dev/null
+++ b/assets/js/3dc9f306.3d828fb3.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[38393],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return l},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/3dc9f306.c745e53e.js b/assets/js/3dc9f306.c745e53e.js
deleted file mode 100644
index 61b7188..0000000
--- a/assets/js/3dc9f306.c745e53e.js
+++ /dev/null
@@ -1 +0,0 @@
-(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/zh/assets/js/601c6eaa.54e5ad47.js b/assets/js/40fb2fae.376c72bf.js
similarity index 68%
copy from zh/assets/js/601c6eaa.54e5ad47.js
copy to assets/js/40fb2fae.376c72bf.js
index 16b1fee..f7b534c 100644
--- a/zh/assets/js/601c6eaa.54e5ad47.js
+++ b/assets/js/40fb2fae.376c72bf.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([[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 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/40fb2fae.ab983ed4.js b/assets/js/40fb2fae.ab983ed4.js
deleted file mode 100644
index c724ce9..0000000
--- a/assets/js/40fb2fae.ab983ed4.js
+++ /dev/null
@@ -1 +0,0 @@
-(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.77c0a1a6.js b/assets/js/4c20006b.4d63211e.js
similarity index 72%
rename from assets/js/4c20006b.77c0a1a6.js
rename to assets/js/4c20006b.4d63211e.js
index 6cee89f..4f490b0 100644
--- a/assets/js/4c20006b.77c0a1a6.js
+++ b/assets/js/4c20006b.4d63211e.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 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/50facf8e.6408fc11.js b/assets/js/50facf8e.6408fc11.js
new file mode 100644
index 0000000..c5ffd96
--- /dev/null
+++ b/assets/js/50facf8e.6408fc11.js
@@ -0,0 +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
diff --git a/assets/js/50facf8e.7f110f1e.js b/assets/js/50facf8e.7f110f1e.js
deleted file mode 100644
index 8800f68..0000000
--- a/assets/js/50facf8e.7f110f1e.js
+++ /dev/null
@@ -1 +0,0 @@
-(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/542fd41f.40402d9c.js b/assets/js/542fd41f.40402d9c.js
new file mode 100644
index 0000000..67f3184
--- /dev/null
+++ b/assets/js/542fd41f.40402d9c.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[4316],{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/542fd41f.76546769.js b/assets/js/542fd41f.76546769.js
deleted file mode 100644
index f33adb0..0000000
--- a/assets/js/542fd41f.76546769.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunk=self.webpackChunk||[]).push([[4316],{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/601c6eaa.51303680.js b/assets/js/601c6eaa.3ccc0295.js
similarity index 69%
rename from assets/js/601c6eaa.51303680.js
rename to assets/js/601c6eaa.3ccc0295.js
index 2df256c..bbb0078 100644
--- a/assets/js/601c6eaa.51303680.js
+++ b/assets/js/601c6eaa.3ccc0295.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 s},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/66fbb9c2.5f4af35e.js b/assets/js/66fbb9c2.5f4af35e.js
deleted file mode 100644
index ef4edee..0000000
--- a/assets/js/66fbb9c2.5f4af35e.js
+++ /dev/null
@@ -1 +0,0 @@
-(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/66fbb9c2.6e5c7038.js b/assets/js/66fbb9c2.6e5c7038.js
new file mode 100644
index 0000000..02c38e8
--- /dev/null
+++ b/assets/js/66fbb9c2.6e5c7038.js
@@ -0,0 +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 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/7af3052c.c335919f.js b/assets/js/7af3052c.c335919f.js
deleted file mode 100644
index 693bc93..0000000
--- a/assets/js/7af3052c.c335919f.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.dc625ca8.js b/assets/js/7af3052c.dc625ca8.js
new file mode 100644
index 0000000..e077857
--- /dev/null
+++ b/assets/js/7af3052c.dc625ca8.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/8e784bf3.17d89684.js b/assets/js/8e784bf3.17d89684.js
deleted file mode 100644
index 0d8b18e..0000000
--- a/assets/js/8e784bf3.17d89684.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.bceceb6e.js b/assets/js/8e784bf3.bceceb6e.js
new file mode 100644
index 0000000..285b436
--- /dev/null
+++ b/assets/js/8e784bf3.bceceb6e.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/adbb350b.7a5ea1e4.js b/assets/js/adbb350b.7a5ea1e4.js
new file mode 100644
index 0000000..7ab0e08
--- /dev/null
+++ b/assets/js/adbb350b.7a5ea1e4.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/adbb350b.c9b4aa3d.js b/assets/js/adbb350b.c9b4aa3d.js
deleted file mode 100644
index 89bb1e4..0000000
--- a/assets/js/adbb350b.c9b4aa3d.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/zh/assets/js/601c6eaa.54e5ad47.js b/assets/js/d18db9b0.05b8ca20.js
similarity index 68%
copy from zh/assets/js/601c6eaa.54e5ad47.js
copy to assets/js/d18db9b0.05b8ca20.js
index 16b1fee..21781b9 100644
--- a/zh/assets/js/601c6eaa.54e5ad47.js
+++ b/assets/js/d18db9b0.05b8ca20.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([[17825],{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/d18db9b0.e654b66f.js b/assets/js/d18db9b0.e654b66f.js
deleted file mode 100644
index 376018e..0000000
--- a/assets/js/d18db9b0.e654b66f.js
+++ /dev/null
@@ -1 +0,0 @@
-(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/main.88f0d7c0.js b/assets/js/main.88f0d7c0.js
deleted file mode 100644
index e035660..0000000
--- a/assets/js/main.88f0d7c0.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/*! For license information please see main.88f0d7c0.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.bc8668b1.js b/assets/js/main.bc8668b1.js
new file mode 100644
index 0000000..bc9f5da
--- /dev/null
+++ b/assets/js/main.bc8668b1.js
@@ -0,0 +1,2 @@
+/*! For license information please see main.bc8668b1.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.9945377f.js.LICENSE.txt b/assets/js/main.bc8668b1.js.LICENSE.txt
similarity index 100%
rename from zh/assets/js/main.9945377f.js.LICENSE.txt
rename to assets/js/main.bc8668b1.js.LICENSE.txt
diff --git a/assets/js/runtime~main.31e8c9cc.js b/assets/js/runtime~main.1cb97c6c.js
similarity index 92%
rename from assets/js/runtime~main.31e8c9cc.js
rename to assets/js/runtime~main.1cb97c6c.js
index eacb501..9d0aecb 100644
--- a/assets/js/runtime~main.31e8c9cc.js
+++ b/assets/js/runtime~main.1cb97c6c.js
@@ -1 +1 @@
-!function(){"use strict";var e,c,a,f,d={},b={};function t(e){var c=b[e];if(void 0!==c)return c.exports;var a=b[e]={id:e,loaded:!1,exports:{}};return d[e].call(a.exports,a,a.exports,t),a.loaded=!0,a.exports}t.m=d,t.c=b,e=[],t.O=function(c,a,f,d){if(!a){var b=1/0;for(o=0;o<e.length;o++){a=e[o][0],f=e[o][1],d=e[o][2];for(var n=!0,r=0;r<a.length;r++)(!1&d||b>=d)&&Object.keys(t.O).every((function(e){return t.O[e](a[r])}))?a.splice(r--,1):(n=!1,d<b&&(b=d));n&&(e.splice(o--,1),c=f())}return c}d [...]
\ No newline at end of file
+!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/blog/2020/08/22/new-website/index.html b/blog/2020/08/22/new-website/index.html
index c4f4042..b3fe41c 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.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.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 14b6e11..9b10000 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 1df8fae..1d25103 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.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.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 6a5de85..cf78cfd 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.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.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 7f40668..bbcb5b6 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token string" style="color:#e3116c">&quot;headers&quot;</span><span class="token builtin class-name">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span> [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 cc360c0..77e389a 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.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.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 003f6b7..99a5f9b 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain">NAME                    CHART VERSION   APP VERSION     DESCRIPTION</span></div><div class="token-line" style="color:#393A34"><span class="token plain">apisix/apisix           </span><span class="token number" style="color:#36acaa">0.1</span><span class="token plain">.2           </span><span class="token number" style="color:#36acaa">2.1</span><span class="token plain">.0           A Helm chart </span>< [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">NAME: apisix-gw</span></div><div class="token-line" style="color:#393A34"><span class="token plain">LAST DEPLOYED: Fri Feb </span><span class="token number" style="color:#36acaa">19</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">11</span><span class="token plain">:34:14 </span><span class="token number" style="color:#36acaa">2021</span><span class="token plain">< [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 d6ce213..3ad0411 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.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.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 9d43d64..1fb323f 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.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.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 39ebc06..7d9c254 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 ed39f31..dbc65c7 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 2695a7d..bf71e99 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.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.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 0871a6b..f128c66 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.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.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 f3e7bb1..1d24134 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.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.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 0710300..1645124 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.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.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 24fd08f..cfc1b24 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain">import org.apache.apisix.plugin.runner.HttpRequest;</span></div><div class="token-line" style="color:#393A34"><span class="token plain">import org.apache.apisix.plugin.runner.HttpResponse;</span></div><div class="token-line" style="color:#393A34"><span class="token plain">import org.springframework.stereotype.Component;</span></div><div class="token-line" style="color:#393A34"><span class="token plain">i [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">@Component</span></div><div class="token-line" style="color:#393A34"><span class="token plain">public class TokenValidator implements PluginFilter {</span></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
@@ -35,7 +35,7 @@
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">        // token verification results</span></div><div class="token-line" style="color:#393A34"><span class="token plain">        if (!flag) {</span></div><div class="token-line" style="color:#393A34"><span class="token plain">            String rejected_code = (String) conf.get(&quot;rejected_code&quot;);</span></div><div class="token-line" style="color:#393A34"><span class="token plain">            res [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">        return chain.filter(request, response);</span></div><div class="token-line" style="color:#393A34"><span class="token plain">    }</span></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">    private Boolean validate(String token, String validate_url) {</span></div><div class="token-line" style="color:#393A34"><span class="token plain">        //TODO: improve the validation process</span></div><div class="token-line" style="color:#393A34"><span class="token plain">        return true;</span></div><div class="token-line" style="color:#393A34"><span class="token plain">    }</span></div><di [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 1cc9de6..088143a 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 在终端下测试是否代理成功:</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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">root@apisix:~$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://172.18.0.2:32763/get -H </span><span class="t [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/06/29/release-apache-apisix-2.7-en/index.html b/blog/2021/06/29/release-apache-apisix-2.7-en/index.html
index a371d14..5574ea1 100644
--- a/blog/2021/06/29/release-apache-apisix-2.7-en/index.html
+++ b/blog/2021/06/29/release-apache-apisix-2.7-en/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">Release Apache APISIX 2.7.0 | Apache APISIX®</title><meta data-react-helmet="true" property="og:title" content="Release Apache APISIX 2.7.0 | Apache APISIX®"><meta data-react-helmet="true" property="og:description" content="@Serendipity96, Apache APISIX contributor from Shenzhen Zhiliu Technology Co."><meta data-react-helmet="true" propert [...]
-<link rel="preload" href="/assets/js/runtime~main.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.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.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/06/29/release-apache-apisix-2.7/index.html b/blog/2021/06/29/release-apache-apisix-2.7/index.html
index d767ba7..e173a1c 100644
--- a/blog/2021/06/29/release-apache-apisix-2.7/index.html
+++ b/blog/2021/06/29/release-apache-apisix-2.7/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 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.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.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/06/30/etcd3-support-HTTP-access-perfectly/index.html b/blog/2021/06/30/etcd3-support-HTTP-access-perfectly/index.html
index f7a9476..31c086f 100644
--- a/blog/2021/06/30/etcd3-support-HTTP-access-perfectly/index.html
+++ b/blog/2021/06/30/etcd3-support-HTTP-access-perfectly/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">差之毫厘:etcd 3 完美支持 HTTP 访问? | Apache APISIX®</title><meta data-react-helmet="true" property="og:title" content="差之毫厘:etcd 3 完美支持 HTTP 访问? | 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="true" propert [...]
-<link rel="preload" href="/assets/js/runtime~main.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.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.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/07/06/celebrate-200-contributors/index.html b/blog/2021/07/06/celebrate-200-contributors/index.html
index 75f3b08..a8a82c2 100644
--- a/blog/2021/07/06/celebrate-200-contributors/index.html
+++ b/blog/2021/07/06/celebrate-200-contributors/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 has over 200 contributors in GitHub main repo! | Apache APISIX®</title><meta data-react-helmet="true" property="og:title" content="Apache APISIX has over 200 contributors in GitHub main repo! | Apache APISIX®"><meta data-react-helmet="true" property="og:description" content="@Serendipity96, Apache APISIX contributor from Shen [...]
-<link rel="preload" href="/assets/js/runtime~main.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 Welcome to join the Apache APISIX community, welcome to use Apache APISIX!</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="contributors-say"></a>Contributors Say<a class="hash-link" href="#contributors-say" title="Direct link to heading">#</a></h2><p>When reaching 200 contributors, the controbutors in the community sent their blessings to Apache APISIX. Here are what they want to say to Apache APISIX.</p><p><a href="https://github.com/juzhiyuan" target="_blank" rel="noopene [...]
 community activity</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="join-the-apache-apisix-community"></a>Join the Apache APISIX community<a class="hash-link" href="#join-the-apache-apisix-community" title="Direct link to heading">#</a></h2><p>Sincerely invite you to join the Apache APISIX open source community, let us work together to create the best API gateway in the cloud-native era!</p><p>There is no barrier to becoming an Apache APISIX contributor. In the Apache APISIX [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/07/14/the-road-to-customization-of-Sina-Weibo-API-gateway-based-on-Apache-APISIX/index.html b/blog/2021/07/14/the-road-to-customization-of-Sina-Weibo-API-gateway-based-on-Apache-APISIX/index.html
index 57701bc..041fdcd 100644
--- a/blog/2021/07/14/the-road-to-customization-of-Sina-Weibo-API-gateway-based-on-Apache-APISIX/index.html
+++ b/blog/2021/07/14/the-road-to-customization-of-Sina-Weibo-API-gateway-based-on-Apache-APISIX/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,新浪微博 API 网关的定制化开发之路 | Apache APISIX®</title><meta data-react-helmet="true" property="og:title" content="基于 Apache APISIX,新浪微博 API 网关的定制化开发之路 | Apache APISIX®"><meta data-react-helmet="true" property="og:description" content="聂永,微博基础架构师,开源爱好者,爱折腾追求 Geek。"><meta data-react-helmet="true" property="og:url" content="https://api [...]
-<link rel="preload" href="/assets/js/runtime~main.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.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.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/07/16/Analyze-Apache-APISIX-Mesh-Agent-deeply/index.html b/blog/2021/07/16/Analyze-Apache-APISIX-Mesh-Agent-deeply/index.html
index 9d2f5ca..9899233 100644
--- a/blog/2021/07/16/Analyze-Apache-APISIX-Mesh-Agent-deeply/index.html
+++ b/blog/2021/07/16/Analyze-Apache-APISIX-Mesh-Agent-deeply/index.html
@@ -15,17 +15,17 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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 Mesh Agent | Apache APISIX®</title><meta data-react-helmet="true" property="og:title" content="深度剖析 Apache APISIX Mesh Agent | 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># 转换成 Apache APISIX 的配置后:</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span> [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token comment" style="color:#999988;font-style:italic"># 该路由匹配时需要判断对应连接原始的目标地址是否是 &quot;10.0.5.113:8000&quot;,即</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token comment" style="color:#999988;font-style:italic"># httpbin.default.svc.cluster.local 这一服务的 ClusterIP(只考虑 Kubernetes</span><span  [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token string" style="color:#e3116c">&quot;vars&quot;</span><span class="token builtin class-name">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">[</span [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token comment" style="color:#999988;font-style:italic"># upstream_id 定义了 httpbin.default.svc.cluster.local 这一服务,</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token comment" style="color:#999988;font-style:italic"># 包含其最新的实例地址和其他相关的负载均衡、健康检查等配置。</span><span class="token plain"></span></div>< [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/07/27/use-of-plugin-orchestration-in-Apache-APISIX/index.html b/blog/2021/07/27/use-of-plugin-orchestration-in-Apache-APISIX/index.html
index e03d16a..593d1f7 100644
--- a/blog/2021/07/27/use-of-plugin-orchestration-in-Apache-APISIX/index.html
+++ b/blog/2021/07/27/use-of-plugin-orchestration-in-Apache-APISIX/index.html
@@ -15,19 +15,19 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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="@juzhiyuan, Apache APISIX PMC from Shenzhen Zhiliu Technology Co."><meta data-react-helmet="true" property="og:url" c [...]
-<link rel="preload" href="/assets/js/runtime~main.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token string" style="color:#e3116c"> {</span></div><div class="token-line" style="color:#393A34"><span class="token string" style="color:#e3116c">   &quot;uri&quot;: &quot;/get&quot;,</span></div><div class="token-line" style="color:#393A34"><span class="token string" style="color:#e3116c">   &quot;methods&quot;: [&quot;GET&quot;],</span></div><div class="token-line" style="color:#393A34"><span class="token string" s [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token string" style="color:#e3116c">&quot;script&quot;</span><span class="token builtin class-name">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;local _M = {} </span><span class="token string entity" style="color:#36acaa">\n</span><span class="token string" style="color:#e3116c"> function _M.access(api_ctx) </span><span class="toke [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</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="apache-apisix-dashboard"></a>Apache APISIX Dashboard<a class="hash-link" href="#apache-apisix-dashboard" title="Direct link to heading">#</a></h3><p>在 Das [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain">,</span></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token string" style="color:#e3116c">&quot;4-5-6&quot;</span><span class="token builtin class-name">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token string" style="color:#e3116c">&quot;n [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token string" style="color:#e3116c">&quot;rule&quot;</span><span class="token builtin class-name">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token string" style="color:#e3116c">&quot;root&q [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/index.html b/blog/index.html
index 4a3f441..b89d345 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.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.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 24d9e47..f4a5298 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.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.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/page/3/index.html b/blog/page/3/index.html
index 34383cb..d804644 100644
--- a/blog/page/3/index.html
+++ b/blog/page/3/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/3"><meta data-react-helmet="true" name="docsearch:language" co [...]
-<link rel="preload" href="/assets/js/runtime~main.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.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.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/FAQ/index.html b/docs/apisix/2.4/FAQ/index.html
index 25994d5..f0ca299 100644
--- a/docs/apisix/2.4/FAQ/index.html
+++ b/docs/apisix/2.4/FAQ/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 Run the <code>luarocks config rocks_servers</code> command(this command is supported after luarocks 3.0) to see which server are available.</p><p>If using a proxy doesn&#x27;t solve this problem, you can add <code>--verbose</code> option during installation to see exactly how slow it is. Excluding the first case, only the second that the <code>git</code> protocol is blocked. Then we can run <code>git config --global url.&quot;https://&quot;.insteadOf git://</code> to using the &#x27;HTTP [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> -i http://127.0.0.1:9080/apisix/admin/routes/2 -H </span><span class="token string" style="color:#e3116c">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><span class="token plain"> -X PUT -d </span><span class="token string" style="color:#e3116c">&#x27;</span></div><div class="token-line" style=" [...]
 <a href="https://github.com/iresty/lua-resty-radixtree#operator-list" target="_blank" rel="noopener noreferrer">https://github.com/iresty/lua-resty-radixtree#operator-list</a></p><ol start="2"><li>Use <code>traffic-split</code> plugin to do it.</li></ol><p>Please refer to the <a href="/docs/apisix/2.4/plugins/traffic-split">traffic-split.md</a> plugin documentation for usage examples.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="how-to-redirect-http-to-https-via-apisix"> [...]
@@ -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:#393A34"><span class="token string" style="color:#e3116c">These open issues may also help:</span></div><div class="token-line" style="color:#393A34"><span class="token string" style="color:#e3116c">Can&#x27;</span><span class="token plain">t </span><span class="token function" style="color:#d73a49">install</span><span class="token plain"> openresty on macOS </span><span class="token number" style="color:#36acaa">10.15</span><span class="t [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">Error: A newer Command Line Tools release is available.</span></div><div class="token-line" style="color:#393A34"><span class="token plain">Update them from Software Update </span><span class="token keyword" style="color:#00009f">in</span><span class="token plain"> System Preferences or</span></div><div class="token-line" style="color:#393A34"><span class="token plain">https://developer.apple.com/downloa [...]
 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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 e10674e..3b319ad 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.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.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 57822f0..11fa990 100644
--- a/docs/apisix/2.4/admin-api/index.html
+++ b/docs/apisix/2.4/admin-api/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:#36acaa">201</span><span class="token plain"> Created</span></div><div class="token-line" style="color:#393A34"><span class="token plain">Date: Sat, </span><span class="token number" style="color:#36acaa">31</span><span class="token plain"> Aug </span><span class="token number" style="color:#36acaa">2019</span><span class="token plain"> 01:17:15 GMT [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># Create a route expires after 60 seconds, then it&#x27;s deleted automatically</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/ro [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:#36acaa">201</span><span class="token plain"> Created</span></div><div class="token-line" style="color:#393A34"><span class="token plain">Date: Sat, </span><span class="token number" style="color:#36acaa">31</span><span class="token plain"> Aug </span><span class="token number" style="color:#36acaa">2019</span><span class="token plain"> 01:17:15 GMT [...]
@@ -79,7 +79,7 @@
 </span></div><div class="token-line" style="color:#393A34"><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:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token string" sty [...]
 </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:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&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:#e3116c">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><span class="token plain"></span></ [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 b1106c2..1d9aaf9 100644
--- a/docs/apisix/2.4/architecture-design/index.html
+++ b/docs/apisix/2.4/architecture-design/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">apisix</span><span class="token punctuation [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">etcd</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">host</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> < [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:#36acaa">201</span><span class="token plain"> Created</span></div><div class="token-line" style="color:#393A34"><span class="token plain">Date: Sat, </span><span class="token number" style="color:#36acaa">31</span><span class="token plain"> Aug </span><span class="token number" style="color:#36acaa">2019</span><span class="token plain"> 01:17:15 GMT [...]
@@ -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:#393A34"><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:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">hook_phase</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic"># Module Function List, Name: hook_phase</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 7cd538d..0881cc5 100644
--- a/docs/apisix/2.4/aws/index.html
+++ b/docs/apisix/2.4/aws/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">const</span><span class="token plain"> project </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">new</span><span class="token plain"> </span><span class="token class-name">AwsCdkTypeScriptApp</span><span class="token punctuation" style="color:#393A34 [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">project</span><span class="token punctuation" style="color:#393A34">.</span><span class="token method function property-access" style="color:#d73a49">synth</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span></div></div></div><button type="button" aria-label="Copy co [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">export</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">class</span><span class="token plain"> </span><span class="token class-name">ApiSixStack</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">extends</span><span class="token plain"> </span><span class="token class-n [...]
@@ -43,7 +43,7 @@
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">Non-authoritative answer:</span></div><div class="token-line" style="color:#393A34"><span class="token plain">Name:   apiSi-PhpSe-FOL2MM4TW7G8-09029e095ab36fcc.elb.us-west-2.amazonaws.com</span></div><div class="token-line" style="color:#393A34"><span class="token plain">Address: </span><span class="token number" style="color:#36acaa">44.224</span><span class="token plain">.124.213</span></div><div class [...]
 <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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 1c202e0..f256eea 100644
--- a/docs/apisix/2.4/batch-processor/index.html
+++ b/docs/apisix/2.4/batch-processor/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 When the batch_max_size is set to zero the processor will execute each entry immediately. Setting the batch max size more
 than 1 will start aggregating the entries until it reaches the max size or the timeout expires.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="configurations"></a>Configurations<a class="hash-link" href="#configurations" title="Direct link to heading">#</a></h2><p>The only mandatory parameter to create a batch processor is a function. The function will be executed when the batch reaches the max size
 or when the buffer duration exceeds.</p><table><thead><tr><th>Name</th><th>Requirement</th><th>Description</th></tr></thead><tbody><tr><td>id</td><td>optional</td><td>A unique identifier to identity the batch processor</td></tr><tr><td>batch_max_size</td><td>optional</td><td>Max size of each batch, default is 1000</td></tr><tr><td>inactive_timeout</td><td>optional</td><td>maximum age in seconds when the buffer will be flushed if inactive, default is 5s</td></tr><tr><td>buffer_duration</t [...]
@@ -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:#393A34"><span class="token plain">if batch_processor then</span></div><div class="token-line" style="color:#393A34"><span class="token plain">    batch_processor:push({hello=&#x27;world&#x27;})</span></div><div class="token-line" style="color:#393A34"><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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 4774b29..d0c4684 100644
--- a/docs/apisix/2.4/benchmark/index.html
+++ b/docs/apisix/2.4/benchmark/index.html
@@ -15,18 +15,18 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 which is the HTTP benchmarking tool.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="benchmark-test-for-reverse-proxy"></a>Benchmark Test for reverse proxy<a class="hash-link" href="#benchmark-test-for-reverse-proxy" title="Direct link to heading">#</a></h3><p>Only used APISIX as the reverse proxy server, with no logging, limit rate, or other plugins enabled,
 and the response size was 1KB.</p><h4><a aria-hidden="true" tabindex="-1" class="anchor" id="qps"></a>QPS<a class="hash-link" href="#qps" 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-1.jpg" width="70%" height="70%"><h4><a aria-hidden="true" tabindex="-1" class="anchor" id="latency"></a>Latency<a class="hash-link" href="#latency" tit [...]
 <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:#393A34;background-color:#f6f8fa"><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:#393A34;background-color:#f6f8fa"><div class="to [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 502d014..79c1e43 100644
--- a/docs/apisix/2.4/control-api/index.html
+++ b/docs/apisix/2.4/control-api/index.html
@@ -15,18 +15,18 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 the <code>control</code> section under <code>apisix</code> in <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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">apisix</span><span class="token punctuation" style="color:# [...]
 If a plugin adds such a control API, please refer to each plugin&#x27;s documentation for those APIs.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="plugin-independent-control-api"></a>Plugin independent Control API<a class="hash-link" href="#plugin-independent-control-api" title="Direct link to heading">#</a></h2><p>Here is the supported API:</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="get-v1schema"></a>GET /v1/schema<a class="hash-link" href="#get-v1sch [...]
 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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 cce60ef..67fe677 100644
--- a/docs/apisix/2.4/customize-nginx-configuration/index.html
+++ b/docs/apisix/2.4/customize-nginx-configuration/index.html
@@ -15,16 +15,16 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain">            location /ysec_status </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">                req_status_show;</span></div><div class="token-line" style="color:#393A34"><span class="token plain">                allow 127.0.0.1;</span></div><div class="token-line" style=" [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">        chunked_transfer_encoding on;</span></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">http_server_configuration_snippet</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">|</span><span class="token scalar string" style="color:#e3116c"></span></div><div class="token-line" style="color:#393A34"><span class="token scalar stri [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 7469bf2..7a8f331 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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></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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 4c83fee..fc19fd3 100644
--- a/docs/apisix/2.4/discovery/consul_kv/index.html
+++ b/docs/apisix/2.4/discovery/consul_kv/index.html
@@ -15,16 +15,16 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 <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:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">\</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">    -X PUT </span><span class="token punctuation" style="color:#393A34">\</span><span class="token plain"></span></div><div class=" [...]
 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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 f1fb915..8abfab8 100644
--- a/docs/apisix/2.4/discovery/index.html
+++ b/docs/apisix/2.4/discovery/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">function _M.nodes(service_name)</span></div><div class="token-line" style="color:#393A34"><span class="token plain">    ... ...</span></div><div class="token-line" style="color:#393A34"><span class="token plain">end</span></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
@@ -30,7 +30,7 @@
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:#36acaa">201</span><span class="token plain"> Created</span></div><div class="token-line" style="color:#393A34"><span class="token plain">Date: Sat, </span><span class="token number" style="color:#36acaa">31</span><span class="token plain"> Aug </span><span class="token number" style="color:#36acaa">2019</span><span class="token plain"> 01:17:15 GMT [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">{</span><span class="token string" style="color:#e3116c">&quot;node&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:#393A34">{</span><span class="token string" style="color:#e3116c">&quot;value&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:#393A34">{</span>< [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/2 -H </span><span class="token string" style="color:#e3116c">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><span class="token plain"> -X PUT -i -d </span><span class="token string" style="color:#e3116c">&#x27;</span></div><div class="token-line" style [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 0c8c27c..13548b7 100644
--- a/docs/apisix/2.4/dns/index.html
+++ b/docs/apisix/2.4/dns/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 via DNS. Therefore we can use this way to discover service directly.</p><p>First of all, we need to configure the address of DNS servers:</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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic" [...]
 DNS will return all records. For example, with upstream configuration:</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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span></div><div class="token-line" style="co [...]
 selection to do, to make the RR easier to read for humans (less
@@ -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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 144761f..886aea2 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,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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain">secret </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token builtin">bytes</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">&#x27;the shared secret key here&#x27;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span cl [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token builtin">hash</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> hmac</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">new</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">secret</span><span class="token punctuation" [...]
@@ -55,7 +55,7 @@
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">--to base64</span></div><div class="token-line" style="color:#393A34"><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:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># to lowercase hexits</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token builtin class-name">echo</span><span class="token plain"> -e </span><span class="token variable" style="color:#36acaa">$MESSAGE</span><span class="token plain"> </span [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># to base64</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token builtin class-name">echo</span><span class="token plain"> -e </span><span class="token variable" style="color:#36acaa">$MESSAGE</span><span class="token plain"> </span><span cla [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 26f6523..9443787 100644
--- a/docs/apisix/2.4/getting-started/index.html
+++ b/docs/apisix/2.4/getting-started/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 By the end of this guide, you will have a working APISIX setup and a new service which will route to a public API, which is secured by an API key.</p><p>The following GET endpoint will be used for the purpose of this tutorial. This will act as an echo endpoint and will return the parameters which are sent to the API.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly bash"><div tabindex="0" class="prism-code language-bash codeBlock_23N8 thin-scrollbar"><div class=" [...]
 For the quick start let&#x27;s use the docker based set up. To start the APISIX server, clone the following <a href="https://github.com/apache/apisix-docker" target="_blank" rel="noopener noreferrer">repository</a> and navigate to the example folder and execute the following commands.</p><p>This command will start the APISIX server and the admin API will be available in 9080 port (HTTPS port: 9443).</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly bash"><div tabi [...]
 After the docker containers have started visit the following link to check if you are getting a successful response.</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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">cu [...]
@@ -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 bash"><div tabindex="0" class="prism-code language-bash codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">``</span><span class="token variable" style="color:#36acaa">`</span>< [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 4dace7e..bbeb587 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 0f81c5d..f21b231 100644
--- a/docs/apisix/2.4/health-check/index.html
+++ b/docs/apisix/2.4/health-check/index.html
@@ -15,16 +15,16 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span> [...]
 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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 ba805ca..a8d1a7e 100644
--- a/docs/apisix/2.4/how-to-build/index.html
+++ b/docs/apisix/2.4/how-to-build/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># old luarocks not support the `lua-dir` parameter, you can remove this option</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">sudo</span><span class="token plain"> luarocks </span><span class="token funct [...]
 or we can stop APISIX server by command <code>make stop</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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"># init nginx config file and etcd</span><span class="token plain"></spa [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># start APISIX server</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">make</span><span class="token plain"> run</span></div><div class="token-line" style="color:#393A34"><span class="token plain" style=" [...]
@@ -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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">apisix</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span></div><div class="token- [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes?api_key</span><span class="token operator" style="color:#393A34">=</span><span class="token plain">abcdefghabcdefgh-invalid -i</span></div><div class="token-line" style="color:#393A34"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color: [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 546297b..34f6acd 100644
--- a/docs/apisix/2.4/https/index.html
+++ b/docs/apisix/2.4/https/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">if</span><span class="token plain"> </span><span class="token builtin">len</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">sys</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">argv</span><span class="token punctuation" style="color:#393A34">)</span><span clas [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># create Router object</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1 -H </span><span class="token string" style="color:#e [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># make a test</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
@@ -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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 99fc6c1..e68d5cf 100644
--- a/docs/apisix/2.4/install-dependencies/index.html
+++ b/docs/apisix/2.4/install-dependencies/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># add OpenResty source</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">sudo</span><span class="token plain"> yum </span><span class="token function" style="color:#d73a49">install</span><span class="token p [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># install OpenResty and some compilation tools</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">sudo</span><span class="token plain"> yum </span><span class="token function" style="color:#d73a49">install</s [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># install LuaRocks</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> https://raw.githubusercontent.com/apache/apisix/master/utils/linux-install-luarocks.sh -sL </span><s [...]
@@ -40,7 +40,7 @@
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># start etcd server</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">nohup</span><span class="token plain"> etcd </span><span class="token operator" style="color:#393A34">&amp;</span></div></div></div><butt [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># start etcd server</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">etcd </span><span class="token operator" style="color:#393A34">&amp;</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain" style="di [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># enable TLS for etcd server</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">etcd --cert-file</span><span class="token operator" style="color:#393A34">=</span><span class="token plain">/path/to/cert --key-file</span><span class="token operator" style="color:#393A [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 451b57e..bfae296 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">mtls</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">enable</span><span class="token punctuation" style="color:#393A34">:</span><span class="token pla [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 66e51df..365ddd6 100644
--- a/docs/apisix/2.4/plugin-develop/index.html
+++ b/docs/apisix/2.4/plugin-develop/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 needs to declare in <strong>apisix/cli/ngx_tpl.lua</strong>, for example :</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly nginx"><div tabindex="0" class="prism-code language-nginx codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">    lua_shared_dict plugin-limit-req     10m;</span></div><div class="token-line" style="color:#393A34 [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">    # for openid-connect plugin</span></div><div class="token-line" style="color:#393A34"><span class="token plain">    lua_shared_dict discovery             1m; # cache for discovery metadata documents</span></div><div class="token-line" style="color:#393A34"><span class="token plain">    lua_shared_dict jwks                  1m; # cache for JWKs</span></div><div class="token-line" style="color:#393A34" [...]
 the plugin is loaded.</p><p>Note : if the dependency of some plugin needs to be initialized when Nginx start, you may need to add logic to the initialization
@@ -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:#393A34"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">function _M.control_api()</span></div><div class="token-line" style="color:#393A34"><span class="token plain">    return {</span></div><div class="token-line" style="color:#393A34"><span class="token plain">        {</span></div><div class="token-line" style="color:#393A34"><span class="token plain">            methods = {&quot;GET&quot;},</span></div><div class="token-line" style="color:#393A34"><span c [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 83efa68..d573737 100644
--- a/docs/apisix/2.4/plugin-interceptors/index.html
+++ b/docs/apisix/2.4/plugin-interceptors/index.html
@@ -15,18 +15,18 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 plugins to protect them. To solve the problem, we add a new concept called &#x27;interceptors&#x27;
 to run rules to protect them.</p><p>Here is an example to limit the access of <code>/apisix/prometheus/metrics</code> (a route introduced via plugin prometheus)
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/plug [...]
 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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 e1cb4f4..fd7ce81 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">..</span><span class="token plain">. </span><span class="token punctuation" style="color:#393A34">..</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="disable-plugin"></a>D [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 c3b012b..ee7694e 100644
--- a/docs/apisix/2.4/plugins/authz-keycloak/index.html
+++ b/docs/apisix/2.4/plugins/authz-keycloak/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 UMA compliant Identity Server. Although, it&#x27;s developed working in conjunction with Keycloak it should work with any
 OAuth/OIDC and UMA compliant identity providers as well.</p><p>For more information on Keycloak, refer to <a href="https://www.keycloak.org/docs/latest/authorization_services" target="_blank" rel="noopener noreferrer">Keycloak Authorization Docs</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>Req [...]
 Keycloak&#x27;s discovery document for Authorization Services for the respective realm. This is the recommended
@@ -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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 f384a14..d4c582d 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0 [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 dc9fb67..f744a8f 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/ad [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 ac1fbe4..e4e974a 100644
--- a/docs/apisix/2.4/plugins/consumer-restriction/index.html
+++ b/docs/apisix/2.4/plugins/consumer-restriction/index.html
@@ -15,18 +15,18 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/consumers -H </span><span class="token string" style="color:#e3116c">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><span class="token plain"> -X PUT -i -d </span><span class="token string" style="color:#e3116c">&#x27;</span></div><div class="token-line" style= [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1 -H </span><span class="token string" style="color:#e3116c">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><span class="token plain"> -X PUT -d </span><span class="token string" style="color:#e3116c">&#x27;</span></div><div class="token-line" style="col [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/services/2 -H </span><span class="token string" style="color:#e3116c">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><span class="token plain"> -X PUT -d </span><span class="token string" style="color:#e3116c">&#x27;</span></div><div class="token-line" style="c [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1 -H </ [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 cd20e86..c7beea3 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 bd62b56..1fb5d45 100644
--- a/docs/apisix/2.4/plugins/dubbo-proxy/index.html
+++ b/docs/apisix/2.4/plugins/dubbo-proxy/index.html
@@ -15,18 +15,18 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1  -H </span><span class="token string" style="color:#e3116c">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><span class="token plain"> -X PUT -d </span><span class="token string" style="color:#e3116c">&#x27;</span></div><div class="token-line" style="co [...]
 They should provide the same result.</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 dubbo-proxy plugin on a route/service, 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">plugins</span><span class="token punctuation" style="color:#393A34">:</span><span class="token  [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 bc45822..f153c92 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://12 [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 6c765e7..56fa0aa 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">plugins</span><span class="token punctu [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 899cd0f..17739f2 100644
--- a/docs/apisix/2.4/plugins/fault-injection/index.html
+++ b/docs/apisix/2.4/plugins/fault-injection/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain">Fault Injection</span><span class="token operator" style="color:#393A34">!</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 200 and the response body is &quot;Fault Injection! &quot; indicate that the plugin is enabled.</p></blockquote><p>2: Enable the <code>fault-injection</code> plugin for a  [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">hello</span></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">real    0m3.034s</span></div><div class="token-line" style="color:#393A34"><span class="token plain">user    0m0.007s</span></div><div class="token-line" style="color:#393A34"><span class="token plain">sys     0m0.010s</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>Example 3: Enable the <code>fault-injection</code> plu [...]
@@ -41,7 +41,7 @@
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">Fault Injection</span><span class="token operator" style="color:#393A34">!</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="codeBlockContainer_K1bP" [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">Fault Injection</span><span class="token operator" style="color:#393A34">!</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_hGly shell" [...]
 </span></div><div class="token-line" style="color:#393A34"><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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 b32a0ff..5e199c2 100644
--- a/docs/apisix/2.4/plugins/grpc-transcode/index.html
+++ b/docs/apisix/2.4/plugins/grpc-transcode/index.html
@@ -15,16 +15,16 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">{</span><span class="token string" style="color:#e3116c">&quot;message&quot;</span><span class="token builtin class-name">:</span><span class="token string" style="color:#e3116c">&quot;Hello world&quot;</span><span class="token punctuation" style="color:#393A34">}</span></div></div></div><button type="button" aria-label="Copy code to clipboard" [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">{</span><span class="token string" style="color:#e3116c">&quot;workflowKey&quot;</span><span class="token builtin class-name">:</span><span class="token string" style="color:#e3116c">&quot;#2251799813685260&quot;</span><span class="token plain">,</span><span class="token string" style="color:#e3116c">&quot;workflowInstanceKey&quot;</span><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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/11 [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 aac57b8..67004f2 100644
--- a/docs/apisix/2.4/plugins/hmac-auth/index.html
+++ b/docs/apisix/2.4/plugins/hmac-auth/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain">secret </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token builtin">bytes</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">&#x27;my-secret-key&#x27;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token st [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token builtin">hash</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> hmac</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">new</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">secret</span><span class="token punctuation" [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># to lowercase base64</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">print</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">base64</span><span class="token punc [...]
@@ -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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0 [...]
 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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 70603e5..19b9008 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://12 [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 7bbafa4..c225d4a 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 fcbef25..089e974 100644
--- a/docs/apisix/2.4/plugins/ip-restriction/index.html
+++ b/docs/apisix/2.4/plugins/ip-restriction/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 whitelisting or blacklisting IP addresses. Single IPs, multiple IPs or ranges
 in CIDR notation like 10.10.10.0/24 can be used.</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>optional</td><td></td><td></td><td>List of IPs or CIDR ranges to whitelist.</td></tr><tr><td [...]
 together.</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>Creates a route or service object, and enable plugin <code>ip-restriction</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:#393A34;ba [...]
@@ -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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1 -H </ [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0 [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 6644712..3428553 100644
--- a/docs/apisix/2.4/plugins/jwt-auth/index.html
+++ b/docs/apisix/2.4/plugins/jwt-auth/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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><ol><li>set a consumer and config the value of the <code>jwt-auth</code> option</li></ol><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-she [...]
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/jwt-auth-2.png"></p><ol start="2"><li>add a Route or add a Service, and enable the <code>jwt-auth</code> plugin</li></ol><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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#39 [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ1c2VyLWtleSIsImV4cCI6MTU2NDA1MDgxMX0.Us8zh_4VjJXF-TmR5f8cif8mBU7SuefPlpxhH0jbPVI</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><h4><a aria-hidden="true" tabindex="-1" class="anchor" id="try-request-with-token"></a>try request with token<a class="hash-link" href="#try-reques [...]
@@ -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:#393A34"><span class="token plain"></span><span class="token operator" style="color:#393A34">&lt;</span><span class="token operator" style="color:#393A34">!</span><span class="token plain">DOCTYPE html</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token operator" style="color:#393A34">&lt [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0 [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 a963b25..71feed9 100644
--- a/docs/apisix/2.4/plugins/kafka-logger/index.html
+++ b/docs/apisix/2.4/plugins/kafka-logger/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 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>broker_list</td><td>object</td><td>required</td><td></td><td></td><td>An array of Kafka brokers.</td></tr><tr><td>kafk [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">abcdef</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div></li></ul><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="info"></a>Info<a class="hash-link" href="#info" title="Direct link to heading">#</a></h2><p>The <code>message</code> will write to the buffer first.
 It will send to the kafka server when the buffer exceed the <code>batch_max_size</code>,
@@ -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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class=" [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://12 [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 31e6fee..d41e76d 100644
--- a/docs/apisix/2.4/plugins/key-auth/index.html
+++ b/docs/apisix/2.4/plugins/key-auth/index.html
@@ -15,18 +15,18 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/key-auth-1.png"></p><p>Then add key-auth plugin:
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/key-auth-2.png"></p><ol start="2"><li>creates a route or service object, and enable plugin <code>key-auth</code>.</li></ol><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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:# [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.2:9080/index.html -H </span><span class="token string" style="color:#e3116c">&#x27;apikey: abcabcabc&#x27;</span><span class="token plain"> -i</span></div><div class="token-line" style="color:#393A34"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:#36acaa">40 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0 [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 4ef53cd..968c601 100644
--- a/docs/apisix/2.4/plugins/limit-conn/index.html
+++ b/docs/apisix/2.4/plugins/limit-conn/index.html
@@ -15,18 +15,18 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/limit-conn-1.png"></p><p>Then add limit-conn plugin:
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/limit-conn-2.png"></p><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><p>The parameters of the plugin enabled above indicate that only one concurrent request is allowed. When more than one concurrent request is received, will return <code>503</code> directly.</p><div class="codeB [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> -i http://127.0.0.1:9080/index.html?sleep</span><span class="token operator" style="color:#393A34">=</span><span class="token number" style="color:#36acaa">20</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token operator" [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1 -H </ [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 9f435c4..6f9bf29 100644
--- a/docs/apisix/2.4/plugins/limit-count/index.html
+++ b/docs/apisix/2.4/plugins/limit-count/index.html
@@ -15,19 +15,19 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/limit-count-1.png" alt="Add a router."></p><p>Then add limit-count plugin:
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/limit-count-2.png" alt="Add limit-count plugin."></p><p>If you need a cluster-level precision traffic limit, then we can do it with the redis server. The rate limit of the traffic will be shared between different APISIX nodes to limit the rate of cluster traffic.</p><p>Here is the example if we use single <code>redis</code> policy:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockConten [...]
 which mean the total number of requests and the remaining number of requests that can be sent:</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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:#36acaa">200</span><span c [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token operator" style="color:#393A34">&lt;</span><span class="token plain">html</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token operator" style="color:#393A34">&lt;</span><span class="token plain">head</span><span class="token ope [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1 -H </ [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 c9ee4e0..3d00b7b 100644
--- a/docs/apisix/2.4/plugins/limit-req/index.html
+++ b/docs/apisix/2.4/plugins/limit-req/index.html
@@ -15,16 +15,16 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">html</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1 -H </ [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 c29add3..d75c8ce 100644
--- a/docs/apisix/2.4/plugins/log-rotate/index.html
+++ b/docs/apisix/2.4/plugins/log-rotate/index.html
@@ -15,17 +15,17 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 When the number of log files exceeds the remaining number, the old files are automatically deleted.</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>interval</td><td>integer</td><td>required</td><td>60 * 60</td><td></td><td>How of [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ ll logs</span></div><div class="token-line" style="color:#393A [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">plugins</span><span class="token punctu [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">plugin_attr</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">log-rotate</span><span class="token punctuation" style="color:#393A34">:</span><span class=" [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 e38dffa..5af3feb 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">...</span><span class="token p [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 529d900..5d288cc 100644
--- a/docs/apisix/2.4/plugins/node-status/index.html
+++ b/docs/apisix/2.4/plugins/node-status/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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><ol><li>Configure <code>node-status</code> in the plugin list of the configuration file <code>conf/config.yaml</code>,
 then you can add this plugin in any route.</li></ol><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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">plugins:                          </span><span class="token comment" style="color:#999988;font-style:italic"># plugin list</span>< [...]
 And this plugin will not make any difference in future requests, so usually we don&#x27;t set this plugin when creating routes.</p><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><ol><li>Request with uri <code>/apisix/status</code></li></ol><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly sh"><div tabindex="0" class="prism-code language-sh codeBlo [...]
@@ -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 bash"><div tabindex="0" class="prism-code language-bash codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">plugins:                          </span><span class="token comment" style="color:#999988;font-style:italic"># plugin list</sp [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 3a19366..5c855ee 100644
--- a/docs/apisix/2.4/plugins/openid-connect/index.html
+++ b/docs/apisix/2.4/plugins/openid-connect/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 In this case, requests without a token or where the token is invalid are always rejected. This requires
 <code>bearer_only</code> be set to <code>true</code> and that either an introspection endpoint has been configured through
 <code>introspection_endpoint</code>, or that a public key has been configured through <code>public_key</code>. See the relevant
@@ -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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</sp [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 f78c26f..8a7dc7c 100644
--- a/docs/apisix/2.4/plugins/prometheus/index.html
+++ b/docs/apisix/2.4/plugins/prometheus/index.html
@@ -15,17 +15,17 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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-it"></a>How to enable it<a class="hash-link" href="#how-to-enable-it" title="Direct link to heading">#</a></h2><p><code>prometheus</code> plugin can be enable with empty table, because it doesn&#x27;t have
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1  -H </span><span class="token stri [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">scrape_configs</span><span class="token punctuation" style="color:#393A34">:</span><span class="token pl [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1  [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 7259030..f584959 100644
--- a/docs/apisix/2.4/plugins/proxy-cache/index.html
+++ b/docs/apisix/2.4/plugins/proxy-cache/index.html
@@ -15,18 +15,18 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><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 plugin is enabled.</p></blockquote><p>2: Verify that the data is cached, request the address above again:</p><div class="codeBlockContaine [...]
 </span></div><div class="token-line" style="color:#393A34"><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><p>Example 2: Customize the cache_zone parameter to <code>disk_cache_two</code></p><ol><li>Specify the cache area and other information in the <code>conf/config.yaml</code> file:</li></ol><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><div  [...]
 </span></div><div class="token-line" style="color:#393A34"><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:#393A34"><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:#393A34"><span class="token plain"></span><span class="token operator" style="color:#393A34">&lt;</span><span class="token plain">html</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token operator" style="color:#393A34">&lt;</span><span class="token plain">head</span><span class="token ope [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 3e9149b..505109b 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 cc49a81..0429a59 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1  -H  [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 7c2bd5a..78086db 100644
--- a/docs/apisix/2.4/plugins/redirect/index.html
+++ b/docs/apisix/2.4/plugins/redirect/index.html
@@ -15,16 +15,16 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">..</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 example of r [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1  -H  [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 8ae4325..b03e654 100644
--- a/docs/apisix/2.4/plugins/referer-restriction/index.html
+++ b/docs/apisix/2.4/plugins/referer-restriction/index.html
@@ -15,16 +15,16 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0 [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 c063a13..c8567d0 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/5  [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 89eafc8..037dd93 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/5  [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 3d0161a..ac20789 100644
--- a/docs/apisix/2.4/plugins/response-rewrite/index.html
+++ b/docs/apisix/2.4/plugins/response-rewrite/index.html
@@ -15,17 +15,17 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:#36acaa">200</span><span class="token plain"> OK</span></div><div class="token-line" style="color:#393A34"><span class="token plain">Date: Sat, </span><span class="token number" style="color:#36acaa">16</span><span class="token plain"> Nov </span><span class="token number" style="color:#36acaa">2019</span><span class="token plain"> 09:15:12 GMT</spa [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">{</span><span class="token string" style="color:#e3116c">&quot;code&quot;</span><span class="token builtin class-name">:</span><span class="token string" style="color:#e3116c">&quot;ok&quot;</span><span class="token plain">,</span><span class="token string" style="color:#e3116c">&quot;message&quot;</span><span class="token builtin class-name">: [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1  -H < [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 0c005ba..c768339 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.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.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 36b9c55..9619203 100644
--- a/docs/apisix/2.4/plugins/serverless/index.html
+++ b/docs/apisix/2.4/plugins/serverless/index.html
@@ -15,16 +15,16 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1  -H < [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 64b496e..fa32c43 100644
--- a/docs/apisix/2.4/plugins/skywalking/index.html
+++ b/docs/apisix/2.4/plugins/skywalking/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 The skywalking server can supports both http and grpc protocols. The APISIX client only support http protocols.</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>sample_ratio</td><td>number</td><td>required</td><td>1</td><td>[0.000 [...]
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/skywalking-1.png" alt=" ">\
 Then add skywalking plugin:\
@@ -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:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">import</span><span class="token plain"> </span><span class="token namespace" style="opacity:0.7">org</span><span class="token namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token namespace" style="opacity:0.7">springframework</span><span class="token namespace punctuation" style="opacity:0.7;color:#393A34">.</span><sp [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">/**</span></div><div class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"> * @author cyxinda</span></div><div class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"> * @create 2020-05-29 14:02</span></div><div class="token [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">agent.service_name</span><span class="token operator" style="color:#393A34">=</span><span class="token plain">yourservername</span>< [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 48c69fc..88b0c5e 100644
--- a/docs/apisix/2.4/plugins/sls-logger/index.html
+++ b/docs/apisix/2.4/plugins/sls-logger/index.html
@@ -15,16 +15,16 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://12 [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 aa1919b..2ae589a 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://12 [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 c772545..1ccf256 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://12 [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 27500f4..0c7860f 100644
--- a/docs/apisix/2.4/plugins/traffic-split/index.html
+++ b/docs/apisix/2.4/plugins/traffic-split/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain">hello </span><span class="token number" style="color:#36acaa">1980</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/index.html -i</span></div><div class="token-line" style="color:#393A34"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:#36acaa">200</span><span class="token plain"> OK</span></div><div class="token-line" style="color:#393A34"><span class="token plain"> [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">world </span><span class="token number" style="color:#36acaa">1981</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
@@ -34,7 +34,7 @@
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">world </span><span class="token number" style="color:#36acaa">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="color:#39 [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">hello </span><span class="token number" style="color:#36acaa">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 two <code> [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">hello </span><span class="token number" style="color:#36acaa">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 remove the  [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 499fa71..3b11eb2 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://12 [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 5a462d4..d96074f 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">..</span><span class="token plain">. </span><span class="token punctuation" style="color:#393A34">..</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="disable-plugin"></a>D [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 ecbd984..d957c84 100644
--- a/docs/apisix/2.4/plugins/wolf-rbac/index.html
+++ b/docs/apisix/2.4/plugins/wolf-rbac/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 The rbac feature is provided by <a href="https://github.com/iGeeky/wolf" target="_blank" rel="noopener noreferrer">wolf</a>. For more information about <code>wolf</code>, please refer to <a href="https://github.com/iGeeky/wolf" target="_blank" rel="noopener noreferrer">wolf documentation</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</t [...]
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/wolf-rbac-1.png"></p><p>Then add the wolf-rbac plugin to the consumer page:
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/wolf-rbac-2.png"></p><p>Notes: The <code>appid</code> filled in above needs to already exist in the wolf system.</p><ol><li>Add a <code>Route</code> or <code>Service</code> and enable the wolf-rbac plugin.</li></ol><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines [...]
@@ -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:#393A34"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:#36acaa">200</span><span class="token plain"> OK</span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">{</span><span class="token string" style="color:#e3116c">&quot;message&quot;</span><span class="token builtin class-name">:</span><span class="token string"  [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1  -H < [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 f47b1e8..330e440 100644
--- a/docs/apisix/2.4/plugins/zipkin/index.html
+++ b/docs/apisix/2.4/plugins/zipkin/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0 [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">    thisip, _ := GetLocalIP()</span></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
@@ -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:#393A34"><span class="token plain">    tracer := GetTracer(...)</span></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">    // use middleware to extract parentID from http header that injected by APISIX</span></div><div class="token-line" style="color:#393A34"><span class="token plain">    r.Use(func(c *gin.Context) {</span></div><div class="token-line" style="color:#393A34"><span class="token plain">        span := this.Tracer.Extract(b3.ExtractHTTP(c.Request))</span></div><div class="token-line" style="color:#393A34"><s [...]
 </span></div><div class="token-line" style="color:#393A34"><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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 86e1e35..4a8e357 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 b941fd2..134dd4b 100644
--- a/docs/apisix/2.4/profile/index.html
+++ b/docs/apisix/2.4/profile/index.html
@@ -15,19 +15,19 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 operating environments such as development environment and production environment. Certain configurations of these applications
 will definitely be different, such as the address of the configuration center.</p><p>If the configuration of all environments is placed in the same file, it is very difficult to manage. After receiving new
 requirements, we need to change the parameters in the configuration file to the development environment when developing 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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 c4a53a4..fbb71f9 100644
--- a/docs/apisix/2.4/router-radixtree/index.html
+++ b/docs/apisix/2.4/router-radixtree/index.html
@@ -15,17 +15,17 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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>/blog/bar/b</code>, <code>/blog/bar/c/d/e</code>, <code>/blog/bar</code> etc.</p><h4><a aria-hidden="true" tabindex="-1" class="anchor" id="3-match-priority"></a>3. Match priority<a class="hash-link" href="#3-match-priority" title="Direct link to heading">#</a></h4><p>Full match -&gt; Deep prefix matching.</p><p>Here are the rules:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly bash"><div tabindex="0" class="prism-code language-bash codeBlock_23N8 thin-sc [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1 -H </spa [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">graphql</span><span class="token punctuation" style="color:#393A34">:</span><span class=" [...]
 </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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 3bc43da..737217f 100644
--- a/docs/apisix/2.4/stand-alone/index.html
+++ b/docs/apisix/2.4/stand-alone/index.html
@@ -15,16 +15,16 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">routes</span><span class="token punctuation" style [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 43844a2..392001f 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">apisix</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span> [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 70ff211..3d35b1b 100644
--- a/docs/apisix/2.5/FAQ/index.html
+++ b/docs/apisix/2.5/FAQ/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 Run the <code>luarocks config rocks_servers</code> command(this command is supported after luarocks 3.0) to see which server are available.
 For China mainland users, you can use the <code>luarocks.cn</code> as the luarocks server.</p><p>We already provide a wrapper in the Makefile to simplify your job:</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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token assign-left variable"  [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> -i http://127.0.0.1:9080/apisix/admin/routes/2 -H </span><span class="token string" style="color:#e3116c">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><span class="token plain"> -X PUT -d </span><span class="token string" style="color:#e3116c">&#x27;</span></div><div class="token-line" style=" [...]
@@ -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:#393A34"><span class="token plain">Error: A newer Command Line Tools release is available.</span></div><div class="token-line" style="color:#393A34"><span class="token plain">Update them from Software Update </span><span class="token keyword" style="color:#00009f">in</span><span class="token plain"> System Preferences or</span></div><div class="token-line" style="color:#393A34"><span class="token plain">https://developer.apple.com/downloa [...]
 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:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># The uri match failed</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/12ab -i</span></div><div class="token-line" style="color:#393A34"><span cl [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 818bf07..238e183 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.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.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 71f0ec6..ac6e813 100644
--- a/docs/apisix/2.5/admin-api/index.html
+++ b/docs/apisix/2.5/admin-api/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:#36acaa">201</span><span class="token plain"> Created</span></div><div class="token-line" style="color:#393A34"><span class="token plain">Date: Sat, </span><span class="token number" style="color:#36acaa">31</span><span class="token plain"> Aug </span><span class="token number" style="color:#36acaa">2019</span><span class="token plain"> 01:17:15 GMT [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># Create a route expires after 60 seconds, then it&#x27;s deleted automatically</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/ro [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:#36acaa">201</span><span class="token plain"> Created</span></div><div class="token-line" style="color:#393A34"><span class="token plain">Date: Sat, </span><span class="token number" style="color:#36acaa">31</span><span class="token plain"> Aug </span><span class="token number" style="color:#36acaa">2019</span><span class="token plain"> 01:17:15 GMT [...]
@@ -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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><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:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&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:#e3116c">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><span class="token plain"></span></ [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 a663329..e8f8c49 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">apisix</span><span class="token punctuation [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">etcd</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">host</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> < [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 e36d4bf..39f2b14 100644
--- a/docs/apisix/2.5/architecture-design/consumer/index.html
+++ b/docs/apisix/2.5/architecture-design/consumer/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># Create a Router, set routing rules and enable plugin configuration</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1 -H < [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># Send a test request, the first two return to normal, did not reach the speed limit threshold</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/ [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/hello -H </span><span class="token string" style="color:#e3116c">&#x27;apikey: auth-one&#x27;</span><span class="token plain"> -I</span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">..</span><sp [...]
@@ -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:#393A34 [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;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:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/hello -H </span><span cl [...]
 </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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 114befb..e12ab47 100644
--- a/docs/apisix/2.5/architecture-design/debug-mode/index.html
+++ b/docs/apisix/2.5/architecture-design/debug-mode/index.html
@@ -15,16 +15,16 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><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:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">hook_phase</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic"># Module Function List, Name: hook_phase</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 b969690..934e1a8 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token pl [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 63505ba..204d15f 100644
--- a/docs/apisix/2.5/architecture-design/index.html
+++ b/docs/apisix/2.5/architecture-design/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">apisix</span><span class="token punctuation [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">etcd</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">host</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> < [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:#36acaa">201</span><span class="token plain"> Created</span></div><div class="token-line" style="color:#393A34"><span class="token plain">Date: Sat, </span><span class="token number" style="color:#36acaa">31</span><span class="token plain"> Aug </span><span class="token number" style="color:#36acaa">2019</span><span class="token plain"> 01:17:15 GMT [...]
@@ -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:#393A34"><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:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">hook_phase</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic"># Module Function List, Name: hook_phase</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 1d9f064..2d39aaa 100644
--- a/docs/apisix/2.5/architecture-design/plugin-config/index.html
+++ b/docs/apisix/2.5/architecture-design/plugin-config/index.html
@@ -15,16 +15,16 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"># create a plugin config</span><span class="token plain"> [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># bind it to route</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1 -H </span><span class="token string" style="color:#e31 [...]
 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 bash"><div tabindex="0" class="prism-code language-bash codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token punctuation" style="color [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 3244a05..f3f5878 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.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.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 7333400..ebe6624 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:#36acaa">201</span><span class="token plain"> Created</span></div><div class="token-line" style="color:#393A34"><span class="token plain">Date: Sat, </span><span class="token number" style="color:#36acaa">31</span><span class="token plain"> Aug </span><span class="token number" style="color:#36acaa">2019</span><span class="token plain"> 01:17:15 GMT [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">{</span><span class="token string" style="color:#e3116c">&quot;node&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:#393A34">{</span><span class="token string" style="color:#e3116c">&quot;value&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:#393A34">{</span>< [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 fb5ee0c..4197213 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.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.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 f23c6ff..e7bbb00 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.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.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 7c4ad44..63438f1 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;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:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/100 -H </span><span  [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/101 -H </span><span class="token string" style="color:#e3116c">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><span class="token plain"> -X PUT -d </span><span class="token string" style="color:#e3116c">&#x27;</span></div><div class="token-line" style="c [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 e7c8184..2ad997d 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.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.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 26d3ae6..186cfd7 100644
--- a/docs/apisix/2.5/aws/index.html
+++ b/docs/apisix/2.5/aws/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">const</span><span class="token plain"> project </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">new</span><span class="token plain"> </span><span class="token class-name">AwsCdkTypeScriptApp</span><span class="token punctuation" style="color:#393A34 [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">project</span><span class="token punctuation" style="color:#393A34">.</span><span class="token method function property-access" style="color:#d73a49">synth</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span></div></div></div><button type="button" aria-label="Copy co [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">export</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">class</span><span class="token plain"> </span><span class="token class-name">ApiSixStack</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">extends</span><span class="token plain"> </span><span class="token class-n [...]
@@ -43,7 +43,7 @@
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">Non-authoritative answer:</span></div><div class="token-line" style="color:#393A34"><span class="token plain">Name:   apiSi-PhpSe-FOL2MM4TW7G8-09029e095ab36fcc.elb.us-west-2.amazonaws.com</span></div><div class="token-line" style="color:#393A34"><span class="token plain">Address: </span><span class="token number" style="color:#36acaa">44.224</span><span class="token plain">.124.213</span></div><div class [...]
 <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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 b9bf2f2..8c68990 100644
--- a/docs/apisix/2.5/batch-processor/index.html
+++ b/docs/apisix/2.5/batch-processor/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 When the batch_max_size is set to zero the processor will execute each entry immediately. Setting the batch max size more
 than 1 will start aggregating the entries until it reaches the max size or the timeout expires.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="configurations"></a>Configurations<a class="hash-link" href="#configurations" title="Direct link to heading">#</a></h2><p>The only mandatory parameter to create a batch processor is a function. The function will be executed when the batch reaches the max size
 or when the buffer duration exceeds.</p><table><thead><tr><th>Name</th><th>Requirement</th><th>Description</th></tr></thead><tbody><tr><td>id</td><td>optional</td><td>A unique identifier to identity the batch processor</td></tr><tr><td>batch_max_size</td><td>optional</td><td>Max size of each batch, default is 1000</td></tr><tr><td>inactive_timeout</td><td>optional</td><td>maximum age in seconds when the buffer will be flushed if inactive, default is 5s</td></tr><tr><td>buffer_duration</t [...]
@@ -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:#393A34"><span class="token plain">if batch_processor then</span></div><div class="token-line" style="color:#393A34"><span class="token plain">    batch_processor:push({hello=&#x27;world&#x27;})</span></div><div class="token-line" style="color:#393A34"><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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 59c10d2..5b9a414 100644
--- a/docs/apisix/2.5/benchmark/index.html
+++ b/docs/apisix/2.5/benchmark/index.html
@@ -15,18 +15,18 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 which is the HTTP benchmarking tool.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="benchmark-test-for-reverse-proxy"></a>Benchmark Test for reverse proxy<a class="hash-link" href="#benchmark-test-for-reverse-proxy" title="Direct link to heading">#</a></h3><p>Only used APISIX as the reverse proxy server, with no logging, limit rate, or other plugins enabled,
 and the response size was 1KB.</p><h4><a aria-hidden="true" tabindex="-1" class="anchor" id="qps"></a>QPS<a class="hash-link" href="#qps" 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-1.jpg" alt="benchmark-1"></p><h4><a aria-hidden="true" tabindex="-1" class="anchor" id="latency"></a>Latency<a class="hash-link" href="#latency" tit [...]
 <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:#393A34;background-color:#f6f8fa"><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:#393A34;background-color:#f6f8fa"><div class="to [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 8d79440..88dd96e 100644
--- a/docs/apisix/2.5/control-api/index.html
+++ b/docs/apisix/2.5/control-api/index.html
@@ -15,18 +15,18 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 the <code>control</code> section under <code>apisix</code> in <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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">apisix</span><span class="token punctuation" style="color:# [...]
 If a plugin adds such a control API, please refer to each plugin&#x27;s documentation for those APIs.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="plugin-independent-control-api"></a>Plugin independent Control API<a class="hash-link" href="#plugin-independent-control-api" title="Direct link to heading">#</a></h2><p>Here is the supported API:</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="get-v1schema"></a>GET /v1/schema<a class="hash-link" href="#get-v1sch [...]
 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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 168c0c7..868e8c0 100644
--- a/docs/apisix/2.5/customize-nginx-configuration/index.html
+++ b/docs/apisix/2.5/customize-nginx-configuration/index.html
@@ -15,16 +15,16 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain">            location /ysec_status </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">                req_status_show;</span></div><div class="token-line" style="color:#393A34"><span class="token plain">                allow 127.0.0.1;</span></div><div class="token-line" style=" [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">        chunked_transfer_encoding on;</span></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">http_server_configuration_snippet</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">|</span><span class="token scalar string" style="color:#e3116c"></span></div><div class="token-line" style="color:#393A34"><span class="token scalar stri [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 70b102b..48fa8ba 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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></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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 04e1fa8..409023b 100644
--- a/docs/apisix/2.5/discovery/consul_kv/index.html
+++ b/docs/apisix/2.5/discovery/consul_kv/index.html
@@ -15,16 +15,16 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 <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:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">\</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">    -X PUT </span><span class="token punctuation" style="color:#393A34">\</span><span class="token plain"></span></div><div class=" [...]
 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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 10f5897..0d3693d 100644
--- a/docs/apisix/2.5/discovery/dns/index.html
+++ b/docs/apisix/2.5/discovery/dns/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 via DNS. Therefore we can use this way to discover service directly.</p><p>First of all, we need to configure the address of DNS servers:</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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic" [...]
 DNS will return all records. For example, with upstream configuration:</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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span></div><div class="token-line" style="co [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"> name  TTL         </span><span class="token builtin class-name">type</span><span class="token plain">    priority    weight  port</span></div><div class="token-line" style="color:#393A34"><span class="token plain">srv     </span><span class="token number" style="color:#36acaa">86400</span><span class="token pl [...]
@@ -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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 621f07b..7732fb4 100644
--- a/docs/apisix/2.5/discovery/index.html
+++ b/docs/apisix/2.5/discovery/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">function _M.nodes(service_name)</span></div><div class="token-line" style="color:#393A34"><span class="token plain">    ... ...</span></div><div class="token-line" style="color:#393A34"><span class="token plain">end</span></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
@@ -32,7 +32,7 @@
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:#36acaa">201</span><span class="token plain"> Created</span></div><div class="token-line" style="color:#393A34"><span class="token plain">Date: Sat, </span><span class="token number" style="color:#36acaa">31</span><span class="token plain"> Aug </span><span class="token number" style="color:#36acaa">2019</span><span class="token plain"> 01:17:15 GMT [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">{</span><span class="token string" style="color:#e3116c">&quot;node&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:#393A34">{</span><span class="token string" style="color:#e3116c">&quot;value&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:#393A34">{</span>< [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/2 -H </span><span class="token string" style="color:#e3116c">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><span class="token plain"> -X PUT -i -d </span><span class="token string" style="color:#e3116c">&#x27;</span></div><div class="token-line" style [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 702a356..e98e155 100644
--- a/docs/apisix/2.5/dns/index.html
+++ b/docs/apisix/2.5/dns/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 via DNS. Therefore we can use this way to discover service directly.</p><p>First of all, we need to configure the address of DNS servers:</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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic" [...]
 DNS will return all records. For example, with upstream configuration:</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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span></div><div class="token-line" style="co [...]
 selection to do, to make the RR easier to read for humans (less
@@ -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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 0c5a39e..d9951c8 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,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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain">secret </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token builtin">bytes</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">&#x27;the shared secret key here&#x27;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span cl [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token builtin">hash</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> hmac</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">new</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">secret</span><span class="token punctuation" [...]
@@ -55,7 +55,7 @@
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">--to base64</span></div><div class="token-line" style="color:#393A34"><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:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># to lowercase hexits</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token builtin class-name">echo</span><span class="token plain"> -e </span><span class="token variable" style="color:#36acaa">$MESSAGE</span><span class="token plain"> </span [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># to base64</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token builtin class-name">echo</span><span class="token plain"> -e </span><span class="token variable" style="color:#36acaa">$MESSAGE</span><span class="token plain"> </span><span cla [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 5825e8e..12d32d7 100644
--- a/docs/apisix/2.5/getting-started/index.html
+++ b/docs/apisix/2.5/getting-started/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 By the end of this guide, you will have a working APISIX setup and a new service which will route to a public API, which is secured by an API key.</p><p>The following GET endpoint will be used for the purpose of this tutorial. This will act as an echo endpoint and will return the parameters which are sent to the API.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly bash"><div tabindex="0" class="prism-code language-bash codeBlock_23N8 thin-scrollbar"><div class=" [...]
 For the quick start let&#x27;s use the docker based set up. To start the APISIX server, clone the following <a href="https://github.com/apache/apisix-docker" target="_blank" rel="noopener noreferrer">repository</a> and navigate to the example folder and execute the following commands.</p><p>This command will start the APISIX server and the admin API will be available in 9080 port (HTTPS port: 9443).</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly bash"><div tabi [...]
 After the docker containers have started visit the following link to check if you are getting a successful response.</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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">cu [...]
@@ -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 bash"><div tabindex="0" class="prism-code language-bash codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">``</span><span class="token variable" style="color:#36acaa">`</span>< [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 000ae30..05ef088 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 8a55d73..9f96de6 100644
--- a/docs/apisix/2.5/health-check/index.html
+++ b/docs/apisix/2.5/health-check/index.html
@@ -15,16 +15,16 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span> [...]
 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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 307b5a6..ac3ea06 100644
--- a/docs/apisix/2.5/how-to-build/index.html
+++ b/docs/apisix/2.5/how-to-build/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># old luarocks not support the `lua-dir` parameter, you can remove this option</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">sudo</span><span class="token plain"> luarocks </span><span class="token funct [...]
 or we can stop APISIX server by command <code>make stop</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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"># init nginx config file and etcd</span><span class="token plain"></spa [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># start APISIX server</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">make</span><span class="token plain"> run</span></div><div class="token-line" style="color:#393A34"><span class="token plain" style=" [...]
@@ -33,7 +33,7 @@ Here is an example:</p><div class="codeBlockContainer_K1bP"><div class="codeBloc
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes?api_key</span><span class="token operator" style="color:#393A34">=</span><span class="token plain">abcdefghabcdefgh-invalid -i</span></div><div class="token-line" style="color:#393A34"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color: [...]
 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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 755e48e..43c7684 100644
--- a/docs/apisix/2.5/https/index.html
+++ b/docs/apisix/2.5/https/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">if</span><span class="token plain"> </span><span class="token builtin">len</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">sys</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">argv</span><span class="token punctuation" style="color:#393A34">)</span><span clas [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># create Router object</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1 -H </span><span class="token string" style="color:#e [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># make a test</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
@@ -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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 fbfff3e..2c0d7cc 100644
--- a/docs/apisix/2.5/install-dependencies/index.html
+++ b/docs/apisix/2.5/install-dependencies/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># add OpenResty source</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">sudo</span><span class="token plain"> yum </span><span class="token function" style="color:#d73a49">install</span><span class="token p [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># install OpenResty and some compilation tools</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">sudo</span><span class="token plain"> yum </span><span class="token function" style="color:#d73a49">install</s [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># install LuaRocks</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> https://raw.githubusercontent.com/apache/apisix/master/utils/linux-install-luarocks.sh -sL </span><s [...]
@@ -40,7 +40,7 @@
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># start etcd server</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">nohup</span><span class="token plain"> etcd </span><span class="token operator" style="color:#393A34">&amp;</span></div></div></div><butt [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># start etcd server</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">brew services start etcd</span></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># enable TLS for etcd server</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">etcd --cert-file</span><span class="token operator" style="color:#393A34">=</span><span class="token plain">/path/to/cert --key-file</span><span class="token operator" style="color:#393A [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 2b80cf1..398c110 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">admin_api_mtls</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">admin_ssl_ca_cert</span><span class="token punctuation" style="color:#393A34">:</span>< [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 6afa00c..471dcce 100644
--- a/docs/apisix/2.5/plugin-develop/index.html
+++ b/docs/apisix/2.5/plugin-develop/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 needs to declare via <a href="/docs/apisix/2.5/customize-nginx-configuration">customizing Nginx configuration</a>, for 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"># put th [...]
 the plugin is loaded.</p><p>Note : if the dependency of some plugin needs to be initialized when Nginx start, you may need to add logic to the initialization
 method &quot;http_init&quot; in the file <strong>apisix/init.lua</strong>, and you may need to add some processing on generated part of Nginx
@@ -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:#393A34"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">function _M.control_api()</span></div><div class="token-line" style="color:#393A34"><span class="token plain">    return {</span></div><div class="token-line" style="color:#393A34"><span class="token plain">        {</span></div><div class="token-line" style="color:#393A34"><span class="token plain">            methods = {&quot;GET&quot;},</span></div><div class="token-line" style="color:#393A34"><span c [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 eabd561..e414db6 100644
--- a/docs/apisix/2.5/plugin-interceptors/index.html
+++ b/docs/apisix/2.5/plugin-interceptors/index.html
@@ -15,18 +15,18 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 plugins to protect them. To solve the problem, we add a new concept called &#x27;interceptors&#x27;
 to run rules to protect them.</p><p>Here is an example to limit the access of <code>/apisix/prometheus/metrics</code> (a route introduced via plugin prometheus)
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/plug [...]
 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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 5e33005..7beabc8 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">..</span><span class="token plain">. </span><span class="token punctuation" style="color:#393A34">..</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="disable-plugin"></a>D [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 7976180..546cd56 100644
--- a/docs/apisix/2.5/plugins/authz-keycloak/index.html
+++ b/docs/apisix/2.5/plugins/authz-keycloak/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 UMA compliant Identity Server. Although, it&#x27;s developed working in conjunction with Keycloak it should work with any
 OAuth/OIDC and UMA compliant identity providers as well.</p><p>For more information on Keycloak, refer to <a href="https://www.keycloak.org/docs/latest/authorization_services" target="_blank" rel="noopener noreferrer">Keycloak Authorization Docs</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>Req [...]
 Keycloak&#x27;s discovery document for Authorization Services for the respective realm. This is the recommended
@@ -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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 97c7f11..e46d8c9 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0 [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 a0ec1fb..5270874 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/ad [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 2f96c58..58576d3 100644
--- a/docs/apisix/2.5/plugins/consumer-restriction/index.html
+++ b/docs/apisix/2.5/plugins/consumer-restriction/index.html
@@ -15,18 +15,18 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/consumers -H </span><span class="token string" style="color:#e3116c">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><span class="token plain"> -X PUT -i -d </span><span class="token string" style="color:#e3116c">&#x27;</span></div><div class="token-line" style= [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1 -H </span><span class="token string" style="color:#e3116c">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><span class="token plain"> -X PUT -d </span><span class="token string" style="color:#e3116c">&#x27;</span></div><div class="token-line" style="col [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/services/2 -H </span><span class="token string" style="color:#e3116c">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><span class="token plain"> -X PUT -d </span><span class="token string" style="color:#e3116c">&#x27;</span></div><div class="token-line" style="c [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1 -H </ [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 5daafb9..a93587e 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 2068b93..41a6fe9 100644
--- a/docs/apisix/2.5/plugins/dubbo-proxy/index.html
+++ b/docs/apisix/2.5/plugins/dubbo-proxy/index.html
@@ -15,19 +15,19 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1  -H </span><span class="token string" style="color:#e3116c">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><span class="token plain"> -X PUT -d </span><span class="token string" style="color:#e3116c">&#x27;</span></div><div class="token-line" style="co [...]
 They should provide the same result.</p><p>The returned data from upstream dubbo service must be a <code>Map&lt;String, String&gt;</code>.</p><p>If the returned data is</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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token punctuation" styl [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">blahblah </span><span class="token comment" style="color:#999988;font-style:italic"># &quot;body&quot; will be the body</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  [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">plugins</span><span class="token punctuation" style="color:#393A34">:</span><span class="token  [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 d7c957a..30a8f4b 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://12 [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 f01c738..796b9d7 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">plugins</span><span class="token punctu [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 382eee2..1a23577 100644
--- a/docs/apisix/2.5/plugins/fault-injection/index.html
+++ b/docs/apisix/2.5/plugins/fault-injection/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain">Fault Injection</span><span class="token operator" style="color:#393A34">!</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 200 and the response body is &quot;Fault Injection! &quot; indicate that the plugin is enabled.</p></blockquote><p>2: Enable the <code>fault-injection</code> plugin for a  [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">hello</span></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">real    0m3.034s</span></div><div class="token-line" style="color:#393A34"><span class="token plain">user    0m0.007s</span></div><div class="token-line" style="color:#393A34"><span class="token plain">sys     0m0.010s</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>Example 3: Enable the <code>fault-injection</code> plu [...]
@@ -41,7 +41,7 @@
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">Fault Injection</span><span class="token operator" style="color:#393A34">!</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="codeBlockContainer_K1bP" [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">Fault Injection</span><span class="token operator" style="color:#393A34">!</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_hGly shell" [...]
 </span></div><div class="token-line" style="color:#393A34"><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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 ca0a79d..0d20801 100644
--- a/docs/apisix/2.5/plugins/grpc-transcode/index.html
+++ b/docs/apisix/2.5/plugins/grpc-transcode/index.html
@@ -15,16 +15,16 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">{</span><span class="token string" style="color:#e3116c">&quot;message&quot;</span><span class="token builtin class-name">:</span><span class="token string" style="color:#e3116c">&quot;Hello world&quot;</span><span class="token punctuation" style="color:#393A34">}</span></div></div></div><button type="button" aria-label="Copy code to clipboard" [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">{</span><span class="token string" style="color:#e3116c">&quot;workflowKey&quot;</span><span class="token builtin class-name">:</span><span class="token string" style="color:#e3116c">&quot;#2251799813685260&quot;</span><span class="token plain">,</span><span class="token string" style="color:#e3116c">&quot;workflowInstanceKey&quot;</span><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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/11 [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 508d72f..dda6dd1 100644
--- a/docs/apisix/2.5/plugins/hmac-auth/index.html
+++ b/docs/apisix/2.5/plugins/hmac-auth/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/hmac-auth-1.png"></p><p>Then add the hmac-auth plugin to the consumer page:
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/hmac-auth-2.png"></p><ol start="2"><li>add a Route or add a Service, and enable the <code>hmac-auth</code> plugin</li></ol><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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:# [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">secret </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token builtin">bytes</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">&#x27;my-secret-key&#x27;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token st [...]
@@ -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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0 [...]
 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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 348e99e..8cb7f34 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://12 [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 31ca593..741925f 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 8ca442b..abc3293 100644
--- a/docs/apisix/2.5/plugins/ip-restriction/index.html
+++ b/docs/apisix/2.5/plugins/ip-restriction/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 whitelisting or blacklisting IP addresses. Single IPs, multiple IPs or ranges
 in CIDR notation like 10.10.10.0/24 can be used.</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>optional</td><td></td><td></td><td>List of IPs or CIDR ranges to whitelist.</td></tr><tr><td [...]
 together.</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>Creates a route or service object, and enable plugin <code>ip-restriction</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:#393A34;ba [...]
@@ -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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1 -H </ [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0 [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 4a6c06f..3e091c9 100644
--- a/docs/apisix/2.5/plugins/jwt-auth/index.html
+++ b/docs/apisix/2.5/plugins/jwt-auth/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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><ol><li>set a consumer and config the value of the <code>jwt-auth</code> option</li></ol><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-she [...]
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/jwt-auth-2.png"></p><ol start="2"><li>add a Route or add a Service, and enable the <code>jwt-auth</code> plugin</li></ol><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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#39 [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ1c2VyLWtleSIsImV4cCI6MTU2NDA1MDgxMX0.Us8zh_4VjJXF-TmR5f8cif8mBU7SuefPlpxhH0jbPVI</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><h4><a aria-hidden="true" tabindex="-1" class="anchor" id="try-request-with-token"></a>try request with token<a class="hash-link" href="#try-reques [...]
@@ -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:#393A34"><span class="token plain"></span><span class="token operator" style="color:#393A34">&lt;</span><span class="token operator" style="color:#393A34">!</span><span class="token plain">DOCTYPE html</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token operator" style="color:#393A34">&lt [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0 [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 1699eb0..9cbd04b 100644
--- a/docs/apisix/2.5/plugins/kafka-logger/index.html
+++ b/docs/apisix/2.5/plugins/kafka-logger/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 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>broker_list</td><td>object</td><td>required</td><td></td><td></td><td>An array of Kafka brokers.</td></tr><tr><td>kafk [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">abcdef</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div></li></ul><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="info"></a>Info<a class="hash-link" href="#info" title="Direct link to heading">#</a></h2><p>The <code>message</code> will write to the buffer first.
 It will send to the kafka server when the buffer exceed the <code>batch_max_size</code>,
@@ -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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class=" [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://12 [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 8dfdf53..49c8809 100644
--- a/docs/apisix/2.5/plugins/key-auth/index.html
+++ b/docs/apisix/2.5/plugins/key-auth/index.html
@@ -15,18 +15,18 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/key-auth-1.png"></p><p>Then add key-auth plugin:
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/key-auth-2.png"></p><ol start="2"><li>creates a route or service object, and enable plugin <code>key-auth</code>.</li></ol><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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:# [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.2:9080/index.html -H </span><span class="token string" style="color:#e3116c">&#x27;apikey: abcabcabc&#x27;</span><span class="token plain"> -i</span></div><div class="token-line" style="color:#393A34"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:#36acaa">40 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0 [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 923e703..6bc321d 100644
--- a/docs/apisix/2.5/plugins/limit-conn/index.html
+++ b/docs/apisix/2.5/plugins/limit-conn/index.html
@@ -15,18 +15,18 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/limit-conn-1.png"></p><p>Then add limit-conn plugin:
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/limit-conn-2.png"></p><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><p>The parameters of the plugin enabled above indicate that only one concurrent request is allowed. When more than one concurrent request is received, will return <code>503</code> directly.</p><div class="codeB [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> -i http://127.0.0.1:9080/index.html?sleep</span><span class="token operator" style="color:#393A34">=</span><span class="token number" style="color:#36acaa">20</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token operator" [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1 -H </ [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 0a86245..516634d 100644
--- a/docs/apisix/2.5/plugins/limit-count/index.html
+++ b/docs/apisix/2.5/plugins/limit-count/index.html
@@ -15,19 +15,19 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/limit-count-1.png" alt="Add a router."></p><p>Then add limit-count plugin:
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/limit-count-2.png" alt="Add limit-count plugin."></p><p>If you need a cluster-level precision traffic limit, then we can do it with the redis server. The rate limit of the traffic will be shared between different APISIX nodes to limit the rate of cluster traffic.</p><p>Here is the example if we use single <code>redis</code> policy:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockConten [...]
 which mean the total number of requests and the remaining number of requests that can be sent:</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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:#36acaa">200</span><span c [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token operator" style="color:#393A34">&lt;</span><span class="token plain">html</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token operator" style="color:#393A34">&lt;</span><span class="token plain">head</span><span class="token ope [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1 -H </ [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 cebc4a5..e6e34d7 100644
--- a/docs/apisix/2.5/plugins/limit-req/index.html
+++ b/docs/apisix/2.5/plugins/limit-req/index.html
@@ -15,16 +15,16 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">html</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1 -H </ [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 f556a17..ba51924 100644
--- a/docs/apisix/2.5/plugins/log-rotate/index.html
+++ b/docs/apisix/2.5/plugins/log-rotate/index.html
@@ -15,17 +15,17 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 When the number of log files exceeds the remaining number, the old files are automatically deleted.</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>interval</td><td>integer</td><td>required</td><td>60 * 60</td><td></td><td>How of [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ ll logs</span></div><div class="token-line" style="color:#393A [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">plugins</span><span class="token punctu [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">plugin_attr</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">log-rotate</span><span class="token punctuation" style="color:#393A34">:</span><span class=" [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 3ec1ddc..2a423f6 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">...</span><span class="token p [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 b42f171..fe4544e 100644
--- a/docs/apisix/2.5/plugins/node-status/index.html
+++ b/docs/apisix/2.5/plugins/node-status/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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><ol><li>Configure <code>node-status</code> in the plugin list of the configuration file <code>conf/config.yaml</code>,
 then you can add this plugin in any route.</li></ol><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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">plugins:                          </span><span class="token comment" style="color:#999988;font-style:italic"># plugin list</span>< [...]
 And this plugin will not make any difference in future requests, so usually we don&#x27;t set this plugin when creating routes.</p><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><ol><li>Request with uri <code>/apisix/status</code></li></ol><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly sh"><div tabindex="0" class="prism-code language-sh codeBlo [...]
@@ -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 bash"><div tabindex="0" class="prism-code language-bash codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">plugins:                          </span><span class="token comment" style="color:#999988;font-style:italic"># plugin list</sp [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 df7f92a..866d19e 100644
--- a/docs/apisix/2.5/plugins/openid-connect/index.html
+++ b/docs/apisix/2.5/plugins/openid-connect/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 In this case, requests without a token or where the token is invalid are always rejected. This requires
 <code>bearer_only</code> be set to <code>true</code> and that either an introspection endpoint has been configured through
 <code>introspection_endpoint</code>, or that a public key has been configured through <code>public_key</code>. See the relevant
@@ -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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</sp [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 b925cfb..1afc3a1 100644
--- a/docs/apisix/2.5/plugins/prometheus/index.html
+++ b/docs/apisix/2.5/plugins/prometheus/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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-it"></a>How to enable it<a class="hash-link" href="#how-to-enable-it" title="Direct link to heading">#</a></h2><p><code>prometheus</code> plugin can be enable with empty table, because it doesn&#x27;t have
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1  -H </span><span class="token stri [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">scrape_configs</span><span class="token punctuation" style="color:#393A34">:</span><span class="token pl [...]
@@ -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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1  [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 2459e84..c1f350e 100644
--- a/docs/apisix/2.5/plugins/proxy-cache/index.html
+++ b/docs/apisix/2.5/plugins/proxy-cache/index.html
@@ -15,18 +15,18 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><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 plugin is enabled.</p></blockquote><p>2: Verify that the data is cached, request the address above again:</p><div class="codeBlockContaine [...]
 </span></div><div class="token-line" style="color:#393A34"><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><p>Example 2: Customize the cache_zone parameter to <code>disk_cache_two</code></p><ol><li>Specify the cache area and other information in the <code>conf/config.yaml</code> file:</li></ol><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><div  [...]
 </span></div><div class="token-line" style="color:#393A34"><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:#393A34"><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:#393A34"><span class="token plain"></span><span class="token operator" style="color:#393A34">&lt;</span><span class="token plain">html</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token operator" style="color:#393A34">&lt;</span><span class="token plain">head</span><span class="token ope [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 b6ef71d..b58b97a 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 1e5fe99..7b77813 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1  -H  [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 c82b925..4b0e6cc 100644
--- a/docs/apisix/2.5/plugins/redirect/index.html
+++ b/docs/apisix/2.5/plugins/redirect/index.html
@@ -15,16 +15,16 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">..</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 example of r [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1  -H  [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 d7d1eb6..79f34b6 100644
--- a/docs/apisix/2.5/plugins/referer-restriction/index.html
+++ b/docs/apisix/2.5/plugins/referer-restriction/index.html
@@ -15,16 +15,16 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0 [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 9edda04..34cd201 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/5  [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 2bfe37a..7968719 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/5  [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 711e585..a159653 100644
--- a/docs/apisix/2.5/plugins/response-rewrite/index.html
+++ b/docs/apisix/2.5/plugins/response-rewrite/index.html
@@ -15,17 +15,17 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:#36acaa">200</span><span class="token plain"> OK</span></div><div class="token-line" style="color:#393A34"><span class="token plain">Date: Sat, </span><span class="token number" style="color:#36acaa">16</span><span class="token plain"> Nov </span><span class="token number" style="color:#36acaa">2019</span><span class="token plain"> 09:15:12 GMT</spa [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">{</span><span class="token string" style="color:#e3116c">&quot;code&quot;</span><span class="token builtin class-name">:</span><span class="token string" style="color:#e3116c">&quot;ok&quot;</span><span class="token plain">,</span><span class="token string" style="color:#e3116c">&quot;message&quot;</span><span class="token builtin class-name">: [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1  -H < [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 c640708..cd0e33e 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.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.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 1aa06d7..b0a6533 100644
--- a/docs/apisix/2.5/plugins/serverless/index.html
+++ b/docs/apisix/2.5/plugins/serverless/index.html
@@ -15,16 +15,16 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1  -H < [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 09a0985..a83c8e2 100644
--- a/docs/apisix/2.5/plugins/skywalking/index.html
+++ b/docs/apisix/2.5/plugins/skywalking/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 The skywalking server can supports both http and grpc protocols. The APISIX client only support http protocols.</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>sample_ratio</td><td>number</td><td>required</td><td>1</td><td>[0.000 [...]
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/skywalking-1.png" alt=" ">\
 Then add skywalking plugin:\
@@ -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:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">import</span><span class="token plain"> </span><span class="token namespace" style="opacity:0.7">org</span><span class="token namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token namespace" style="opacity:0.7">springframework</span><span class="token namespace punctuation" style="opacity:0.7;color:#393A34">.</span><sp [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">/**</span></div><div class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"> * @author cyxinda</span></div><div class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"> * @create 2020-05-29 14:02</span></div><div class="token [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">agent.service_name</span><span class="token operator" style="color:#393A34">=</span><span class="token plain">yourservername</span>< [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 8606ff0..b5f062d 100644
--- a/docs/apisix/2.5/plugins/sls-logger/index.html
+++ b/docs/apisix/2.5/plugins/sls-logger/index.html
@@ -15,16 +15,16 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://12 [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 3a863f8..09d60fb 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://12 [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 acef24f..b93bda8 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://12 [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 5d6b223..23debdc 100644
--- a/docs/apisix/2.5/plugins/traffic-split/index.html
+++ b/docs/apisix/2.5/plugins/traffic-split/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 service_name, discovery_type, checks, retries, desc, scheme, labels, create_time and update_time. But you can use <code>weighted_upstreams.upstream_id</code> to bind the <code>upstream</code> object to achieve their functions.</p><p>The traffic-split plugin is mainly composed of two parts: <code>match</code> and <code>weighted_upstreams</code>. <code>match</code> is a custom conditional rule, and <code>weighted_upstreams</code> is upstream configuration information. If you configure <cod [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">hello </span><span class="token number" style="color:#36acaa">1980</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/index.html -i</span></div><div class="token-line" style="color:#393A34"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:#36acaa">200</span><span class="token plain"> OK</span></div><div class="token-line" style="color:#393A34"><span class="token plain"> [...]
@@ -35,7 +35,7 @@ service_name, discovery_type, checks, retries, desc, scheme, labels, create_time
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">world </span><span class="token number" style="color:#36acaa">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="color:#39 [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">hello </span><span class="token number" style="color:#36acaa">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 two <code> [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">hello </span><span class="token number" style="color:#36acaa">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 remove the  [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 476c163..32e65ac 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://12 [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 5925249..0bc6200 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">..</span><span class="token plain">. </span><span class="token punctuation" style="color:#393A34">..</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="disable-plugin"></a>D [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 ceb2d9e..72c6be9 100644
--- a/docs/apisix/2.5/plugins/wolf-rbac/index.html
+++ b/docs/apisix/2.5/plugins/wolf-rbac/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 The rbac feature is provided by <a href="https://github.com/iGeeky/wolf" target="_blank" rel="noopener noreferrer">wolf</a>. For more information about <code>wolf</code>, please refer to <a href="https://github.com/iGeeky/wolf" target="_blank" rel="noopener noreferrer">wolf documentation</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</t [...]
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/wolf-rbac-1.png"></p><p>Then add the wolf-rbac plugin to the consumer page:
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/wolf-rbac-2.png"></p><p>Notes: The <code>appid</code> filled in above needs to already exist in the wolf system.</p><ol><li>Add a <code>Route</code> or <code>Service</code> and enable the wolf-rbac plugin.</li></ol><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines [...]
@@ -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:#393A34"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:#36acaa">200</span><span class="token plain"> OK</span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">{</span><span class="token string" style="color:#e3116c">&quot;message&quot;</span><span class="token builtin class-name">:</span><span class="token string"  [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1  -H < [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 3e38738..79f0324 100644
--- a/docs/apisix/2.5/plugins/zipkin/index.html
+++ b/docs/apisix/2.5/plugins/zipkin/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0 [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">    thisip, _ := GetLocalIP()</span></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
@@ -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:#393A34"><span class="token plain">    tracer := GetTracer(...)</span></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">    // use middleware to extract parentID from http header that injected by APISIX</span></div><div class="token-line" style="color:#393A34"><span class="token plain">    r.Use(func(c *gin.Context) {</span></div><div class="token-line" style="color:#393A34"><span class="token plain">        span := this.Tracer.Extract(b3.ExtractHTTP(c.Request))</span></div><div class="token-line" style="color:#393A34"><s [...]
 </span></div><div class="token-line" style="color:#393A34"><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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 359ad82..d940e0c 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 d9ef21f..579727b 100644
--- a/docs/apisix/2.5/profile/index.html
+++ b/docs/apisix/2.5/profile/index.html
@@ -15,19 +15,19 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 operating environments such as development environment and production environment. Certain configurations of these applications
 will definitely be different, such as the address of the configuration center.</p><p>If the configuration of all environments is placed in the same file, it is very difficult to manage. After receiving new
 requirements, we need to change the parameters in the configuration file to the development environment when developing 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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 c82d1a6..28965a8 100644
--- a/docs/apisix/2.5/router-radixtree/index.html
+++ b/docs/apisix/2.5/router-radixtree/index.html
@@ -15,17 +15,17 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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>/blog/bar/b</code>, <code>/blog/bar/c/d/e</code>, <code>/blog/bar</code> etc.</p><h4><a aria-hidden="true" tabindex="-1" class="anchor" id="3-match-priority"></a>3. Match priority<a class="hash-link" href="#3-match-priority" title="Direct link to heading">#</a></h4><p>Full match -&gt; Deep prefix matching.</p><p>Here are the rules:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly bash"><div tabindex="0" class="prism-code language-bash codeBlock_23N8 thin-sc [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1 -H </spa [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">graphql</span><span class="token punctuation" style="color:#393A34">:</span><span class=" [...]
 </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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 9d920d3..7d2ccf6 100644
--- a/docs/apisix/2.5/stand-alone/index.html
+++ b/docs/apisix/2.5/stand-alone/index.html
@@ -15,16 +15,16 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">routes</span><span class="token punctuation" style [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 ffd79be..b201f1b 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">apisix</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span> [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 8ee10f7..00efc4a 100644
--- a/docs/apisix/2.6/FAQ/index.html
+++ b/docs/apisix/2.6/FAQ/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 Run the <code>luarocks config rocks_servers</code> command(this command is supported after luarocks 3.0) to see which server are available.
 For China mainland users, you can use the <code>luarocks.cn</code> as the luarocks server.</p><p>We already provide a wrapper in the Makefile to simplify your job:</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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token assign-left variable"  [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> -i http://127.0.0.1:9080/apisix/admin/routes/2 -H </span><span class="token string" style="color:#e3116c">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><span class="token plain"> -X PUT -d </span><span class="token string" style="color:#e3116c">&#x27;</span></div><div class="token-line" style=" [...]
@@ -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:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># The uri match failed</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/12ab -i</span></div><div class="token-line" style="color:#393A34"><span  [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:#36acaa">200</span><span class="token plain"> OK</span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">..</span><span class="token punctuation" style="color:#393A34">..</span><span class="token punctuation" style="color:#393A34">..</span></div></div></div><but [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 b585cee..13de5b8 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.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.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 af18244..c41e8bd 100644
--- a/docs/apisix/2.6/admin-api/index.html
+++ b/docs/apisix/2.6/admin-api/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:#36acaa">201</span><span class="token plain"> Created</span></div><div class="token-line" style="color:#393A34"><span class="token plain">Date: Sat, </span><span class="token number" style="color:#36acaa">31</span><span class="token plain"> Aug </span><span class="token number" style="color:#36acaa">2019</span><span class="token plain"> 01:17:15 GMT [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># Create a route expires after 60 seconds, then it&#x27;s deleted automatically</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/ro [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:#36acaa">201</span><span class="token plain"> Created</span></div><div class="token-line" style="color:#393A34"><span class="token plain">Date: Sat, </span><span class="token number" style="color:#36acaa">31</span><span class="token plain"> Aug </span><span class="token number" style="color:#36acaa">2019</span><span class="token plain"> 01:17:15 GMT [...]
@@ -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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><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:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&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:#e3116c">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><span class="token plain"></span></ [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 02c2d55..4102309 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">apisix</span><span class="token punctuation [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">etcd</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">host</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> < [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 e9c6944..a094f84 100644
--- a/docs/apisix/2.6/architecture-design/consumer/index.html
+++ b/docs/apisix/2.6/architecture-design/consumer/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># Create a Router, set routing rules and enable plugin configuration</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1 -H < [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># Send a test request, the first two return to normal, did not reach the speed limit threshold</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/ [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/hello -H </span><span class="token string" style="color:#e3116c">&#x27;apikey: auth-one&#x27;</span><span class="token plain"> -I</span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">..</span><sp [...]
@@ -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:#393A34 [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;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:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/hello -H </span><span cl [...]
 </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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 f76570f..61e5779 100644
--- a/docs/apisix/2.6/architecture-design/debug-mode/index.html
+++ b/docs/apisix/2.6/architecture-design/debug-mode/index.html
@@ -15,16 +15,16 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><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:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">hook_phase</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic"># Module Function List, Name: hook_phase</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 ea49622..b4a3d22 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token pl [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 ed09ec0..bfd15e5 100644
--- a/docs/apisix/2.6/architecture-design/index.html
+++ b/docs/apisix/2.6/architecture-design/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">apisix</span><span class="token punctuation [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">etcd</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">host</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> < [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:#36acaa">201</span><span class="token plain"> Created</span></div><div class="token-line" style="color:#393A34"><span class="token plain">Date: Sat, </span><span class="token number" style="color:#36acaa">31</span><span class="token plain"> Aug </span><span class="token number" style="color:#36acaa">2019</span><span class="token plain"> 01:17:15 GMT [...]
@@ -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:#393A34"><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:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">hook_phase</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic"># Module Function List, Name: hook_phase</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 4566c83..0d95b69 100644
--- a/docs/apisix/2.6/architecture-design/plugin-config/index.html
+++ b/docs/apisix/2.6/architecture-design/plugin-config/index.html
@@ -15,16 +15,16 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"># create a plugin config</span><span class="token plain"> [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># bind it to route</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1 -H </span><span class="token string" style="color:#e31 [...]
 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 bash"><div tabindex="0" class="prism-code language-bash codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token punctuation" style="color [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 2d7b2f5..b44f20d 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.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.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 fc5edf8..cad0f7f 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:#36acaa">201</span><span class="token plain"> Created</span></div><div class="token-line" style="color:#393A34"><span class="token plain">Date: Sat, </span><span class="token number" style="color:#36acaa">31</span><span class="token plain"> Aug </span><span class="token number" style="color:#36acaa">2019</span><span class="token plain"> 01:17:15 GMT [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">{</span><span class="token string" style="color:#e3116c">&quot;node&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:#393A34">{</span><span class="token string" style="color:#e3116c">&quot;value&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:#393A34">{</span>< [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 4eec44e..3d5a5a2 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.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.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 bd9eafd..e21b9d6 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.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.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 650a835..3433a49 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;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:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/100 -H </span><span  [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/101 -H </span><span class="token string" style="color:#e3116c">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><span class="token plain"> -X PUT -d </span><span class="token string" style="color:#e3116c">&#x27;</span></div><div class="token-line" style="c [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 c838aa5..e700fa2 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.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.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 2c3434a..c39010e 100644
--- a/docs/apisix/2.6/aws/index.html
+++ b/docs/apisix/2.6/aws/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">const</span><span class="token plain"> project </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">new</span><span class="token plain"> </span><span class="token class-name">AwsCdkTypeScriptApp</span><span class="token punctuation" style="color:#393A34 [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">project</span><span class="token punctuation" style="color:#393A34">.</span><span class="token method function property-access" style="color:#d73a49">synth</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span></div></div></div><button type="button" aria-label="Copy co [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">export</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">class</span><span class="token plain"> </span><span class="token class-name">ApiSixStack</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">extends</span><span class="token plain"> </span><span class="token class-n [...]
@@ -43,7 +43,7 @@
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">Non-authoritative answer:</span></div><div class="token-line" style="color:#393A34"><span class="token plain">Name:   apiSi-PhpSe-FOL2MM4TW7G8-09029e095ab36fcc.elb.us-west-2.amazonaws.com</span></div><div class="token-line" style="color:#393A34"><span class="token plain">Address: </span><span class="token number" style="color:#36acaa">44.224</span><span class="token plain">.124.213</span></div><div class [...]
 <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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 6b9732b..294061c 100644
--- a/docs/apisix/2.6/batch-processor/index.html
+++ b/docs/apisix/2.6/batch-processor/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 When the batch_max_size is set to zero the processor will execute each entry immediately. Setting the batch max size more
 than 1 will start aggregating the entries until it reaches the max size or the timeout expires.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="configurations"></a>Configurations<a class="hash-link" href="#configurations" title="Direct link to heading">#</a></h2><p>The only mandatory parameter to create a batch processor is a function. The function will be executed when the batch reaches the max size
 or when the buffer duration exceeds.</p><table><thead><tr><th>Name</th><th>Requirement</th><th>Description</th></tr></thead><tbody><tr><td>id</td><td>optional</td><td>A unique identifier to identity the batch processor</td></tr><tr><td>batch_max_size</td><td>optional</td><td>Max size of each batch, default is 1000</td></tr><tr><td>inactive_timeout</td><td>optional</td><td>maximum age in seconds when the buffer will be flushed if inactive, default is 5s</td></tr><tr><td>buffer_duration</t [...]
@@ -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:#393A34"><span class="token plain">if batch_processor then</span></div><div class="token-line" style="color:#393A34"><span class="token plain">    batch_processor:push({hello=&#x27;world&#x27;})</span></div><div class="token-line" style="color:#393A34"><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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 e23fc06..9c1e0de 100644
--- a/docs/apisix/2.6/benchmark/index.html
+++ b/docs/apisix/2.6/benchmark/index.html
@@ -15,18 +15,18 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 which is the HTTP benchmarking tool.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="benchmark-test-for-reverse-proxy"></a>Benchmark Test for reverse proxy<a class="hash-link" href="#benchmark-test-for-reverse-proxy" title="Direct link to heading">#</a></h3><p>Only used APISIX as the reverse proxy server, with no logging, limit rate, or other plugins enabled,
 and the response size was 1KB.</p><h4><a aria-hidden="true" tabindex="-1" class="anchor" id="qps"></a>QPS<a class="hash-link" href="#qps" 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-1.jpg" alt="benchmark-1"></p><h4><a aria-hidden="true" tabindex="-1" class="anchor" id="latency"></a>Latency<a class="hash-link" href="#latency" tit [...]
 <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:#393A34;background-color:#f6f8fa"><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:#393A34;background-color:#f6f8fa"><div class="to [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 38fd399..6f77d60 100644
--- a/docs/apisix/2.6/control-api/index.html
+++ b/docs/apisix/2.6/control-api/index.html
@@ -15,18 +15,18 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 the <code>control</code> section under <code>apisix</code> in <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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">apisix</span><span class="token punctuation" style="color:# [...]
 If a plugin adds such a control API, please refer to each plugin&#x27;s documentation for those APIs.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="plugin-independent-control-api"></a>Plugin independent Control API<a class="hash-link" href="#plugin-independent-control-api" title="Direct link to heading">#</a></h2><p>Here is the supported API:</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="get-v1schema"></a>GET /v1/schema<a class="hash-link" href="#get-v1sch [...]
 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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 de86c01..130a817 100644
--- a/docs/apisix/2.6/customize-nginx-configuration/index.html
+++ b/docs/apisix/2.6/customize-nginx-configuration/index.html
@@ -15,16 +15,16 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain">            location /ysec_status </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">                req_status_show;</span></div><div class="token-line" style="color:#393A34"><span class="token plain">                allow 127.0.0.1;</span></div><div class="token-line" style=" [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">        chunked_transfer_encoding on;</span></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">http_server_configuration_snippet</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">|</span><span class="token scalar string" style="color:#e3116c"></span></div><div class="token-line" style="color:#393A34"><span class="token scalar stri [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 7034cf4..253c3a4 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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></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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 cbc0cbb..0059b51 100644
--- a/docs/apisix/2.6/discovery/consul_kv/index.html
+++ b/docs/apisix/2.6/discovery/consul_kv/index.html
@@ -15,16 +15,16 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 <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:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">\</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">    -X PUT </span><span class="token punctuation" style="color:#393A34">\</span><span class="token plain"></span></div><div class=" [...]
 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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 2b51eb5..f89e030 100644
--- a/docs/apisix/2.6/discovery/dns/index.html
+++ b/docs/apisix/2.6/discovery/dns/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 via DNS. Therefore we can use this way to discover service directly.</p><p>First of all, we need to configure the address of DNS servers:</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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic" [...]
 DNS will return all records. For example, with upstream configuration:</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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span></div><div class="token-line" style="co [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"> name  TTL         </span><span class="token builtin class-name">type</span><span class="token plain">    priority    weight  port</span></div><div class="token-line" style="color:#393A34"><span class="token plain">srv     </span><span class="token number" style="color:#36acaa">86400</span><span class="token pl [...]
@@ -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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 7b4c3a5..2613b0d 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 2e4d1b8..7986d07 100644
--- a/docs/apisix/2.6/discovery/index.html
+++ b/docs/apisix/2.6/discovery/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">function _M.nodes(service_name)</span></div><div class="token-line" style="color:#393A34"><span class="token plain">    ... ...</span></div><div class="token-line" style="color:#393A34"><span class="token plain">end</span></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
@@ -32,7 +32,7 @@
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:#36acaa">201</span><span class="token plain"> Created</span></div><div class="token-line" style="color:#393A34"><span class="token plain">Date: Sat, </span><span class="token number" style="color:#36acaa">31</span><span class="token plain"> Aug </span><span class="token number" style="color:#36acaa">2019</span><span class="token plain"> 01:17:15 GMT [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">{</span><span class="token string" style="color:#e3116c">&quot;node&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:#393A34">{</span><span class="token string" style="color:#e3116c">&quot;value&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:#393A34">{</span>< [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/2 -H </span><span class="token string" style="color:#e3116c">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><span class="token plain"> -X PUT -i -d </span><span class="token string" style="color:#e3116c">&#x27;</span></div><div class="token-line" style [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 21b56d3..59e5a62 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.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.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 fb13315..6905f49 100644
--- a/docs/apisix/2.6/dns/index.html
+++ b/docs/apisix/2.6/dns/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 via DNS. Therefore we can use this way to discover service directly.</p><p>First of all, we need to configure the address of DNS servers:</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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic" [...]
 DNS will return all records. For example, with upstream configuration:</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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span></div><div class="token-line" style="co [...]
 selection to do, to make the RR easier to read for humans (less
@@ -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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 0731bc8..06d2d75 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,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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain">secret </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token builtin">bytes</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">&#x27;the shared secret key here&#x27;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span cl [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token builtin">hash</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> hmac</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">new</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">secret</span><span class="token punctuation" [...]
@@ -55,7 +55,7 @@
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">--to base64</span></div><div class="token-line" style="color:#393A34"><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:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># to lowercase hexits</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token builtin class-name">echo</span><span class="token plain"> -e </span><span class="token variable" style="color:#36acaa">$MESSAGE</span><span class="token plain"> </span [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># to base64</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token builtin class-name">echo</span><span class="token plain"> -e </span><span class="token variable" style="color:#36acaa">$MESSAGE</span><span class="token plain"> </span><span cla [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 310a960..bf9ea9a 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> </span><span class="token string" style="color [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 2cea25e..b082de3 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 30a16d5..1b9b759 100644
--- a/docs/apisix/2.6/health-check/index.html
+++ b/docs/apisix/2.6/health-check/index.html
@@ -15,17 +15,17 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 you can use it for upstream.</p><p>Note:</p><ul><li>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.</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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127 [...]
 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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 10ae1cc..bca4468 100644
--- a/docs/apisix/2.6/how-to-build/index.html
+++ b/docs/apisix/2.6/how-to-build/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 or we can stop APISIX server by command <code>make stop</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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"># init nginx config file and etcd</span><span class="token plain"></spa [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># start APISIX server</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">make</span><span class="token plain"> run</span></div><div class="token-line" style="color:#393A34"><span class="token plain" style=" [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># stop APISIX server</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">make</span><span class="token plain"> stop</span></div><div class="token-line" style="color:#393A34"><span class="token plain" style=" [...]
@@ -33,7 +33,7 @@ Here is an example:</p><div class="codeBlockContainer_K1bP"><div class="codeBloc
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes?api_key</span><span class="token operator" style="color:#393A34">=</span><span class="token plain">abcdefghabcdefgh-invalid -i</span></div><div class="token-line" style="color:#393A34"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color: [...]
 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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 a4367ef..8a1c804 100644
--- a/docs/apisix/2.6/https/index.html
+++ b/docs/apisix/2.6/https/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">if</span><span class="token plain"> </span><span class="token builtin">len</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">sys</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">argv</span><span class="token punctuation" style="color:#393A34">)</span><span clas [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># create Router object</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1 -H </span><span class="token string" style="color:#e [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># make a test</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
@@ -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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 8958618..bdc79ad 100644
--- a/docs/apisix/2.6/install-dependencies/index.html
+++ b/docs/apisix/2.6/install-dependencies/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># add OpenResty source</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">sudo</span><span class="token plain"> yum </span><span class="token function" style="color:#d73a49">install</span><span class="token p [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># install OpenResty and some compilation tools</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">sudo</span><span class="token plain"> yum </span><span class="token function" style="color:#d73a49">install</s [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># install LuaRocks</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> https://raw.githubusercontent.com/apache/apisix/master/utils/linux-install-luarocks.sh -sL </span><s [...]
@@ -40,7 +40,7 @@
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># start etcd server</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">nohup</span><span class="token plain"> etcd </span><span class="token operator" style="color:#393A34">&amp;</span></div></div></div><butt [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># start etcd server</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">brew services start etcd</span></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># enable TLS for etcd server</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">etcd --cert-file</span><span class="token operator" style="color:#393A34">=</span><span class="token plain">/path/to/cert --key-file</span><span class="token operator" style="color:#393A [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 a2625bb..9af93f0 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">admin_api_mtls</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">admin_ssl_ca_cert</span><span class="token punctuation" style="color:#393A34">:</span>< [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 ed0d5a8..dcaf694 100644
--- a/docs/apisix/2.6/plugin-develop/index.html
+++ b/docs/apisix/2.6/plugin-develop/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 needs to declare via <a href="/docs/apisix/2.6/customize-nginx-configuration">customizing Nginx configuration</a>, for 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"># put th [...]
 the plugin is loaded.</p><p>Note : if the dependency of some plugin needs to be initialized when Nginx start, you may need to add logic to the initialization
 method &quot;http_init&quot; in the file <strong>apisix/init.lua</strong>, and you may need to add some processing on generated part of Nginx
@@ -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:#393A34"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">function _M.control_api()</span></div><div class="token-line" style="color:#393A34"><span class="token plain">    return {</span></div><div class="token-line" style="color:#393A34"><span class="token plain">        {</span></div><div class="token-line" style="color:#393A34"><span class="token plain">            methods = {&quot;GET&quot;},</span></div><div class="token-line" style="color:#393A34"><span c [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 bcafa5c..4a3aef2 100644
--- a/docs/apisix/2.6/plugin-interceptors/index.html
+++ b/docs/apisix/2.6/plugin-interceptors/index.html
@@ -15,18 +15,18 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 plugins to protect them. To solve the problem, we add a new concept called &#x27;interceptors&#x27;
 to run rules to protect them.</p><p>Here is an example to limit the access of <code>/apisix/prometheus/metrics</code> (a route introduced via plugin prometheus)
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/plug [...]
 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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 035de9d..59da3ff 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">..</span><span class="token plain">. </span><span class="token punctuation" style="color:#393A34">..</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="disable-plugin"></a>D [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 198ec02..7014eeb 100644
--- a/docs/apisix/2.6/plugins/authz-keycloak/index.html
+++ b/docs/apisix/2.6/plugins/authz-keycloak/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 UMA compliant Identity Server. Although, it&#x27;s developed working in conjunction with Keycloak it should work with any
 OAuth/OIDC and UMA compliant identity providers as well.</p><p>For more information on Keycloak, refer to <a href="https://www.keycloak.org/docs/latest/authorization_services" target="_blank" rel="noopener noreferrer">Keycloak Authorization Docs</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>Req [...]
 Keycloak&#x27;s discovery document for Authorization Services for the respective realm. This is the recommended
@@ -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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 5644de3..32c0cad 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0 [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 c8b8cea..573591b 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/ad [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 7d24433..867413b 100644
--- a/docs/apisix/2.6/plugins/consumer-restriction/index.html
+++ b/docs/apisix/2.6/plugins/consumer-restriction/index.html
@@ -15,18 +15,18 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/consumers -H </span><span class="token string" style="color:#e3116c">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><span class="token plain"> -X PUT -i -d </span><span class="token string" style="color:#e3116c">&#x27;</span></div><div class="token-line" style= [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1 -H </span><span class="token string" style="color:#e3116c">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><span class="token plain"> -X PUT -d </span><span class="token string" style="color:#e3116c">&#x27;</span></div><div class="token-line" style="col [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/services/2 -H </span><span class="token string" style="color:#e3116c">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><span class="token plain"> -X PUT -d </span><span class="token string" style="color:#e3116c">&#x27;</span></div><div class="token-line" style="c [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1 -H </ [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 116a397..8abc538 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 847ebb3..6d1b606 100644
--- a/docs/apisix/2.6/plugins/dubbo-proxy/index.html
+++ b/docs/apisix/2.6/plugins/dubbo-proxy/index.html
@@ -15,19 +15,19 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1  -H </span><span class="token string" style="color:#e3116c">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><span class="token plain"> -X PUT -d </span><span class="token string" style="color:#e3116c">&#x27;</span></div><div class="token-line" style="co [...]
 They should provide the same result.</p><p>The returned data from upstream dubbo service must be a <code>Map&lt;String, String&gt;</code>.</p><p>If the returned data is</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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token punctuation" styl [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">blahblah </span><span class="token comment" style="color:#999988;font-style:italic"># &quot;body&quot; will be the body</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  [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">plugins</span><span class="token punctuation" style="color:#393A34">:</span><span class="token  [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 30efeba..928b0d7 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://12 [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 57b8a9f..1f617b1 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">plugins</span><span class="token punctu [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 22eaaa8..3ae0193 100644
--- a/docs/apisix/2.6/plugins/fault-injection/index.html
+++ b/docs/apisix/2.6/plugins/fault-injection/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain">Fault Injection</span><span class="token operator" style="color:#393A34">!</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 200 and the response body is &quot;Fault Injection! &quot; indicate that the plugin is enabled.</p></blockquote><p>2: Enable the <code>fault-injection</code> plugin for a  [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">hello</span></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">real    0m3.034s</span></div><div class="token-line" style="color:#393A34"><span class="token plain">user    0m0.007s</span></div><div class="token-line" style="color:#393A34"><span class="token plain">sys     0m0.010s</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>Example 3: Enable the <code>fault-injection</code> plu [...]
@@ -41,7 +41,7 @@
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">Fault Injection</span><span class="token operator" style="color:#393A34">!</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="codeBlockContainer_K1bP" [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">Fault Injection</span><span class="token operator" style="color:#393A34">!</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_hGly shell" [...]
 </span></div><div class="token-line" style="color:#393A34"><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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 8d55d21..74dbebe 100644
--- a/docs/apisix/2.6/plugins/grpc-transcode/index.html
+++ b/docs/apisix/2.6/plugins/grpc-transcode/index.html
@@ -15,16 +15,16 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">{</span><span class="token string" style="color:#e3116c">&quot;message&quot;</span><span class="token builtin class-name">:</span><span class="token string" style="color:#e3116c">&quot;Hello world&quot;</span><span class="token punctuation" style="color:#393A34">}</span></div></div></div><button type="button" aria-label="Copy code to clipboard" [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">{</span><span class="token string" style="color:#e3116c">&quot;workflowKey&quot;</span><span class="token builtin class-name">:</span><span class="token string" style="color:#e3116c">&quot;#2251799813685260&quot;</span><span class="token plain">,</span><span class="token string" style="color:#e3116c">&quot;workflowInstanceKey&quot;</span><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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/11 [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 232ca27..73b13d1 100644
--- a/docs/apisix/2.6/plugins/hmac-auth/index.html
+++ b/docs/apisix/2.6/plugins/hmac-auth/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/hmac-auth-1.png"></p><p>Then add the hmac-auth plugin to the consumer page:
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/hmac-auth-2.png"></p><ol start="2"><li>add a Route or add a Service, and enable the <code>hmac-auth</code> plugin</li></ol><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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:# [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">secret </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token builtin">bytes</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">&#x27;my-secret-key&#x27;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token st [...]
@@ -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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0 [...]
 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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 1dd2b6e..8d33f6a 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://12 [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 ac518af..57da0e2 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 6d37aa8..05904cf 100644
--- a/docs/apisix/2.6/plugins/ip-restriction/index.html
+++ b/docs/apisix/2.6/plugins/ip-restriction/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 whitelisting or blacklisting IP addresses. Single IPs, multiple IPs or ranges
 in CIDR notation like 10.10.10.0/24 can be used.</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>optional</td><td></td><td></td><td>List of IPs or CIDR ranges to whitelist.</td></tr><tr><td [...]
 together.</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>Creates a route or service object, and enable plugin <code>ip-restriction</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:#393A34;ba [...]
@@ -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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1 -H </ [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0 [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 ee1ca26..eb5064c 100644
--- a/docs/apisix/2.6/plugins/jwt-auth/index.html
+++ b/docs/apisix/2.6/plugins/jwt-auth/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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><ol><li>set a consumer and config the value of the <code>jwt-auth</code> option</li></ol><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-she [...]
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/jwt-auth-2.png"></p><ol start="2"><li>Create a Route or Service object and enable the jwt-auth plugin:</li></ol><p><img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/jwt-auth-3.png"></p><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><h4><a [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ1c2VyLWtleSIsImV4cCI6MTU2NDA1MDgxMX0.Us8zh_4VjJXF-TmR5f8cif8mBU7SuefPlpxhH0jbPVI</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><ul><li>with extension payload:</li></ul><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="pri [...]
@@ -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:#393A34"><span class="token plain"></span><span class="token operator" style="color:#393A34">&lt;</span><span class="token operator" style="color:#393A34">!</span><span class="token plain">DOCTYPE html</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token operator" style="color:#393A34">&lt [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0 [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 e56ad37..acf19b4 100644
--- a/docs/apisix/2.6/plugins/kafka-logger/index.html
+++ b/docs/apisix/2.6/plugins/kafka-logger/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 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>broker_list</td><td>object</td><td>required</td><td></td><td></td><td>An array of Kafka brokers.</td></tr><tr><td>kafk [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">abcdef</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div></li></ul><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="info"></a>Info<a class="hash-link" href="#info" title="Direct link to heading">#</a></h2><p>The <code>message</code> will write to the buffer first.
 It will send to the kafka server when the buffer exceed the <code>batch_max_size</code>,
@@ -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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class=" [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://12 [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 cf76a96..6ad63d3 100644
--- a/docs/apisix/2.6/plugins/key-auth/index.html
+++ b/docs/apisix/2.6/plugins/key-auth/index.html
@@ -15,18 +15,18 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/key-auth-1.png"></p><p>Then add key-auth plugin:
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/key-auth-2.png"></p><ol start="2"><li>creates a route or service object, and enable plugin <code>key-auth</code>.</li></ol><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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:# [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.2:9080/index.html -H </span><span class="token string" style="color:#e3116c">&#x27;apikey: abcabcabc&#x27;</span><span class="token plain"> -i</span></div><div class="token-line" style="color:#393A34"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:#36acaa">40 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0 [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 66c116d..ba85c37 100644
--- a/docs/apisix/2.6/plugins/limit-conn/index.html
+++ b/docs/apisix/2.6/plugins/limit-conn/index.html
@@ -15,18 +15,18 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/limit-conn-1.png"></p><p>Then add limit-conn plugin:
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/limit-conn-2.png"></p><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><p>The parameters of the plugin enabled above indicate that only one concurrent request is allowed. When more than one concurrent request is received, will return <code>503</code> directly.</p><div class="codeB [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> -i http://127.0.0.1:9080/index.html?sleep</span><span class="token operator" style="color:#393A34">=</span><span class="token number" style="color:#36acaa">20</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token operator" [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1 -H </ [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 1bb738f..5e72eff 100644
--- a/docs/apisix/2.6/plugins/limit-count/index.html
+++ b/docs/apisix/2.6/plugins/limit-count/index.html
@@ -15,19 +15,19 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/limit-count-1.png" alt="Add a router."></p><p>Then add limit-count plugin:
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/limit-count-2.png" alt="Add limit-count plugin."></p><p>If you need a cluster-level precision traffic limit, then we can do it with the redis server. The rate limit of the traffic will be shared between different APISIX nodes to limit the rate of cluster traffic.</p><p>Here is the example if we use single <code>redis</code> policy:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockConten [...]
 which mean the total number of requests and the remaining number of requests that can be sent:</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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:#36acaa">200</span><span c [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token operator" style="color:#393A34">&lt;</span><span class="token plain">html</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token operator" style="color:#393A34">&lt;</span><span class="token plain">head</span><span class="token ope [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1 -H </ [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 265dbdb..e9fc5fb 100644
--- a/docs/apisix/2.6/plugins/limit-req/index.html
+++ b/docs/apisix/2.6/plugins/limit-req/index.html
@@ -15,16 +15,16 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">html</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1 -H </ [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 1a9e543..ada543c 100644
--- a/docs/apisix/2.6/plugins/log-rotate/index.html
+++ b/docs/apisix/2.6/plugins/log-rotate/index.html
@@ -15,17 +15,17 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 When the number of log files exceeds the remaining number, the old files are automatically deleted.</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>interval</td><td>integer</td><td>required</td><td>60 * 60</td><td></td><td>How of [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ ll logs</span></div><div class="token-line" style="color:#393A [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">plugins</span><span class="token punctu [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">plugin_attr</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">log-rotate</span><span class="token punctuation" style="color:#393A34">:</span><span class=" [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 1499aa6..f79153e 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">...</span><span class="token p [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 cade752..4d5c3aa 100644
--- a/docs/apisix/2.6/plugins/node-status/index.html
+++ b/docs/apisix/2.6/plugins/node-status/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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><ol><li>Configure <code>node-status</code> in the plugin list of the configuration file <code>conf/config.yaml</code>,
 then you can add this plugin in any route.</li></ol><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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">plugins:                          </span><span class="token comment" style="color:#999988;font-style:italic"># plugin list</span>< [...]
 And this plugin will not make any difference in future requests, so usually we don&#x27;t set this plugin when creating routes.</p><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><ol><li>Request with uri <code>/apisix/status</code></li></ol><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly sh"><div tabindex="0" class="prism-code language-sh codeBlo [...]
@@ -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 bash"><div tabindex="0" class="prism-code language-bash codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">plugins:                          </span><span class="token comment" style="color:#999988;font-style:italic"># plugin list</sp [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 bd2eac3..78f882f 100644
--- a/docs/apisix/2.6/plugins/openid-connect/index.html
+++ b/docs/apisix/2.6/plugins/openid-connect/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 In this case, requests without a token or where the token is invalid are always rejected. This requires
 <code>bearer_only</code> be set to <code>true</code> and that either an introspection endpoint has been configured through
 <code>introspection_endpoint</code>, or that a public key has been configured through <code>public_key</code>. See the relevant
@@ -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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</sp [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 5c43e68..ebc23f0 100644
--- a/docs/apisix/2.6/plugins/prometheus/index.html
+++ b/docs/apisix/2.6/plugins/prometheus/index.html
@@ -15,18 +15,18 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 By default, the address is <code>127.0.0.1:9091</code>. You can change it in the <code>conf/config.yaml</code>, for example:</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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">plugin_attr:</span></div><div class="token-line" style [...]
 you may need to use <a href="/docs/apisix/2.6/plugin-interceptors">interceptors</a> to protect it.</strong></p><p>If you still want this behavior, you can configure it like this:</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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain"> [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">scrape_configs</span><span class="token punctuation" style="color:#393A34">:</span><span class="token pl [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1  [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 90e8c62..542e2a0 100644
--- a/docs/apisix/2.6/plugins/proxy-cache/index.html
+++ b/docs/apisix/2.6/plugins/proxy-cache/index.html
@@ -15,18 +15,18 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><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 plugin is enabled.</p></blockquote><p>2: Verify that the data is cached, request the address above again:</p><div class="codeBlockContaine [...]
 </span></div><div class="token-line" style="color:#393A34"><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><p>Example 2: Customize the cache_zone parameter to <code>disk_cache_two</code></p><ol><li>Specify the cache area and other information in the <code>conf/config.yaml</code> file:</li></ol><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><div  [...]
 </span></div><div class="token-line" style="color:#393A34"><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:#393A34"><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:#393A34"><span class="token plain"></span><span class="token operator" style="color:#393A34">&lt;</span><span class="token plain">html</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token operator" style="color:#393A34">&lt;</span><span class="token plain">head</span><span class="token ope [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 1aef25b..331b10e 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 face333..8ab1bc8 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1  -H  [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 b2a87bd..fca7900 100644
--- a/docs/apisix/2.6/plugins/redirect/index.html
+++ b/docs/apisix/2.6/plugins/redirect/index.html
@@ -15,16 +15,16 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">..</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 example of r [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1  -H  [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 b47dbcf..6d9e0cb 100644
--- a/docs/apisix/2.6/plugins/referer-restriction/index.html
+++ b/docs/apisix/2.6/plugins/referer-restriction/index.html
@@ -15,16 +15,16 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0 [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 f4f8f41..6c4cb81 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/5  [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 0f8a5b5..1ab224c 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/5  [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 337fc28..674ba02 100644
--- a/docs/apisix/2.6/plugins/response-rewrite/index.html
+++ b/docs/apisix/2.6/plugins/response-rewrite/index.html
@@ -15,17 +15,17 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:#36acaa">200</span><span class="token plain"> OK</span></div><div class="token-line" style="color:#393A34"><span class="token plain">Date: Sat, </span><span class="token number" style="color:#36acaa">16</span><span class="token plain"> Nov </span><span class="token number" style="color:#36acaa">2019</span><span class="token plain"> 09:15:12 GMT</spa [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">{</span><span class="token string" style="color:#e3116c">&quot;code&quot;</span><span class="token builtin class-name">:</span><span class="token string" style="color:#e3116c">&quot;ok&quot;</span><span class="token plain">,</span><span class="token string" style="color:#e3116c">&quot;message&quot;</span><span class="token builtin class-name">: [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1  -H < [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 4680db0..f4f0f6d 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.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.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 bea58bd..a90c793 100644
--- a/docs/apisix/2.6/plugins/serverless/index.html
+++ b/docs/apisix/2.6/plugins/serverless/index.html
@@ -15,16 +15,16 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1  -H < [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 a373cae..ba10301 100644
--- a/docs/apisix/2.6/plugins/skywalking/index.html
+++ b/docs/apisix/2.6/plugins/skywalking/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 The skywalking server can supports both http and grpc protocols. The APISIX client only support http protocols.</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>sample_ratio</td><td>number</td><td>required</td><td>1</td><td>[0.000 [...]
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/skywalking-1.png" alt=" ">\
 Then add skywalking plugin:\
@@ -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:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">import</span><span class="token plain"> </span><span class="token namespace" style="opacity:0.7">org</span><span class="token namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token namespace" style="opacity:0.7">springframework</span><span class="token namespace punctuation" style="opacity:0.7;color:#393A34">.</span><sp [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">/**</span></div><div class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"> * @author cyxinda</span></div><div class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"> * @create 2020-05-29 14:02</span></div><div class="token [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">agent.service_name</span><span class="token operator" style="color:#393A34">=</span><span class="token plain">yourservername</span>< [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 2d1dd2c..6a12e98 100644
--- a/docs/apisix/2.6/plugins/sls-logger/index.html
+++ b/docs/apisix/2.6/plugins/sls-logger/index.html
@@ -15,16 +15,16 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://12 [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 459e1d0..157aa36 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://12 [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 b3eed2c..21ec9d5 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://12 [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 20c317a..17e555b 100644
--- a/docs/apisix/2.6/plugins/traffic-split/index.html
+++ b/docs/apisix/2.6/plugins/traffic-split/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 service_name, discovery_type, checks, retries, desc, scheme, labels, create_time and update_time. But you can use <code>weighted_upstreams.upstream_id</code> to bind the <code>upstream</code> object to achieve their functions.</p><p>The traffic-split plugin is mainly composed of two parts: <code>match</code> and <code>weighted_upstreams</code>. <code>match</code> is a custom conditional rule, and <code>weighted_upstreams</code> is upstream configuration information. If you configure <cod [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">hello </span><span class="token number" style="color:#36acaa">1980</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/index.html -i</span></div><div class="token-line" style="color:#393A34"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:#36acaa">200</span><span class="token plain"> OK</span></div><div class="token-line" style="color:#393A34"><span class="token plain"> [...]
@@ -35,7 +35,7 @@ service_name, discovery_type, checks, retries, desc, scheme, labels, create_time
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">world </span><span class="token number" style="color:#36acaa">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="color:#39 [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">hello </span><span class="token number" style="color:#36acaa">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 two <code> [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">hello </span><span class="token number" style="color:#36acaa">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-upstream" tit [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 ec8f378..62eda05 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://12 [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 31ca1fe..fe971a8 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">..</span><span class="token plain">. </span><span class="token punctuation" style="color:#393A34">..</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="disable-plugin"></a>D [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 38499c3..1ead34a 100644
--- a/docs/apisix/2.6/plugins/wolf-rbac/index.html
+++ b/docs/apisix/2.6/plugins/wolf-rbac/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 The rbac feature is provided by <a href="https://github.com/iGeeky/wolf" target="_blank" rel="noopener noreferrer">wolf</a>. For more information about <code>wolf</code>, please refer to <a href="https://github.com/iGeeky/wolf" target="_blank" rel="noopener noreferrer">wolf documentation</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</t [...]
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/wolf-rbac-1.png"></p><p>Then add the wolf-rbac plugin to the consumer page:
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/wolf-rbac-2.png"></p><p>Notes: The <code>appid</code> filled in above needs to already exist in the wolf system.</p><ol><li>Add a <code>Route</code> or <code>Service</code> and enable the wolf-rbac plugin.</li></ol><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines [...]
@@ -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:#393A34"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:#36acaa">200</span><span class="token plain"> OK</span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">{</span><span class="token string" style="color:#e3116c">&quot;message&quot;</span><span class="token builtin class-name">:</span><span class="token string"  [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1  -H < [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 223bebc..8926a72 100644
--- a/docs/apisix/2.6/plugins/zipkin/index.html
+++ b/docs/apisix/2.6/plugins/zipkin/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">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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0 [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">    thisip, _ := GetLocalIP()</span></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
@@ -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:#393A34"><span class="token plain">    tracer := GetTracer(...)</span></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">    // use middleware to extract parentID from http header that injected by APISIX</span></div><div class="token-line" style="color:#393A34"><span class="token plain">    r.Use(func(c *gin.Context) {</span></div><div class="token-line" style="color:#393A34"><span class="token plain">        span := this.Tracer.Extract(b3.ExtractHTTP(c.Request))</span></div><div class="token-line" style="color:#393A34"><s [...]
 </span></div><div class="token-line" style="color:#393A34"><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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 a64b131..d48c7ef 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 42330c7..507d4f8 100644
--- a/docs/apisix/2.6/profile/index.html
+++ b/docs/apisix/2.6/profile/index.html
@@ -15,19 +15,19 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 operating environments such as development environment and production environment. Certain configurations of these applications
 will definitely be different, such as the address of the configuration center.</p><p>If the configuration of all environments is placed in the same file, it is very difficult to manage. After receiving new
 requirements, we need to change the parameters in the configuration file to the development environment when developing 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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 6402d56..8ea84ed 100644
--- a/docs/apisix/2.6/router-radixtree/index.html
+++ b/docs/apisix/2.6/router-radixtree/index.html
@@ -15,17 +15,17 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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>/blog/bar/b</code>, <code>/blog/bar/c/d/e</code>, <code>/blog/bar</code> etc.</p><h4><a aria-hidden="true" tabindex="-1" class="anchor" id="3-match-priority"></a>3. Match priority<a class="hash-link" href="#3-match-priority" title="Direct link to heading">#</a></h4><p>Full match -&gt; Deep prefix matching.</p><p>Here are the rules:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly bash"><div tabindex="0" class="prism-code language-bash codeBlock_23N8 thin-sc [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1 -H </spa [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">graphql</span><span class="token punctuation" style="color:#393A34">:</span><span class=" [...]
 </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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 8563167..d387aa0 100644
--- a/docs/apisix/2.6/stand-alone/index.html
+++ b/docs/apisix/2.6/stand-alone/index.html
@@ -15,16 +15,16 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">routes</span><span class="token punctuation" style [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.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 49e37bc..0a489a4 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.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">apisix</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span> [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.7/FAQ/index.html b/docs/apisix/2.7/FAQ/index.html
index 8b07834..841b273 100644
--- a/docs/apisix/2.7/FAQ/index.html
+++ b/docs/apisix/2.7/FAQ/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">FAQ | Apache APISIX®</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.7/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" cont [...]
-<link rel="preload" href="/assets/js/runtime~main.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 Run the <code>luarocks config rocks_servers</code> command(this command is supported after luarocks 3.0) to see which server are available.
 For China mainland users, you can use the <code>luarocks.cn</code> as the luarocks server.</p><p>We already provide a wrapper in the Makefile to simplify your job:</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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token assign-left variable"  [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> -i http://127.0.0.1:9080/apisix/admin/routes/2 -H </span><span class="token string" style="color:#e3116c">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><span class="token plain"> -X PUT -d </span><span class="token string" style="color:#e3116c">&#x27;</span></div><div class="token-line" style=" [...]
@@ -33,7 +33,7 @@ See the <code>Hot reload</code> section in <a href="/docs/apisix/2.7/plugins">pl
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">$ acme.sh  --issue  --staging  -d demo.domain --renew-hook </span><span class="token string" style="color:#e3116c">&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:#393A34"><span cl [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">$ acme.sh --renew --domain demo.domain</span></div><div class="token-line" style="color:#393A34"><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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.7/IGNORE_DOC/index.html b/docs/apisix/2.7/IGNORE_DOC/index.html
index fdf2733..b80b646 100644
--- a/docs/apisix/2.7/IGNORE_DOC/index.html
+++ b/docs/apisix/2.7/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.7/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:docusa [...]
-<link rel="preload" href="/assets/js/runtime~main.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.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.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.7/admin-api/index.html b/docs/apisix/2.7/admin-api/index.html
index 21c5744..2b1eb14 100644
--- a/docs/apisix/2.7/admin-api/index.html
+++ b/docs/apisix/2.7/admin-api/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">Admin API | Apache APISIX®</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.7/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:docusaur [...]
-<link rel="preload" href="/assets/js/runtime~main.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:#36acaa">201</span><span class="token plain"> Created</span></div><div class="token-line" style="color:#393A34"><span class="token plain">Date: Sat, </span><span class="token number" style="color:#36acaa">31</span><span class="token plain"> Aug </span><span class="token number" style="color:#36acaa">2019</span><span class="token plain"> 01:17:15 GMT [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># Create a route expires after 60 seconds, then it&#x27;s deleted automatically</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/ro [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:#36acaa">201</span><span class="token plain"> Created</span></div><div class="token-line" style="color:#393A34"><span class="token plain">Date: Sat, </span><span class="token number" style="color:#36acaa">31</span><span class="token plain"> Aug </span><span class="token number" style="color:#36acaa">2019</span><span class="token plain"> 01:17:15 GMT [...]
@@ -83,7 +83,7 @@ This feature requires APISIX to run on <a href="/docs/apisix/2.7/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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><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:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&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:#e3116c">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><span class="token plain"></span></ [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.7/architecture-design/apisix/index.html b/docs/apisix/2.7/architecture-design/apisix/index.html
index 63a71ef..ee11bec 100644
--- a/docs/apisix/2.7/architecture-design/apisix/index.html
+++ b/docs/apisix/2.7/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.7/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="docs [...]
-<link rel="preload" href="/assets/js/runtime~main.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">apisix</span><span class="token punctuation [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">etcd</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">host</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> < [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.7/architecture-design/consumer/index.html b/docs/apisix/2.7/architecture-design/consumer/index.html
index fd2f9b7..a952ac5 100644
--- a/docs/apisix/2.7/architecture-design/consumer/index.html
+++ b/docs/apisix/2.7/architecture-design/consumer/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">Consumer | Apache APISIX®</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.7/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=" [...]
-<link rel="preload" href="/assets/js/runtime~main.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># Create a Router, set routing rules and enable plugin configuration</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1 -H < [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># Send a test request, the first two return to normal, did not reach the speed limit threshold</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/ [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/hello -H </span><span class="token string" style="color:#e3116c">&#x27;apikey: auth-one&#x27;</span><span class="token plain"> -I</span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">..</span><sp [...]
@@ -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.7/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:#393A34 [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;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:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/hello -H </span><span cl [...]
 </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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.7/architecture-design/debug-mode/index.html b/docs/apisix/2.7/architecture-design/debug-mode/index.html
index 29edf50..03cb0dd 100644
--- a/docs/apisix/2.7/architecture-design/debug-mode/index.html
+++ b/docs/apisix/2.7/architecture-design/debug-mode/index.html
@@ -15,16 +15,16 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.7/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" na [...]
-<link rel="preload" href="/assets/js/runtime~main.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><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:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">hook_phase</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic"># Module Function List, Name: hook_phase</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.7/architecture-design/global-rule/index.html b/docs/apisix/2.7/architecture-design/global-rule/index.html
index cc1d86d..60b7722 100644
--- a/docs/apisix/2.7/architecture-design/global-rule/index.html
+++ b/docs/apisix/2.7/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.7/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"  [...]
-<link rel="preload" href="/assets/js/runtime~main.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 We can register a global <a href="/docs/apisix/2.7/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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token pl [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.7/architecture-design/index.html b/docs/apisix/2.7/architecture-design/index.html
index eb4285d..282b376 100644
--- a/docs/apisix/2.7/architecture-design/index.html
+++ b/docs/apisix/2.7/architecture-design/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">Architecture Design | Apache APISIX®</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.7/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 [...]
-<link rel="preload" href="/assets/js/runtime~main.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">apisix</span><span class="token punctuation [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">etcd</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">host</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> < [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:#36acaa">201</span><span class="token plain"> Created</span></div><div class="token-line" style="color:#393A34"><span class="token plain">Date: Sat, </span><span class="token number" style="color:#36acaa">31</span><span class="token plain"> Aug </span><span class="token number" style="color:#36acaa">2019</span><span class="token plain"> 01:17:15 GMT [...]
@@ -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:#393A34"><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:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">hook_phase</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic"># Module Function List, Name: hook_phase</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.7/architecture-design/plugin-config/index.html b/docs/apisix/2.7/architecture-design/plugin-config/index.html
index d8eeb84..b8cbb83 100644
--- a/docs/apisix/2.7/architecture-design/plugin-config/index.html
+++ b/docs/apisix/2.7/architecture-design/plugin-config/index.html
@@ -15,16 +15,16 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.7/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="tr [...]
-<link rel="preload" href="/assets/js/runtime~main.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"># create a plugin config</span><span class="token plain"> [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># bind it to route</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1 -H </span><span class="token string" style="color:#e31 [...]
 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 bash"><div tabindex="0" class="prism-code language-bash codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token punctuation" style="color [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.7/architecture-design/plugin/index.html b/docs/apisix/2.7/architecture-design/plugin/index.html
index 1295455..3767efb 100644
--- a/docs/apisix/2.7/architecture-design/plugin/index.html
+++ b/docs/apisix/2.7/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/2.7/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="docs [...]
-<link rel="preload" href="/assets/js/runtime~main.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 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/2.7/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/a [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.7/architecture-design/route/index.html b/docs/apisix/2.7/architecture-design/route/index.html
index 9561b8d..373de7d 100644
--- a/docs/apisix/2.7/architecture-design/route/index.html
+++ b/docs/apisix/2.7/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.7/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="docsea [...]
-<link rel="preload" href="/assets/js/runtime~main.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:#36acaa">201</span><span class="token plain"> Created</span></div><div class="token-line" style="color:#393A34"><span class="token plain">Date: Sat, </span><span class="token number" style="color:#36acaa">31</span><span class="token plain"> Aug </span><span class="token number" style="color:#36acaa">2019</span><span class="token plain"> 01:17:15 GMT [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">{</span><span class="token string" style="color:#e3116c">&quot;node&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:#393A34">{</span><span class="token string" style="color:#e3116c">&quot;value&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:#393A34">{</span>< [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.7/architecture-design/router/index.html b/docs/apisix/2.7/architecture-design/router/index.html
index fd15034..b546a0d 100644
--- a/docs/apisix/2.7/architecture-design/router/index.html
+++ b/docs/apisix/2.7/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.7/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="docs [...]
-<link rel="preload" href="/assets/js/runtime~main.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.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.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.7/architecture-design/script/index.html b/docs/apisix/2.7/architecture-design/script/index.html
index 676a40e..2fd13b0 100644
--- a/docs/apisix/2.7/architecture-design/script/index.html
+++ b/docs/apisix/2.7/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.7/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="docs [...]
-<link rel="preload" href="/assets/js/runtime~main.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.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.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.7/architecture-design/service/index.html b/docs/apisix/2.7/architecture-design/service/index.html
index a81a0f3..18fd3f6 100644
--- a/docs/apisix/2.7/architecture-design/service/index.html
+++ b/docs/apisix/2.7/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.7/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="do [...]
-<link rel="preload" href="/assets/js/runtime~main.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;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:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/100 -H </span><span  [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/101 -H </span><span class="token string" style="color:#e3116c">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><span class="token plain"> -X PUT -d </span><span class="token string" style="color:#e3116c">&#x27;</span></div><div class="token-line" style="c [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.7/architecture-design/upstream/index.html b/docs/apisix/2.7/architecture-design/upstream/index.html
index 3943fcb..ea4e596 100644
--- a/docs/apisix/2.7/architecture-design/upstream/index.html
+++ b/docs/apisix/2.7/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.7/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=" [...]
-<link rel="preload" href="/assets/js/runtime~main.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.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.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.7/aws/index.html b/docs/apisix/2.7/aws/index.html
index 6d066c0..bfa6c7b 100644
--- a/docs/apisix/2.7/aws/index.html
+++ b/docs/apisix/2.7/aws/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">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.7/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= [...]
-<link rel="preload" href="/assets/js/runtime~main.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">const</span><span class="token plain"> project </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">new</span><span class="token plain"> </span><span class="token class-name">AwsCdkTypeScriptApp</span><span class="token punctuation" style="color:#393A34 [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">project</span><span class="token punctuation" style="color:#393A34">.</span><span class="token method function property-access" style="color:#d73a49">synth</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span></div></div></div><button type="button" aria-label="Copy co [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">export</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">class</span><span class="token plain"> </span><span class="token class-name">ApiSixStack</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">extends</span><span class="token plain"> </span><span class="token class-n [...]
@@ -43,7 +43,7 @@
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">Non-authoritative answer:</span></div><div class="token-line" style="color:#393A34"><span class="token plain">Name:   apiSi-PhpSe-FOL2MM4TW7G8-09029e095ab36fcc.elb.us-west-2.amazonaws.com</span></div><div class="token-line" style="color:#393A34"><span class="token plain">Address: </span><span class="token number" style="color:#36acaa">44.224</span><span class="token plain">.124.213</span></div><div class [...]
 <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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.7/batch-processor/index.html b/docs/apisix/2.7/batch-processor/index.html
index 6ffe0f5..ee1fb3e 100644
--- a/docs/apisix/2.7/batch-processor/index.html
+++ b/docs/apisix/2.7/batch-processor/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">Batch Processor | Apache APISIX®</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.7/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="docsea [...]
-<link rel="preload" href="/assets/js/runtime~main.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 When the batch_max_size is set to zero the processor will execute each entry immediately. Setting the batch max size more
 than 1 will start aggregating the entries until it reaches the max size or the timeout expires.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="configurations"></a>Configurations<a class="hash-link" href="#configurations" title="Direct link to heading">#</a></h2><p>The only mandatory parameter to create a batch processor is a function. The function will be executed when the batch reaches the max size
 or when the buffer duration exceeds.</p><table><thead><tr><th>Name</th><th>Requirement</th><th>Description</th></tr></thead><tbody><tr><td>id</td><td>optional</td><td>A unique identifier to identity the batch processor</td></tr><tr><td>batch_max_size</td><td>optional</td><td>Max size of each batch, default is 1000</td></tr><tr><td>inactive_timeout</td><td>optional</td><td>maximum age in seconds when the buffer will be flushed if inactive, default is 5s</td></tr><tr><td>buffer_duration</t [...]
@@ -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:#393A34"><span class="token plain">if batch_processor then</span></div><div class="token-line" style="color:#393A34"><span class="token plain">    batch_processor:push({hello=&#x27;world&#x27;})</span></div><div class="token-line" style="color:#393A34"><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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.7/benchmark/index.html b/docs/apisix/2.7/benchmark/index.html
index b52a52a..8103d10 100644
--- a/docs/apisix/2.7/benchmark/index.html
+++ b/docs/apisix/2.7/benchmark/index.html
@@ -15,18 +15,18 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.7/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:docusaur [...]
-<link rel="preload" href="/assets/js/runtime~main.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 which is the HTTP benchmarking tool.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="benchmark-test-for-reverse-proxy"></a>Benchmark Test for reverse proxy<a class="hash-link" href="#benchmark-test-for-reverse-proxy" title="Direct link to heading">#</a></h3><p>Only used APISIX as the reverse proxy server, with no logging, limit rate, or other plugins enabled,
 and the response size was 1KB.</p><h4><a aria-hidden="true" tabindex="-1" class="anchor" id="qps"></a>QPS<a class="hash-link" href="#qps" 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-1.jpg" alt="benchmark-1"></p><h4><a aria-hidden="true" tabindex="-1" class="anchor" id="latency"></a>Latency<a class="hash-link" href="#latency" tit [...]
 <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:#393A34;background-color:#f6f8fa"><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:#393A34;background-color:#f6f8fa"><div class="to [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.7/certificate/index.html b/docs/apisix/2.7/certificate/index.html
index f579438..479e7b4 100644
--- a/docs/apisix/2.7/certificate/index.html
+++ b/docs/apisix/2.7/certificate/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">Certificate | Apache APISIX®</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.7/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:docu [...]
-<link rel="preload" href="/assets/js/runtime~main.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">if</span><span class="token plain"> </span><span class="token builtin">len</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">sys</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">argv</span><span class="token punctuation" style="color:#393A34">)</span><span clas [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># create Router object</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1 -H </span><span class="token string" style="color:#e [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># make a test</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
@@ -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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.7/control-api/index.html b/docs/apisix/2.7/control-api/index.html
index 505f73c..fe2625e 100644
--- a/docs/apisix/2.7/control-api/index.html
+++ b/docs/apisix/2.7/control-api/index.html
@@ -15,18 +15,18 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.7/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:docu [...]
-<link rel="preload" href="/assets/js/runtime~main.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 the <code>control</code> section under <code>apisix</code> in <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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">apisix</span><span class="token punctuation" style="color:# [...]
 If a plugin adds such a control API, please refer to each plugin&#x27;s documentation for those APIs.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="plugin-independent-control-api"></a>Plugin independent Control API<a class="hash-link" href="#plugin-independent-control-api" title="Direct link to heading">#</a></h2><p>Here is the supported API:</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="get-v1schema"></a>GET /v1/schema<a class="hash-link" href="#get-v1sch [...]
 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.7/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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.7/customize-nginx-configuration/index.html b/docs/apisix/2.7/customize-nginx-configuration/index.html
index 9019615..01eb63c 100644
--- a/docs/apisix/2.7/customize-nginx-configuration/index.html
+++ b/docs/apisix/2.7/customize-nginx-configuration/index.html
@@ -15,16 +15,16 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.7/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-reac [...]
-<link rel="preload" href="/assets/js/runtime~main.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain">            location /ysec_status </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">                req_status_show;</span></div><div class="token-line" style="color:#393A34"><span class="token plain">                allow 127.0.0.1;</span></div><div class="token-line" style=" [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">        chunked_transfer_encoding on;</span></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">http_server_configuration_snippet</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">|</span><span class="token scalar string" style="color:#e3116c"></span></div><div class="token-line" style="color:#393A34"><span class="token scalar stri [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.7/debug-function/index.html b/docs/apisix/2.7/debug-function/index.html
index b89a0f0..a4f6a79 100644
--- a/docs/apisix/2.7/debug-function/index.html
+++ b/docs/apisix/2.7/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.7/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="docsearc [...]
-<link rel="preload" href="/assets/js/runtime~main.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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></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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.7/discovery/consul_kv/index.html b/docs/apisix/2.7/discovery/consul_kv/index.html
index 633fed1..a0014d5 100644
--- a/docs/apisix/2.7/discovery/consul_kv/index.html
+++ b/docs/apisix/2.7/discovery/consul_kv/index.html
@@ -15,16 +15,16 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® Blog Atom Feed">
 <link 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.7/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="docsearc [...]
-<link rel="preload" href="/assets/js/runtime~main.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 <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:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">\</span><span class="token plain"></span></div><div class="token-line" style="color:#393A34"><span class="token plain">    -X PUT </span><span class="token punctuation" style="color:#393A34">\</span><span class="token plain"></span></div><div class=" [...]
 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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.7/discovery/dns/index.html b/docs/apisix/2.7/discovery/dns/index.html
index 6eaf51c..fe4eccb 100644
--- a/docs/apisix/2.7/discovery/dns/index.html
+++ b/docs/apisix/2.7/discovery/dns/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">DNS | Apache APISIX®</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.7/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 [...]
-<link rel="preload" href="/assets/js/runtime~main.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 via DNS. Therefore we can use this way to discover service directly.</p><p>First of all, we need to configure the address of DNS servers:</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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic" [...]
 DNS will return all records. For example, with upstream configuration:</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:#393A34;background-color:#f6f8fa"><div class="token-line" style="color:#393A34"><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span></div><div class="token-line" style="co [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"> name  TTL         </span><span class="token builtin class-name">type</span><span class="token plain">    priority    weight  port</span></div><div class="token-line" style="color:#393A34"><span class="token plain">srv     </span><span class="token number" style="color:#36acaa">86400</span><span class="token pl [...]
@@ -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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.7/discovery/eureka/index.html b/docs/apisix/2.7/discovery/eureka/index.html
index 08b6779..94ab5bf 100644
--- a/docs/apisix/2.7/discovery/eureka/index.html
+++ b/docs/apisix/2.7/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.7/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:docu [...]
-<link rel="preload" href="/assets/js/runtime~main.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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 [...]
 reading from <a href="/docs/apisix/2.7/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.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.7/discovery/index.html b/docs/apisix/2.7/discovery/index.html
index fa10a4f..6d3fd8c 100644
--- a/docs/apisix/2.7/discovery/index.html
+++ b/docs/apisix/2.7/discovery/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">Integration service discovery registry | Apache APISIX®</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/2.7/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="t [...]
-<link rel="preload" href="/assets/js/runtime~main.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.1cb97c6c.js" as="script">
+<link rel="preload" href="/assets/js/main.bc8668b1.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?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:#393A34"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">function _M.nodes(service_name)</span></div><div class="token-line" style="color:#393A34"><span class="token plain">    ... ...</span></div><div class="token-line" style="color:#393A34"><span class="token plain">end</span></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
@@ -32,7 +32,7 @@
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:#36acaa">201</span><span class="token plain"> Created</span></div><div class="token-line" style="color:#393A34"><span class="token plain">Date: Sat, </span><span class="token number" style="color:#36acaa">31</span><span class="token plain"> Aug </span><span class="token number" style="color:#36acaa">2019</span><span class="token plain"> 01:17:15 GMT [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">{</span><span class="token string" style="color:#e3116c">&quot;node&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:#393A34">{</span><span class="token string" style="color:#e3116c">&quot;value&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:#393A34">{</span>< [...]
 </span></div><div class="token-line" style="color:#393A34"><span class="token plain">$ </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/2 -H </span><span class="token string" style="color:#e3116c">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><span class="token plain"> -X PUT -i -d </span><span class="token string" style="color:#e3116c">&#x27;</span></div><div class="token-line" style [...]
-<script src="/assets/js/runtime~main.31e8c9cc.js"></script>
-<script src="/assets/js/main.88f0d7c0.js"></script>
+<script src="/assets/js/runtime~main.1cb97c6c.js"></script>
+<script src="/assets/js/main.bc8668b1.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.7/discovery/nacos/index.html b/docs/apisix/2.7/discovery/nacos/index.html
index 24a9fd3..b62699d 100644
--- a/docs/apisix/2.7/discovery/nacos/index.html
+++ b/docs/apisix/2.7/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.7/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:docusa [...]
-<link rel="preload" href="/assets/js/runtime~main.31e8c9cc.js" as="script">
-<link rel="preload" href="/assets/js/main.88f0d7c0.js" as="script">
... 29544 lines suppressed ...