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/09/16 03:32:52 UTC

[apisix-website] branch asf-site updated: deploy: cd963af66ec74813df7db6652389385ccbd0127c

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 8cd9a59  deploy: cd963af66ec74813df7db6652389385ccbd0127c
8cd9a59 is described below

commit 8cd9a59d0d119353fc4b0a5542d6ee6099b9299d
Author: juzhiyuan <ju...@users.noreply.github.com>
AuthorDate: Thu Sep 16 03:32:43 2021 +0000

    deploy: cd963af66ec74813df7db6652389385ccbd0127c
---
 404.html                                           |  8 +++---
 .../index.html                                     |  8 +++---
 .../index.html                                     | 10 ++++----
 .../Apache-APISIX-Incubator-Journey/index.html     |  8 +++---
 .../Apache-APISIX-Kubernetes-Ingress/index.html    |  8 +++---
 .../Apache-APISIX-in-China-Mobile-Cloud/index.html | 10 ++++----
 .../index.html                                     |  8 +++---
 .../index.html                                     |  8 +++---
 .../index.html                                     |  8 +++---
 .../Speed-Limiting-With-Apache-APISIX/index.html   |  8 +++---
 .../index.html                                     |  8 +++---
 articles/The-Appeal-of-OpenSource/index.html       |  8 +++---
 articles/The-Evolution-of-Apache-APISIX/index.html |  8 +++---
 .../index.html                                     |  8 +++---
 articles/archive/index.html                        |  8 +++---
 articles/atom.xml                                  |  6 ++---
 articles/index.html                                | 10 ++++----
 articles/page/2/index.html                         |  8 +++---
 articles/rss.xml                                   |  6 ++---
 .../{09b17eb5.aa1b5899.js => 09b17eb5.349e51c2.js} |  2 +-
 .../{11fd55b2.198cb7da.js => 11fd55b2.aefac678.js} |  2 +-
 assets/js/19945770.188f30b3.js                     |  1 +
 assets/js/19945770.27dfd745.js                     |  1 -
 .../{3393d167.c73ef7f3.js => 3393d167.dc8fe51d.js} |  2 +-
 .../{358566b4.83c2dd4f.js => 358566b4.3b257bfb.js} |  2 +-
 .../js/3dc9f306.a2247aa6.js                        |  2 +-
 .../{40fb2fae.94e296a2.js => 40fb2fae.f9a501c0.js} |  2 +-
 assets/js/4c20006b.82c98cd6.js                     |  1 -
 .../{3393d167.c73ef7f3.js => 4c20006b.b38a82bf.js} |  2 +-
 .../{507e1a4c.0cfa1b58.js => 507e1a4c.ed92d378.js} |  2 +-
 .../js/50facf8e.180747f9.js                        |  2 +-
 .../{542fd41f.b14957f9.js => 542fd41f.7c63a2d7.js} |  2 +-
 .../{601c6eaa.ffa0955c.js => 601c6eaa.6df379e3.js} |  2 +-
 .../js/66fbb9c2.e31dd1bc.js                        |  2 +-
 assets/js/7af3052c.8375aefc.js                     |  1 -
 assets/js/7af3052c.9eb763dc.js                     |  1 +
 .../{3393d167.c73ef7f3.js => 80791de8.217a0540.js} |  2 +-
 assets/js/80791de8.76fdb164.js                     |  1 -
 assets/js/814f3328.8f316dca.js                     |  1 -
 assets/js/814f3328.9d93859c.js                     |  1 +
 assets/js/8159971e.eb2420ef.js                     |  1 +
 assets/js/83edfd60.b8790cd1.js                     |  1 +
 assets/js/8e784bf3.4c197ac5.js                     |  1 +
 assets/js/8e784bf3.f908a8ae.js                     |  1 -
 .../{8f700fa6.1cadf105.js => 8f700fa6.71ab7f15.js} |  2 +-
 .../{90fc8a94.67122bda.js => 90fc8a94.f1b3dbff.js} |  2 +-
 .../{941960b1.20b9285b.js => 941960b1.517f6f7f.js} |  2 +-
 assets/js/a7023ddc.1f19b955.js                     |  1 +
 assets/js/a7023ddc.62443518.js                     |  1 -
 assets/js/adbb350b.f8186f54.js                     |  1 -
 assets/js/adbb350b.fc925dc2.js                     |  1 +
 .../{b2b675dd.f693f939.js => b2b675dd.37c1d6a9.js} |  2 +-
 assets/js/b2f554cd.03d0e7ca.js                     |  1 +
 assets/js/b2f554cd.314c9d6f.js                     |  1 -
 assets/js/d00e343a.96faebd5.js                     |  1 -
 assets/js/d00e343a.e74a0510.js                     |  1 +
 .../{d18db9b0.80b6cc41.js => d18db9b0.ded29154.js} |  2 +-
 .../{f96d8335.7c0ee350.js => f96d8335.d8364e15.js} |  2 +-
 assets/js/main.9fcdcf0c.js                         |  2 --
 assets/js/main.ee3bde9c.js                         |  2 ++
 .../js/main.ee3bde9c.js.LICENSE.txt                |  0
 assets/js/runtime~main.5aaddfd3.js                 |  1 +
 assets/js/runtime~main.9cf8bcef.js                 |  1 -
 blog/2020/08/22/new-website/index.html             |  8 +++---
 .../index.html                                     |  8 +++---
 .../index.html                                     |  8 +++---
 .../index.html                                     |  8 +++---
 .../index.html                                     |  8 +++---
 .../21/run-ingress-apisix-on-amazon-eks/index.html |  8 +++---
 .../index.html                                     |  8 +++---
 .../index.html                                     |  8 +++---
 .../index.html                                     |  8 +++---
 .../index.html                                     |  8 +++---
 blog/2021/05/24/Tencent-Games/index.html           |  8 +++---
 .../index.html"                                    |  8 +++---
 .../index.html"                                    |  8 +++---
 .../index.html                                     |  8 +++---
 blog/2021/06/06/apisix-two-years/index.html        |  8 +++---
 .../index.html                                     |  8 +++---
 .../index.html                                     |  8 +++---
 .../index.html                                     |  8 +++---
 .../index.html                                     |  8 +++---
 .../index.html                                     |  8 +++---
 .../index.html                                     |  8 +++---
 .../index.html                                     |  8 +++---
 .../06/28/why-we-need-Apache-APISIX/index.html     |  8 +++---
 .../06/29/release-apache-apisix-2.7-en/index.html  |  8 +++---
 .../06/29/release-apache-apisix-2.7/index.html     |  8 +++---
 .../etcd3-support-HTTP-access-perfectly/index.html |  8 +++---
 .../07/06/celebrate-200-contributors/index.html    |  8 +++---
 .../index.html                                     |  8 +++---
 .../index.html                                     |  8 +++---
 .../2021/07/21/Apache-APISIX-Kubernetes/index.html |  8 +++---
 blog/2021/07/25/apachecon-asia/index.html          |  8 +++---
 blog/2021/07/27/limit-rep-plug/index.html          |  8 +++---
 .../index.html                                     |  8 +++---
 .../07/28/release-apache-apisix-2.8-en/index.html  |  8 +++---
 .../07/28/release-apache-apisix-2.8/index.html     |  8 +++---
 blog/2021/08/05/Kong-to-APISIX/index.html          |  8 +++---
 .../index.html                                     |  8 +++---
 .../Apache-APISIX-in-China-Mobile-Cloud/index.html |  8 +++---
 .../08/09/Apache-APISIX-in-Quliankeji/index.html   |  8 +++---
 blog/2021/08/10/apisix-nginx/index.html            |  8 +++---
 blog/2021/08/11/interview-TuZhengsong/index.html   |  8 +++---
 .../index.html                                     |  8 +++---
 .../index.html                                     |  8 +++---
 .../index.html                                     |  8 +++---
 .../index.html                                     |  8 +++---
 blog/2021/08/17/interview-airwallex/index.html     |  8 +++---
 .../Auth-with-Casbin-in-Apache-APISIX/index.html   |  8 +++---
 .../08/19/go-makes-Apache-APISIX-better/index.html |  8 +++---
 blog/2021/08/24/shanghai-meetup-recap/index.html   |  8 +++---
 .../Auth-with-Casbin-in-Apache-APISIX/index.html   |  8 +++---
 .../index.html                                     |  8 +++---
 .../index.html                                     |  8 +++---
 .../08/27/release-apache-apisix-2.9/index.html     |  8 +++---
 blog/2021/08/30/Ingress-Meeting/index.html         |  8 +++---
 .../index.html"                                    |  8 +++---
 .../index.html                                     |  8 +++---
 blog/2021/09/07/how-to-use-apisix-auth/index.html  |  8 +++---
 blog/2021/09/07/iQIYI-usercase/index.html          |  8 +++---
 .../index.html                                     | 10 ++++----
 blog/2021/09/14/youzan/index.html                  | 30 ++++++++++++++++++++++
 blog/archive/index.html                            | 10 ++++----
 blog/atom.xml                                      | 12 ++++++++-
 blog/index.html                                    | 10 ++++----
 blog/rss.xml                                       |  9 ++++++-
 blog/tags/community/index.html                     |  8 +++---
 blog/tags/index.html                               | 10 ++++----
 blog/tags/news/index.html                          |  8 +++---
 blog/tags/practical-case/index.html                | 12 ++++-----
 blog/tags/security/index.html                      |  8 +++---
 blog/tags/technology/index.html                    |  8 +++---
 docs/apisix/2.4/FAQ/index.html                     |  8 +++---
 docs/apisix/2.4/IGNORE_DOC/index.html              |  8 +++---
 docs/apisix/2.4/admin-api/index.html               |  8 +++---
 docs/apisix/2.4/architecture-design/index.html     |  8 +++---
 docs/apisix/2.4/aws/index.html                     |  8 +++---
 docs/apisix/2.4/batch-processor/index.html         |  8 +++---
 docs/apisix/2.4/benchmark/index.html               |  8 +++---
 docs/apisix/2.4/control-api/index.html             |  8 +++---
 .../2.4/customize-nginx-configuration/index.html   |  8 +++---
 docs/apisix/2.4/debug-function/index.html          |  8 +++---
 docs/apisix/2.4/discovery/consul_kv/index.html     |  8 +++---
 docs/apisix/2.4/discovery/index.html               |  8 +++---
 docs/apisix/2.4/dns/index.html                     |  8 +++---
 .../index.html                                     |  8 +++---
 docs/apisix/2.4/getting-started/index.html         |  8 +++---
 docs/apisix/2.4/grpc-proxy/index.html              |  8 +++---
 docs/apisix/2.4/health-check/index.html            |  8 +++---
 docs/apisix/2.4/how-to-build/index.html            |  8 +++---
 docs/apisix/2.4/https/index.html                   |  8 +++---
 docs/apisix/2.4/install-dependencies/index.html    |  8 +++---
 docs/apisix/2.4/mtls/index.html                    |  8 +++---
 docs/apisix/2.4/plugin-develop/index.html          |  8 +++---
 docs/apisix/2.4/plugin-interceptors/index.html     |  8 +++---
 docs/apisix/2.4/plugins/api-breaker/index.html     |  8 +++---
 docs/apisix/2.4/plugins/authz-keycloak/index.html  |  8 +++---
 docs/apisix/2.4/plugins/basic-auth/index.html      |  8 +++---
 docs/apisix/2.4/plugins/batch-requests/index.html  |  8 +++---
 .../2.4/plugins/consumer-restriction/index.html    |  8 +++---
 docs/apisix/2.4/plugins/cors/index.html            |  8 +++---
 docs/apisix/2.4/plugins/dubbo-proxy/index.html     |  8 +++---
 docs/apisix/2.4/plugins/echo/index.html            |  8 +++---
 .../apisix/2.4/plugins/error-log-logger/index.html |  8 +++---
 docs/apisix/2.4/plugins/fault-injection/index.html |  8 +++---
 docs/apisix/2.4/plugins/grpc-transcode/index.html  |  8 +++---
 docs/apisix/2.4/plugins/hmac-auth/index.html       |  8 +++---
 docs/apisix/2.4/plugins/http-logger/index.html     |  8 +++---
 docs/apisix/2.4/plugins/index.html                 |  8 +++---
 docs/apisix/2.4/plugins/ip-restriction/index.html  |  8 +++---
 docs/apisix/2.4/plugins/jwt-auth/index.html        |  8 +++---
 docs/apisix/2.4/plugins/kafka-logger/index.html    |  8 +++---
 docs/apisix/2.4/plugins/key-auth/index.html        |  8 +++---
 docs/apisix/2.4/plugins/limit-conn/index.html      |  8 +++---
 docs/apisix/2.4/plugins/limit-count/index.html     |  8 +++---
 docs/apisix/2.4/plugins/limit-req/index.html       |  8 +++---
 docs/apisix/2.4/plugins/log-rotate/index.html      |  8 +++---
 docs/apisix/2.4/plugins/mqtt-proxy/index.html      |  8 +++---
 docs/apisix/2.4/plugins/node-status/index.html     |  8 +++---
 docs/apisix/2.4/plugins/openid-connect/index.html  |  8 +++---
 docs/apisix/2.4/plugins/prometheus/index.html      |  8 +++---
 docs/apisix/2.4/plugins/proxy-cache/index.html     |  8 +++---
 docs/apisix/2.4/plugins/proxy-mirror/index.html    |  8 +++---
 docs/apisix/2.4/plugins/proxy-rewrite/index.html   |  8 +++---
 docs/apisix/2.4/plugins/redirect/index.html        |  8 +++---
 .../2.4/plugins/referer-restriction/index.html     |  8 +++---
 docs/apisix/2.4/plugins/request-id/index.html      |  8 +++---
 .../2.4/plugins/request-validation/index.html      |  8 +++---
 .../apisix/2.4/plugins/response-rewrite/index.html |  8 +++---
 docs/apisix/2.4/plugins/server-info/index.html     |  8 +++---
 docs/apisix/2.4/plugins/serverless/index.html      |  8 +++---
 docs/apisix/2.4/plugins/skywalking/index.html      |  8 +++---
 docs/apisix/2.4/plugins/sls-logger/index.html      |  8 +++---
 docs/apisix/2.4/plugins/syslog/index.html          |  8 +++---
 docs/apisix/2.4/plugins/tcp-logger/index.html      |  8 +++---
 docs/apisix/2.4/plugins/traffic-split/index.html   |  8 +++---
 docs/apisix/2.4/plugins/udp-logger/index.html      |  8 +++---
 docs/apisix/2.4/plugins/uri-blocker/index.html     |  8 +++---
 docs/apisix/2.4/plugins/wolf-rbac/index.html       |  8 +++---
 docs/apisix/2.4/plugins/zipkin/index.html          |  8 +++---
 docs/apisix/2.4/powered-by/index.html              |  8 +++---
 docs/apisix/2.4/profile/index.html                 |  8 +++---
 docs/apisix/2.4/router-radixtree/index.html        |  8 +++---
 docs/apisix/2.4/stand-alone/index.html             |  8 +++---
 docs/apisix/2.4/stream-proxy/index.html            |  8 +++---
 docs/apisix/2.4/tags/index.html                    |  8 +++---
 docs/apisix/2.5/FAQ/index.html                     |  8 +++---
 docs/apisix/2.5/IGNORE_DOC/index.html              |  8 +++---
 docs/apisix/2.5/admin-api/index.html               |  8 +++---
 .../2.5/architecture-design/apisix/index.html      |  8 +++---
 .../2.5/architecture-design/consumer/index.html    |  8 +++---
 .../2.5/architecture-design/debug-mode/index.html  |  8 +++---
 .../2.5/architecture-design/global-rule/index.html |  8 +++---
 docs/apisix/2.5/architecture-design/index.html     |  8 +++---
 .../architecture-design/plugin-config/index.html   |  8 +++---
 .../2.5/architecture-design/plugin/index.html      |  8 +++---
 .../2.5/architecture-design/route/index.html       |  8 +++---
 .../2.5/architecture-design/router/index.html      |  8 +++---
 .../2.5/architecture-design/script/index.html      |  8 +++---
 .../2.5/architecture-design/service/index.html     |  8 +++---
 .../2.5/architecture-design/upstream/index.html    |  8 +++---
 docs/apisix/2.5/aws/index.html                     |  8 +++---
 docs/apisix/2.5/batch-processor/index.html         |  8 +++---
 docs/apisix/2.5/benchmark/index.html               |  8 +++---
 docs/apisix/2.5/control-api/index.html             |  8 +++---
 .../2.5/customize-nginx-configuration/index.html   |  8 +++---
 docs/apisix/2.5/debug-function/index.html          |  8 +++---
 docs/apisix/2.5/discovery/consul_kv/index.html     |  8 +++---
 docs/apisix/2.5/discovery/dns/index.html           |  8 +++---
 docs/apisix/2.5/discovery/index.html               |  8 +++---
 docs/apisix/2.5/dns/index.html                     |  8 +++---
 .../index.html                                     |  8 +++---
 docs/apisix/2.5/getting-started/index.html         |  8 +++---
 docs/apisix/2.5/grpc-proxy/index.html              |  8 +++---
 docs/apisix/2.5/health-check/index.html            |  8 +++---
 docs/apisix/2.5/how-to-build/index.html            |  8 +++---
 docs/apisix/2.5/https/index.html                   |  8 +++---
 docs/apisix/2.5/install-dependencies/index.html    |  8 +++---
 docs/apisix/2.5/mtls/index.html                    |  8 +++---
 docs/apisix/2.5/plugin-develop/index.html          |  8 +++---
 docs/apisix/2.5/plugin-interceptors/index.html     |  8 +++---
 docs/apisix/2.5/plugins/api-breaker/index.html     |  8 +++---
 docs/apisix/2.5/plugins/authz-keycloak/index.html  |  8 +++---
 docs/apisix/2.5/plugins/basic-auth/index.html      |  8 +++---
 docs/apisix/2.5/plugins/batch-requests/index.html  |  8 +++---
 .../2.5/plugins/consumer-restriction/index.html    |  8 +++---
 docs/apisix/2.5/plugins/cors/index.html            |  8 +++---
 docs/apisix/2.5/plugins/dubbo-proxy/index.html     |  8 +++---
 docs/apisix/2.5/plugins/echo/index.html            |  8 +++---
 .../apisix/2.5/plugins/error-log-logger/index.html |  8 +++---
 docs/apisix/2.5/plugins/fault-injection/index.html |  8 +++---
 docs/apisix/2.5/plugins/grpc-transcode/index.html  |  8 +++---
 docs/apisix/2.5/plugins/hmac-auth/index.html       |  8 +++---
 docs/apisix/2.5/plugins/http-logger/index.html     |  8 +++---
 docs/apisix/2.5/plugins/index.html                 |  8 +++---
 docs/apisix/2.5/plugins/ip-restriction/index.html  |  8 +++---
 docs/apisix/2.5/plugins/jwt-auth/index.html        |  8 +++---
 docs/apisix/2.5/plugins/kafka-logger/index.html    |  8 +++---
 docs/apisix/2.5/plugins/key-auth/index.html        |  8 +++---
 docs/apisix/2.5/plugins/limit-conn/index.html      |  8 +++---
 docs/apisix/2.5/plugins/limit-count/index.html     |  8 +++---
 docs/apisix/2.5/plugins/limit-req/index.html       |  8 +++---
 docs/apisix/2.5/plugins/log-rotate/index.html      |  8 +++---
 docs/apisix/2.5/plugins/mqtt-proxy/index.html      |  8 +++---
 docs/apisix/2.5/plugins/node-status/index.html     |  8 +++---
 docs/apisix/2.5/plugins/openid-connect/index.html  |  8 +++---
 docs/apisix/2.5/plugins/prometheus/index.html      |  8 +++---
 docs/apisix/2.5/plugins/proxy-cache/index.html     |  8 +++---
 docs/apisix/2.5/plugins/proxy-mirror/index.html    |  8 +++---
 docs/apisix/2.5/plugins/proxy-rewrite/index.html   |  8 +++---
 docs/apisix/2.5/plugins/redirect/index.html        |  8 +++---
 .../2.5/plugins/referer-restriction/index.html     |  8 +++---
 docs/apisix/2.5/plugins/request-id/index.html      |  8 +++---
 .../2.5/plugins/request-validation/index.html      |  8 +++---
 .../apisix/2.5/plugins/response-rewrite/index.html |  8 +++---
 docs/apisix/2.5/plugins/server-info/index.html     |  8 +++---
 docs/apisix/2.5/plugins/serverless/index.html      |  8 +++---
 docs/apisix/2.5/plugins/skywalking/index.html      |  8 +++---
 docs/apisix/2.5/plugins/sls-logger/index.html      |  8 +++---
 docs/apisix/2.5/plugins/syslog/index.html          |  8 +++---
 docs/apisix/2.5/plugins/tcp-logger/index.html      |  8 +++---
 docs/apisix/2.5/plugins/traffic-split/index.html   |  8 +++---
 docs/apisix/2.5/plugins/udp-logger/index.html      |  8 +++---
 docs/apisix/2.5/plugins/uri-blocker/index.html     |  8 +++---
 docs/apisix/2.5/plugins/wolf-rbac/index.html       |  8 +++---
 docs/apisix/2.5/plugins/zipkin/index.html          |  8 +++---
 docs/apisix/2.5/powered-by/index.html              |  8 +++---
 docs/apisix/2.5/profile/index.html                 |  8 +++---
 docs/apisix/2.5/router-radixtree/index.html        |  8 +++---
 docs/apisix/2.5/stand-alone/index.html             |  8 +++---
 docs/apisix/2.5/stream-proxy/index.html            |  8 +++---
 docs/apisix/2.5/tags/index.html                    |  8 +++---
 docs/apisix/2.6/FAQ/index.html                     |  8 +++---
 docs/apisix/2.6/IGNORE_DOC/index.html              |  8 +++---
 docs/apisix/2.6/admin-api/index.html               |  8 +++---
 .../2.6/architecture-design/apisix/index.html      |  8 +++---
 .../2.6/architecture-design/consumer/index.html    |  8 +++---
 .../2.6/architecture-design/debug-mode/index.html  |  8 +++---
 .../2.6/architecture-design/global-rule/index.html |  8 +++---
 docs/apisix/2.6/architecture-design/index.html     |  8 +++---
 .../architecture-design/plugin-config/index.html   |  8 +++---
 .../2.6/architecture-design/plugin/index.html      |  8 +++---
 .../2.6/architecture-design/route/index.html       |  8 +++---
 .../2.6/architecture-design/router/index.html      |  8 +++---
 .../2.6/architecture-design/script/index.html      |  8 +++---
 .../2.6/architecture-design/service/index.html     |  8 +++---
 .../2.6/architecture-design/upstream/index.html    |  8 +++---
 docs/apisix/2.6/aws/index.html                     |  8 +++---
 docs/apisix/2.6/batch-processor/index.html         |  8 +++---
 docs/apisix/2.6/benchmark/index.html               |  8 +++---
 docs/apisix/2.6/control-api/index.html             |  8 +++---
 .../2.6/customize-nginx-configuration/index.html   |  8 +++---
 docs/apisix/2.6/debug-function/index.html          |  8 +++---
 docs/apisix/2.6/discovery/consul_kv/index.html     |  8 +++---
 docs/apisix/2.6/discovery/dns/index.html           |  8 +++---
 docs/apisix/2.6/discovery/eureka/index.html        |  8 +++---
 docs/apisix/2.6/discovery/index.html               |  8 +++---
 docs/apisix/2.6/discovery/nacos/index.html         |  8 +++---
 docs/apisix/2.6/dns/index.html                     |  8 +++---
 .../index.html                                     |  8 +++---
 docs/apisix/2.6/getting-started/index.html         |  8 +++---
 docs/apisix/2.6/grpc-proxy/index.html              |  8 +++---
 docs/apisix/2.6/health-check/index.html            |  8 +++---
 docs/apisix/2.6/how-to-build/index.html            |  8 +++---
 docs/apisix/2.6/https/index.html                   |  8 +++---
 docs/apisix/2.6/install-dependencies/index.html    |  8 +++---
 docs/apisix/2.6/mtls/index.html                    |  8 +++---
 docs/apisix/2.6/plugin-develop/index.html          |  8 +++---
 docs/apisix/2.6/plugin-interceptors/index.html     |  8 +++---
 docs/apisix/2.6/plugins/api-breaker/index.html     |  8 +++---
 docs/apisix/2.6/plugins/authz-keycloak/index.html  |  8 +++---
 docs/apisix/2.6/plugins/basic-auth/index.html      |  8 +++---
 docs/apisix/2.6/plugins/batch-requests/index.html  |  8 +++---
 .../2.6/plugins/consumer-restriction/index.html    |  8 +++---
 docs/apisix/2.6/plugins/cors/index.html            |  8 +++---
 docs/apisix/2.6/plugins/dubbo-proxy/index.html     |  8 +++---
 docs/apisix/2.6/plugins/echo/index.html            |  8 +++---
 .../apisix/2.6/plugins/error-log-logger/index.html |  8 +++---
 docs/apisix/2.6/plugins/fault-injection/index.html |  8 +++---
 docs/apisix/2.6/plugins/grpc-transcode/index.html  |  8 +++---
 docs/apisix/2.6/plugins/hmac-auth/index.html       |  8 +++---
 docs/apisix/2.6/plugins/http-logger/index.html     |  8 +++---
 docs/apisix/2.6/plugins/index.html                 |  8 +++---
 docs/apisix/2.6/plugins/ip-restriction/index.html  |  8 +++---
 docs/apisix/2.6/plugins/jwt-auth/index.html        |  8 +++---
 docs/apisix/2.6/plugins/kafka-logger/index.html    |  8 +++---
 docs/apisix/2.6/plugins/key-auth/index.html        |  8 +++---
 docs/apisix/2.6/plugins/limit-conn/index.html      |  8 +++---
 docs/apisix/2.6/plugins/limit-count/index.html     |  8 +++---
 docs/apisix/2.6/plugins/limit-req/index.html       |  8 +++---
 docs/apisix/2.6/plugins/log-rotate/index.html      |  8 +++---
 docs/apisix/2.6/plugins/mqtt-proxy/index.html      |  8 +++---
 docs/apisix/2.6/plugins/node-status/index.html     |  8 +++---
 docs/apisix/2.6/plugins/openid-connect/index.html  |  8 +++---
 docs/apisix/2.6/plugins/prometheus/index.html      |  8 +++---
 docs/apisix/2.6/plugins/proxy-cache/index.html     |  8 +++---
 docs/apisix/2.6/plugins/proxy-mirror/index.html    |  8 +++---
 docs/apisix/2.6/plugins/proxy-rewrite/index.html   |  8 +++---
 docs/apisix/2.6/plugins/redirect/index.html        |  8 +++---
 .../2.6/plugins/referer-restriction/index.html     |  8 +++---
 docs/apisix/2.6/plugins/request-id/index.html      |  8 +++---
 .../2.6/plugins/request-validation/index.html      |  8 +++---
 .../apisix/2.6/plugins/response-rewrite/index.html |  8 +++---
 docs/apisix/2.6/plugins/server-info/index.html     |  8 +++---
 docs/apisix/2.6/plugins/serverless/index.html      |  8 +++---
 docs/apisix/2.6/plugins/skywalking/index.html      |  8 +++---
 docs/apisix/2.6/plugins/sls-logger/index.html      |  8 +++---
 docs/apisix/2.6/plugins/syslog/index.html          |  8 +++---
 docs/apisix/2.6/plugins/tcp-logger/index.html      |  8 +++---
 docs/apisix/2.6/plugins/traffic-split/index.html   |  8 +++---
 docs/apisix/2.6/plugins/udp-logger/index.html      |  8 +++---
 docs/apisix/2.6/plugins/uri-blocker/index.html     |  8 +++---
 docs/apisix/2.6/plugins/wolf-rbac/index.html       |  8 +++---
 docs/apisix/2.6/plugins/zipkin/index.html          |  8 +++---
 docs/apisix/2.6/powered-by/index.html              |  8 +++---
 docs/apisix/2.6/profile/index.html                 |  8 +++---
 docs/apisix/2.6/router-radixtree/index.html        |  8 +++---
 docs/apisix/2.6/stand-alone/index.html             |  8 +++---
 docs/apisix/2.6/stream-proxy/index.html            |  8 +++---
 docs/apisix/2.6/tags/index.html                    |  8 +++---
 docs/apisix/2.7/FAQ/index.html                     |  8 +++---
 docs/apisix/2.7/IGNORE_DOC/index.html              |  8 +++---
 docs/apisix/2.7/admin-api/index.html               |  8 +++---
 .../2.7/architecture-design/apisix/index.html      |  8 +++---
 .../2.7/architecture-design/consumer/index.html    |  8 +++---
 .../2.7/architecture-design/debug-mode/index.html  |  8 +++---
 .../2.7/architecture-design/global-rule/index.html |  8 +++---
 docs/apisix/2.7/architecture-design/index.html     |  8 +++---
 .../architecture-design/plugin-config/index.html   |  8 +++---
 .../2.7/architecture-design/plugin/index.html      |  8 +++---
 .../2.7/architecture-design/route/index.html       |  8 +++---
 .../2.7/architecture-design/router/index.html      |  8 +++---
 .../2.7/architecture-design/script/index.html      |  8 +++---
 .../2.7/architecture-design/service/index.html     |  8 +++---
 .../2.7/architecture-design/upstream/index.html    |  8 +++---
 docs/apisix/2.7/aws/index.html                     |  8 +++---
 docs/apisix/2.7/batch-processor/index.html         |  8 +++---
 docs/apisix/2.7/benchmark/index.html               |  8 +++---
 docs/apisix/2.7/certificate/index.html             |  8 +++---
 docs/apisix/2.7/control-api/index.html             |  8 +++---
 .../2.7/customize-nginx-configuration/index.html   |  8 +++---
 docs/apisix/2.7/debug-function/index.html          |  8 +++---
 docs/apisix/2.7/discovery/consul_kv/index.html     |  8 +++---
 docs/apisix/2.7/discovery/dns/index.html           |  8 +++---
 docs/apisix/2.7/discovery/eureka/index.html        |  8 +++---
 docs/apisix/2.7/discovery/index.html               |  8 +++---
 docs/apisix/2.7/discovery/nacos/index.html         |  8 +++---
 docs/apisix/2.7/dns/index.html                     |  8 +++---
 .../index.html                                     |  8 +++---
 docs/apisix/2.7/external-plugin/index.html         |  8 +++---
 docs/apisix/2.7/getting-started/index.html         |  8 +++---
 docs/apisix/2.7/grpc-proxy/index.html              |  8 +++---
 docs/apisix/2.7/health-check/index.html            |  8 +++---
 docs/apisix/2.7/how-to-build/index.html            |  8 +++---
 docs/apisix/2.7/https/index.html                   |  8 +++---
 docs/apisix/2.7/install-dependencies/index.html    |  8 +++---
 docs/apisix/2.7/mtls/index.html                    |  8 +++---
 docs/apisix/2.7/plugin-develop/index.html          |  8 +++---
 docs/apisix/2.7/plugin-interceptors/index.html     |  8 +++---
 docs/apisix/2.7/plugins/api-breaker/index.html     |  8 +++---
 docs/apisix/2.7/plugins/authz-keycloak/index.html  |  8 +++---
 docs/apisix/2.7/plugins/basic-auth/index.html      |  8 +++---
 docs/apisix/2.7/plugins/batch-requests/index.html  |  8 +++---
 docs/apisix/2.7/plugins/client-control/index.html  |  8 +++---
 .../2.7/plugins/consumer-restriction/index.html    |  8 +++---
 docs/apisix/2.7/plugins/cors/index.html            |  8 +++---
 docs/apisix/2.7/plugins/dubbo-proxy/index.html     |  8 +++---
 docs/apisix/2.7/plugins/echo/index.html            |  8 +++---
 .../apisix/2.7/plugins/error-log-logger/index.html |  8 +++---
 .../2.7/plugins/ext-plugin-post-req/index.html     |  8 +++---
 .../2.7/plugins/ext-plugin-pre-req/index.html      |  8 +++---
 docs/apisix/2.7/plugins/fault-injection/index.html |  8 +++---
 docs/apisix/2.7/plugins/grpc-transcode/index.html  |  8 +++---
 docs/apisix/2.7/plugins/hmac-auth/index.html       |  8 +++---
 docs/apisix/2.7/plugins/http-logger/index.html     |  8 +++---
 docs/apisix/2.7/plugins/index.html                 |  8 +++---
 docs/apisix/2.7/plugins/ip-restriction/index.html  |  8 +++---
 docs/apisix/2.7/plugins/jwt-auth/index.html        |  8 +++---
 docs/apisix/2.7/plugins/kafka-logger/index.html    |  8 +++---
 docs/apisix/2.7/plugins/key-auth/index.html        |  8 +++---
 docs/apisix/2.7/plugins/limit-conn/index.html      |  8 +++---
 docs/apisix/2.7/plugins/limit-count/index.html     |  8 +++---
 docs/apisix/2.7/plugins/limit-req/index.html       |  8 +++---
 docs/apisix/2.7/plugins/log-rotate/index.html      |  8 +++---
 docs/apisix/2.7/plugins/mqtt-proxy/index.html      |  8 +++---
 docs/apisix/2.7/plugins/node-status/index.html     |  8 +++---
 docs/apisix/2.7/plugins/openid-connect/index.html  |  8 +++---
 docs/apisix/2.7/plugins/prometheus/index.html      |  8 +++---
 docs/apisix/2.7/plugins/proxy-cache/index.html     |  8 +++---
 docs/apisix/2.7/plugins/proxy-mirror/index.html    |  8 +++---
 docs/apisix/2.7/plugins/proxy-rewrite/index.html   |  8 +++---
 docs/apisix/2.7/plugins/redirect/index.html        |  8 +++---
 .../2.7/plugins/referer-restriction/index.html     |  8 +++---
 docs/apisix/2.7/plugins/request-id/index.html      |  8 +++---
 .../2.7/plugins/request-validation/index.html      |  8 +++---
 .../apisix/2.7/plugins/response-rewrite/index.html |  8 +++---
 docs/apisix/2.7/plugins/server-info/index.html     |  8 +++---
 docs/apisix/2.7/plugins/serverless/index.html      |  8 +++---
 docs/apisix/2.7/plugins/skywalking/index.html      |  8 +++---
 docs/apisix/2.7/plugins/sls-logger/index.html      |  8 +++---
 docs/apisix/2.7/plugins/syslog/index.html          |  8 +++---
 docs/apisix/2.7/plugins/tcp-logger/index.html      |  8 +++---
 docs/apisix/2.7/plugins/traffic-split/index.html   |  8 +++---
 docs/apisix/2.7/plugins/udp-logger/index.html      |  8 +++---
 docs/apisix/2.7/plugins/uri-blocker/index.html     |  8 +++---
 docs/apisix/2.7/plugins/wolf-rbac/index.html       |  8 +++---
 docs/apisix/2.7/plugins/zipkin/index.html          |  8 +++---
 docs/apisix/2.7/powered-by/index.html              |  8 +++---
 docs/apisix/2.7/profile/index.html                 |  8 +++---
 docs/apisix/2.7/router-radixtree/index.html        |  8 +++---
 docs/apisix/2.7/stand-alone/index.html             |  8 +++---
 docs/apisix/2.7/stream-proxy/index.html            |  8 +++---
 docs/apisix/2.7/tags/index.html                    |  8 +++---
 docs/apisix/2.8/FAQ/index.html                     |  8 +++---
 docs/apisix/2.8/IGNORE_DOC/index.html              |  8 +++---
 docs/apisix/2.8/admin-api/index.html               |  8 +++---
 .../2.8/architecture-design/apisix/index.html      |  8 +++---
 .../2.8/architecture-design/consumer/index.html    |  8 +++---
 .../2.8/architecture-design/debug-mode/index.html  |  8 +++---
 .../2.8/architecture-design/global-rule/index.html |  8 +++---
 docs/apisix/2.8/architecture-design/index.html     |  8 +++---
 .../architecture-design/plugin-config/index.html   |  8 +++---
 .../2.8/architecture-design/plugin/index.html      |  8 +++---
 .../2.8/architecture-design/route/index.html       |  8 +++---
 .../2.8/architecture-design/router/index.html      |  8 +++---
 .../2.8/architecture-design/script/index.html      |  8 +++---
 .../2.8/architecture-design/service/index.html     |  8 +++---
 .../2.8/architecture-design/upstream/index.html    |  8 +++---
 docs/apisix/2.8/aws/index.html                     |  8 +++---
 docs/apisix/2.8/batch-processor/index.html         |  8 +++---
 docs/apisix/2.8/benchmark/index.html               |  8 +++---
 docs/apisix/2.8/certificate/index.html             |  8 +++---
 docs/apisix/2.8/control-api/index.html             |  8 +++---
 .../2.8/customize-nginx-configuration/index.html   |  8 +++---
 docs/apisix/2.8/debug-function/index.html          |  8 +++---
 docs/apisix/2.8/discovery/consul_kv/index.html     |  8 +++---
 docs/apisix/2.8/discovery/dns/index.html           |  8 +++---
 docs/apisix/2.8/discovery/eureka/index.html        |  8 +++---
 docs/apisix/2.8/discovery/index.html               |  8 +++---
 docs/apisix/2.8/discovery/nacos/index.html         |  8 +++---
 docs/apisix/2.8/dns/index.html                     |  8 +++---
 .../index.html                                     |  8 +++---
 docs/apisix/2.8/external-plugin/index.html         |  8 +++---
 docs/apisix/2.8/getting-started/index.html         |  8 +++---
 docs/apisix/2.8/grpc-proxy/index.html              |  8 +++---
 docs/apisix/2.8/health-check/index.html            |  8 +++---
 docs/apisix/2.8/how-to-build/index.html            |  8 +++---
 docs/apisix/2.8/https/index.html                   |  8 +++---
 docs/apisix/2.8/install-dependencies/index.html    |  8 +++---
 docs/apisix/2.8/mtls/index.html                    |  8 +++---
 docs/apisix/2.8/plugin-develop/index.html          |  8 +++---
 docs/apisix/2.8/plugin-interceptors/index.html     |  8 +++---
 docs/apisix/2.8/plugins/api-breaker/index.html     |  8 +++---
 docs/apisix/2.8/plugins/authz-keycloak/index.html  |  8 +++---
 docs/apisix/2.8/plugins/basic-auth/index.html      |  8 +++---
 docs/apisix/2.8/plugins/batch-requests/index.html  |  8 +++---
 docs/apisix/2.8/plugins/client-control/index.html  |  8 +++---
 .../2.8/plugins/consumer-restriction/index.html    |  8 +++---
 docs/apisix/2.8/plugins/cors/index.html            |  8 +++---
 docs/apisix/2.8/plugins/dubbo-proxy/index.html     |  8 +++---
 docs/apisix/2.8/plugins/echo/index.html            |  8 +++---
 .../apisix/2.8/plugins/error-log-logger/index.html |  8 +++---
 .../2.8/plugins/ext-plugin-post-req/index.html     |  8 +++---
 .../2.8/plugins/ext-plugin-pre-req/index.html      |  8 +++---
 docs/apisix/2.8/plugins/fault-injection/index.html |  8 +++---
 docs/apisix/2.8/plugins/grpc-transcode/index.html  |  8 +++---
 docs/apisix/2.8/plugins/gzip/index.html            |  8 +++---
 docs/apisix/2.8/plugins/hmac-auth/index.html       |  8 +++---
 docs/apisix/2.8/plugins/http-logger/index.html     |  8 +++---
 docs/apisix/2.8/plugins/index.html                 |  8 +++---
 docs/apisix/2.8/plugins/ip-restriction/index.html  |  8 +++---
 docs/apisix/2.8/plugins/jwt-auth/index.html        |  8 +++---
 docs/apisix/2.8/plugins/kafka-logger/index.html    |  8 +++---
 docs/apisix/2.8/plugins/key-auth/index.html        |  8 +++---
 docs/apisix/2.8/plugins/limit-conn/index.html      |  8 +++---
 docs/apisix/2.8/plugins/limit-count/index.html     |  8 +++---
 docs/apisix/2.8/plugins/limit-req/index.html       |  8 +++---
 docs/apisix/2.8/plugins/log-rotate/index.html      |  8 +++---
 docs/apisix/2.8/plugins/mqtt-proxy/index.html      |  8 +++---
 docs/apisix/2.8/plugins/node-status/index.html     |  8 +++---
 docs/apisix/2.8/plugins/openid-connect/index.html  |  8 +++---
 docs/apisix/2.8/plugins/prometheus/index.html      |  8 +++---
 docs/apisix/2.8/plugins/proxy-cache/index.html     |  8 +++---
 docs/apisix/2.8/plugins/proxy-mirror/index.html    |  8 +++---
 docs/apisix/2.8/plugins/proxy-rewrite/index.html   |  8 +++---
 docs/apisix/2.8/plugins/redirect/index.html        |  8 +++---
 .../2.8/plugins/referer-restriction/index.html     |  8 +++---
 docs/apisix/2.8/plugins/request-id/index.html      |  8 +++---
 .../2.8/plugins/request-validation/index.html      |  8 +++---
 .../apisix/2.8/plugins/response-rewrite/index.html |  8 +++---
 docs/apisix/2.8/plugins/server-info/index.html     |  8 +++---
 docs/apisix/2.8/plugins/serverless/index.html      |  8 +++---
 docs/apisix/2.8/plugins/skywalking/index.html      |  8 +++---
 docs/apisix/2.8/plugins/sls-logger/index.html      |  8 +++---
 docs/apisix/2.8/plugins/syslog/index.html          |  8 +++---
 docs/apisix/2.8/plugins/tcp-logger/index.html      |  8 +++---
 docs/apisix/2.8/plugins/traffic-split/index.html   |  8 +++---
 docs/apisix/2.8/plugins/ua-restriction/index.html  |  8 +++---
 docs/apisix/2.8/plugins/udp-logger/index.html      |  8 +++---
 docs/apisix/2.8/plugins/uri-blocker/index.html     |  8 +++---
 docs/apisix/2.8/plugins/wolf-rbac/index.html       |  8 +++---
 docs/apisix/2.8/plugins/zipkin/index.html          |  8 +++---
 docs/apisix/2.8/powered-by/index.html              |  8 +++---
 docs/apisix/2.8/profile/index.html                 |  8 +++---
 docs/apisix/2.8/router-radixtree/index.html        |  8 +++---
 docs/apisix/2.8/stand-alone/index.html             |  8 +++---
 docs/apisix/2.8/stream-proxy/index.html            |  8 +++---
 docs/apisix/2.8/tags/index.html                    |  8 +++---
 docs/apisix/FAQ/index.html                         |  8 +++---
 docs/apisix/IGNORE_DOC/index.html                  |  8 +++---
 docs/apisix/admin-api/index.html                   |  8 +++---
 docs/apisix/architecture-design/apisix/index.html  |  8 +++---
 .../apisix/architecture-design/consumer/index.html |  8 +++---
 .../architecture-design/debug-mode/index.html      |  8 +++---
 .../architecture-design/global-rule/index.html     |  8 +++---
 docs/apisix/architecture-design/index.html         |  8 +++---
 .../architecture-design/plugin-config/index.html   |  8 +++---
 docs/apisix/architecture-design/plugin/index.html  |  8 +++---
 docs/apisix/architecture-design/route/index.html   |  8 +++---
 docs/apisix/architecture-design/router/index.html  |  8 +++---
 docs/apisix/architecture-design/script/index.html  |  8 +++---
 docs/apisix/architecture-design/service/index.html |  8 +++---
 .../apisix/architecture-design/upstream/index.html |  8 +++---
 docs/apisix/aws/index.html                         |  8 +++---
 docs/apisix/batch-processor/index.html             |  8 +++---
 docs/apisix/benchmark/index.html                   |  8 +++---
 docs/apisix/certificate/index.html                 |  8 +++---
 docs/apisix/control-api/index.html                 |  8 +++---
 .../customize-nginx-configuration/index.html       |  8 +++---
 docs/apisix/debug-function/index.html              |  8 +++---
 docs/apisix/discovery/consul_kv/index.html         |  8 +++---
 docs/apisix/discovery/dns/index.html               |  8 +++---
 docs/apisix/discovery/eureka/index.html            |  8 +++---
 docs/apisix/discovery/index.html                   |  8 +++---
 docs/apisix/discovery/nacos/index.html             |  8 +++---
 docs/apisix/dns/index.html                         |  8 +++---
 .../index.html                                     |  8 +++---
 docs/apisix/external-plugin/index.html             |  8 +++---
 docs/apisix/getting-started/index.html             |  8 +++---
 docs/apisix/grpc-proxy/index.html                  |  8 +++---
 docs/apisix/health-check/index.html                |  8 +++---
 docs/apisix/how-to-build/index.html                |  8 +++---
 docs/apisix/https/index.html                       |  8 +++---
 docs/apisix/install-dependencies/index.html        |  8 +++---
 docs/apisix/internal/testing-framework/index.html  |  8 +++---
 docs/apisix/mtls/index.html                        |  8 +++---
 docs/apisix/next/FAQ/index.html                    |  8 +++---
 docs/apisix/next/IGNORE_DOC/index.html             | 10 ++++----
 docs/apisix/next/admin-api/index.html              |  8 +++---
 .../next/architecture-design/apisix/index.html     |  8 +++---
 .../next/architecture-design/consumer/index.html   |  8 +++---
 .../next/architecture-design/debug-mode/index.html |  8 +++---
 .../architecture-design/global-rule/index.html     |  8 +++---
 docs/apisix/next/architecture-design/index.html    |  8 +++---
 .../architecture-design/plugin-config/index.html   |  8 +++---
 .../next/architecture-design/plugin/index.html     |  8 +++---
 .../next/architecture-design/route/index.html      |  8 +++---
 .../next/architecture-design/router/index.html     |  8 +++---
 .../next/architecture-design/script/index.html     |  8 +++---
 .../next/architecture-design/service/index.html    |  8 +++---
 .../next/architecture-design/upstream/index.html   |  8 +++---
 docs/apisix/next/aws/index.html                    |  8 +++---
 docs/apisix/next/batch-processor/index.html        |  8 +++---
 docs/apisix/next/benchmark/index.html              |  8 +++---
 docs/apisix/next/certificate/index.html            |  8 +++---
 docs/apisix/next/control-api/index.html            |  8 +++---
 .../next/customize-nginx-configuration/index.html  |  8 +++---
 docs/apisix/next/debug-function/index.html         |  8 +++---
 docs/apisix/next/discovery/consul_kv/index.html    |  8 +++---
 docs/apisix/next/discovery/dns/index.html          |  8 +++---
 docs/apisix/next/discovery/eureka/index.html       |  8 +++---
 docs/apisix/next/discovery/index.html              |  8 +++---
 docs/apisix/next/discovery/nacos/index.html        |  8 +++---
 docs/apisix/next/dns/index.html                    |  8 +++---
 .../index.html                                     |  8 +++---
 docs/apisix/next/external-plugin/index.html        |  8 +++---
 docs/apisix/next/getting-started/index.html        |  8 +++---
 docs/apisix/next/grpc-proxy/index.html             |  8 +++---
 docs/apisix/next/health-check/index.html           |  8 +++---
 docs/apisix/next/how-to-build/index.html           |  8 +++---
 docs/apisix/next/https/index.html                  |  8 +++---
 docs/apisix/next/install-dependencies/index.html   |  8 +++---
 .../next/internal/testing-framework/index.html     |  8 +++---
 docs/apisix/next/mtls/index.html                   |  8 +++---
 docs/apisix/next/plugin-develop/index.html         |  8 +++---
 docs/apisix/next/plugin-interceptors/index.html    |  8 +++---
 docs/apisix/next/plugins/api-breaker/index.html    |  8 +++---
 docs/apisix/next/plugins/authz-casbin/index.html   |  8 +++---
 docs/apisix/next/plugins/authz-keycloak/index.html |  8 +++---
 docs/apisix/next/plugins/basic-auth/index.html     |  8 +++---
 docs/apisix/next/plugins/batch-requests/index.html |  8 +++---
 docs/apisix/next/plugins/client-control/index.html |  8 +++---
 .../next/plugins/consumer-restriction/index.html   |  8 +++---
 docs/apisix/next/plugins/cors/index.html           |  8 +++---
 docs/apisix/next/plugins/dubbo-proxy/index.html    |  8 +++---
 docs/apisix/next/plugins/echo/index.html           |  8 +++---
 .../next/plugins/error-log-logger/index.html       |  8 +++---
 .../next/plugins/ext-plugin-post-req/index.html    |  8 +++---
 .../next/plugins/ext-plugin-pre-req/index.html     |  8 +++---
 .../apisix/next/plugins/fault-injection/index.html |  8 +++---
 docs/apisix/next/plugins/grpc-transcode/index.html |  8 +++---
 docs/apisix/next/plugins/gzip/index.html           |  8 +++---
 docs/apisix/next/plugins/hmac-auth/index.html      |  8 +++---
 docs/apisix/next/plugins/http-logger/index.html    |  8 +++---
 docs/apisix/next/plugins/index.html                |  8 +++---
 docs/apisix/next/plugins/ip-restriction/index.html |  8 +++---
 docs/apisix/next/plugins/jwt-auth/index.html       |  8 +++---
 docs/apisix/next/plugins/kafka-logger/index.html   |  8 +++---
 docs/apisix/next/plugins/key-auth/index.html       |  8 +++---
 docs/apisix/next/plugins/limit-conn/index.html     |  8 +++---
 docs/apisix/next/plugins/limit-count/index.html    |  8 +++---
 docs/apisix/next/plugins/limit-req/index.html      |  8 +++---
 docs/apisix/next/plugins/log-rotate/index.html     |  8 +++---
 docs/apisix/next/plugins/mqtt-proxy/index.html     |  8 +++---
 docs/apisix/next/plugins/node-status/index.html    |  8 +++---
 docs/apisix/next/plugins/openid-connect/index.html |  8 +++---
 docs/apisix/next/plugins/prometheus/index.html     |  8 +++---
 docs/apisix/next/plugins/proxy-cache/index.html    |  8 +++---
 docs/apisix/next/plugins/proxy-mirror/index.html   |  8 +++---
 docs/apisix/next/plugins/proxy-rewrite/index.html  |  8 +++---
 docs/apisix/next/plugins/real-ip/index.html        |  8 +++---
 docs/apisix/next/plugins/redirect/index.html       |  8 +++---
 .../next/plugins/referer-restriction/index.html    |  8 +++---
 docs/apisix/next/plugins/request-id/index.html     |  8 +++---
 .../next/plugins/request-validation/index.html     |  8 +++---
 .../next/plugins/response-rewrite/index.html       |  8 +++---
 docs/apisix/next/plugins/server-info/index.html    |  8 +++---
 docs/apisix/next/plugins/serverless/index.html     |  8 +++---
 docs/apisix/next/plugins/skywalking/index.html     |  8 +++---
 docs/apisix/next/plugins/sls-logger/index.html     |  8 +++---
 docs/apisix/next/plugins/syslog/index.html         |  8 +++---
 docs/apisix/next/plugins/tcp-logger/index.html     |  8 +++---
 docs/apisix/next/plugins/traffic-split/index.html  |  8 +++---
 docs/apisix/next/plugins/ua-restriction/index.html |  8 +++---
 docs/apisix/next/plugins/udp-logger/index.html     |  8 +++---
 docs/apisix/next/plugins/uri-blocker/index.html    |  8 +++---
 docs/apisix/next/plugins/wolf-rbac/index.html      |  8 +++---
 docs/apisix/next/plugins/zipkin/index.html         |  8 +++---
 docs/apisix/next/powered-by/index.html             |  8 +++---
 docs/apisix/next/profile/index.html                |  8 +++---
 docs/apisix/next/router-radixtree/index.html       |  8 +++---
 docs/apisix/next/stand-alone/index.html            |  8 +++---
 docs/apisix/next/stream-proxy/index.html           |  8 +++---
 docs/apisix/next/tags/index.html                   |  8 +++---
 docs/apisix/plugin-develop/index.html              |  8 +++---
 docs/apisix/plugin-interceptors/index.html         |  8 +++---
 docs/apisix/plugins/api-breaker/index.html         |  8 +++---
 docs/apisix/plugins/authz-casbin/index.html        |  8 +++---
 docs/apisix/plugins/authz-keycloak/index.html      |  8 +++---
 docs/apisix/plugins/basic-auth/index.html          |  8 +++---
 docs/apisix/plugins/batch-requests/index.html      |  8 +++---
 docs/apisix/plugins/client-control/index.html      |  8 +++---
 .../apisix/plugins/consumer-restriction/index.html |  8 +++---
 docs/apisix/plugins/cors/index.html                |  8 +++---
 docs/apisix/plugins/dubbo-proxy/index.html         |  8 +++---
 docs/apisix/plugins/echo/index.html                |  8 +++---
 docs/apisix/plugins/error-log-logger/index.html    |  8 +++---
 docs/apisix/plugins/ext-plugin-post-req/index.html |  8 +++---
 docs/apisix/plugins/ext-plugin-pre-req/index.html  |  8 +++---
 docs/apisix/plugins/fault-injection/index.html     |  8 +++---
 docs/apisix/plugins/grpc-transcode/index.html      |  8 +++---
 docs/apisix/plugins/gzip/index.html                |  8 +++---
 docs/apisix/plugins/hmac-auth/index.html           |  8 +++---
 docs/apisix/plugins/http-logger/index.html         |  8 +++---
 docs/apisix/plugins/index.html                     |  8 +++---
 docs/apisix/plugins/ip-restriction/index.html      |  8 +++---
 docs/apisix/plugins/jwt-auth/index.html            |  8 +++---
 docs/apisix/plugins/kafka-logger/index.html        |  8 +++---
 docs/apisix/plugins/key-auth/index.html            |  8 +++---
 docs/apisix/plugins/limit-conn/index.html          |  8 +++---
 docs/apisix/plugins/limit-count/index.html         |  8 +++---
 docs/apisix/plugins/limit-req/index.html           |  8 +++---
 docs/apisix/plugins/log-rotate/index.html          |  8 +++---
 docs/apisix/plugins/mqtt-proxy/index.html          |  8 +++---
 docs/apisix/plugins/node-status/index.html         |  8 +++---
 docs/apisix/plugins/openid-connect/index.html      |  8 +++---
 docs/apisix/plugins/prometheus/index.html          |  8 +++---
 docs/apisix/plugins/proxy-cache/index.html         |  8 +++---
 docs/apisix/plugins/proxy-mirror/index.html        |  8 +++---
 docs/apisix/plugins/proxy-rewrite/index.html       |  8 +++---
 docs/apisix/plugins/real-ip/index.html             |  8 +++---
 docs/apisix/plugins/redirect/index.html            |  8 +++---
 docs/apisix/plugins/referer-restriction/index.html |  8 +++---
 docs/apisix/plugins/request-id/index.html          |  8 +++---
 docs/apisix/plugins/request-validation/index.html  |  8 +++---
 docs/apisix/plugins/response-rewrite/index.html    |  8 +++---
 docs/apisix/plugins/server-info/index.html         |  8 +++---
 docs/apisix/plugins/serverless/index.html          |  8 +++---
 docs/apisix/plugins/skywalking/index.html          |  8 +++---
 docs/apisix/plugins/sls-logger/index.html          |  8 +++---
 docs/apisix/plugins/syslog/index.html              |  8 +++---
 docs/apisix/plugins/tcp-logger/index.html          |  8 +++---
 docs/apisix/plugins/traffic-split/index.html       |  8 +++---
 docs/apisix/plugins/ua-restriction/index.html      |  8 +++---
 docs/apisix/plugins/udp-logger/index.html          |  8 +++---
 docs/apisix/plugins/uri-blocker/index.html         |  8 +++---
 docs/apisix/plugins/wolf-rbac/index.html           |  8 +++---
 docs/apisix/plugins/zipkin/index.html              |  8 +++---
 docs/apisix/powered-by/index.html                  |  8 +++---
 docs/apisix/profile/index.html                     |  8 +++---
 docs/apisix/router-radixtree/index.html            |  8 +++---
 docs/apisix/stand-alone/index.html                 |  8 +++---
 docs/apisix/stream-proxy/index.html                |  8 +++---
 docs/apisix/tags/index.html                        |  8 +++---
 docs/dashboard/2.5/FAQ/index.html                  |  8 +++---
 docs/dashboard/2.5/I18N_USER_GUIDE/index.html      |  8 +++---
 docs/dashboard/2.5/IGNORE_DOC/index.html           |  8 +++---
 .../2.5/IMPORT_OPENAPI_USER_GUIDE/index.html       |  8 +++---
 docs/dashboard/2.5/USER_GUIDE/index.html           |  8 +++---
 docs/dashboard/2.5/api/api/index.html              |  8 +++---
 docs/dashboard/2.5/back-end-tests/index.html       |  8 +++---
 docs/dashboard/2.5/deploy-with-docker/index.html   |  8 +++---
 docs/dashboard/2.5/deploy-with-rpm/index.html      |  8 +++---
 docs/dashboard/2.5/deploy/index.html               |  8 +++---
 docs/dashboard/2.5/develop/index.html              |  8 +++---
 docs/dashboard/2.5/front-end-e2e/index.html        |  8 +++---
 docs/dashboard/2.5/tags/index.html                 |  8 +++---
 docs/dashboard/2.6.1/FAQ/index.html                |  8 +++---
 docs/dashboard/2.6.1/I18N_USER_GUIDE/index.html    |  8 +++---
 docs/dashboard/2.6.1/IGNORE_DOC/index.html         |  8 +++---
 .../2.6.1/IMPORT_OPENAPI_USER_GUIDE/index.html     |  8 +++---
 docs/dashboard/2.6.1/USER_GUIDE/index.html         |  8 +++---
 docs/dashboard/2.6.1/api/api/index.html            |  8 +++---
 docs/dashboard/2.6.1/back-end-tests/index.html     |  8 +++---
 docs/dashboard/2.6.1/deploy-with-docker/index.html |  8 +++---
 docs/dashboard/2.6.1/deploy-with-rpm/index.html    |  8 +++---
 docs/dashboard/2.6.1/deploy/index.html             |  8 +++---
 docs/dashboard/2.6.1/develop/index.html            |  8 +++---
 docs/dashboard/2.6.1/front-end-e2e/index.html      |  8 +++---
 docs/dashboard/2.6.1/tags/index.html               |  8 +++---
 docs/dashboard/2.6/FAQ/index.html                  |  8 +++---
 docs/dashboard/2.6/I18N_USER_GUIDE/index.html      |  8 +++---
 docs/dashboard/2.6/IGNORE_DOC/index.html           |  8 +++---
 .../2.6/IMPORT_OPENAPI_USER_GUIDE/index.html       |  8 +++---
 docs/dashboard/2.6/USER_GUIDE/index.html           |  8 +++---
 docs/dashboard/2.6/api/api/index.html              |  8 +++---
 docs/dashboard/2.6/back-end-tests/index.html       |  8 +++---
 docs/dashboard/2.6/deploy-with-docker/index.html   |  8 +++---
 docs/dashboard/2.6/deploy-with-rpm/index.html      |  8 +++---
 docs/dashboard/2.6/deploy/index.html               |  8 +++---
 docs/dashboard/2.6/develop/index.html              |  8 +++---
 docs/dashboard/2.6/front-end-e2e/index.html        |  8 +++---
 docs/dashboard/2.6/tags/index.html                 |  8 +++---
 docs/dashboard/2.7.1/FAQ/index.html                |  8 +++---
 docs/dashboard/2.7.1/I18N_USER_GUIDE/index.html    |  8 +++---
 docs/dashboard/2.7.1/IGNORE_DOC/index.html         |  8 +++---
 .../2.7.1/IMPORT_OPENAPI_USER_GUIDE/index.html     |  8 +++---
 docs/dashboard/2.7.1/USER_GUIDE/index.html         |  8 +++---
 docs/dashboard/2.7.1/api/api/index.html            |  8 +++---
 docs/dashboard/2.7.1/back-end-tests/index.html     |  8 +++---
 docs/dashboard/2.7.1/deploy-with-docker/index.html |  8 +++---
 docs/dashboard/2.7.1/deploy-with-rpm/index.html    |  8 +++---
 docs/dashboard/2.7.1/deploy/index.html             |  8 +++---
 docs/dashboard/2.7.1/develop/index.html            |  8 +++---
 docs/dashboard/2.7.1/front-end-e2e/index.html      |  8 +++---
 docs/dashboard/2.7.1/tags/index.html               |  8 +++---
 docs/dashboard/2.7/FAQ/index.html                  |  8 +++---
 docs/dashboard/2.7/I18N_USER_GUIDE/index.html      |  8 +++---
 docs/dashboard/2.7/IGNORE_DOC/index.html           |  8 +++---
 .../2.7/IMPORT_OPENAPI_USER_GUIDE/index.html       |  8 +++---
 docs/dashboard/2.7/USER_GUIDE/index.html           |  8 +++---
 docs/dashboard/2.7/api/api/index.html              |  8 +++---
 docs/dashboard/2.7/back-end-tests/index.html       |  8 +++---
 docs/dashboard/2.7/deploy-with-docker/index.html   |  8 +++---
 docs/dashboard/2.7/deploy-with-rpm/index.html      |  8 +++---
 docs/dashboard/2.7/deploy/index.html               |  8 +++---
 docs/dashboard/2.7/develop/index.html              |  8 +++---
 docs/dashboard/2.7/front-end-e2e/index.html        |  8 +++---
 docs/dashboard/2.7/tags/index.html                 |  8 +++---
 docs/dashboard/FAQ/index.html                      |  8 +++---
 docs/dashboard/I18N_USER_GUIDE/index.html          |  8 +++---
 docs/dashboard/IGNORE_DOC/index.html               |  8 +++---
 .../dashboard/IMPORT_OPENAPI_USER_GUIDE/index.html |  8 +++---
 docs/dashboard/USER_GUIDE/index.html               |  8 +++---
 docs/dashboard/api/api/index.html                  |  8 +++---
 docs/dashboard/back-end-tests/index.html           |  8 +++---
 docs/dashboard/deploy-with-docker/index.html       |  8 +++---
 docs/dashboard/deploy-with-rpm/index.html          |  8 +++---
 docs/dashboard/deploy/index.html                   |  8 +++---
 docs/dashboard/develop/index.html                  |  8 +++---
 docs/dashboard/front-end-e2e/index.html            |  8 +++---
 docs/dashboard/next/FAQ/index.html                 |  8 +++---
 docs/dashboard/next/I18N_USER_GUIDE/index.html     |  8 +++---
 docs/dashboard/next/IGNORE_DOC/index.html          | 10 ++++----
 .../next/IMPORT_OPENAPI_USER_GUIDE/index.html      |  8 +++---
 docs/dashboard/next/USER_GUIDE/index.html          |  8 +++---
 docs/dashboard/next/api/api/index.html             |  8 +++---
 docs/dashboard/next/back-end-tests/index.html      |  8 +++---
 docs/dashboard/next/deploy-with-docker/index.html  |  8 +++---
 docs/dashboard/next/deploy-with-rpm/index.html     |  8 +++---
 docs/dashboard/next/deploy/index.html              |  8 +++---
 docs/dashboard/next/develop/index.html             |  8 +++---
 docs/dashboard/next/front-end-e2e/index.html       |  8 +++---
 docs/dashboard/next/tags/index.html                |  8 +++---
 docs/dashboard/tags/index.html                     |  8 +++---
 docs/docker/IGNORE_DOC/index.html                  |  8 +++---
 docs/docker/apisix-2.9.0/IGNORE_DOC/index.html     |  8 +++---
 docs/docker/apisix-2.9.0/build/index.html          |  8 +++---
 docs/docker/apisix-2.9.0/example/index.html        |  8 +++---
 docs/docker/apisix-2.9.0/manual/index.html         |  8 +++---
 docs/docker/apisix-2.9.0/tags/index.html           |  8 +++---
 docs/docker/build/index.html                       |  8 +++---
 docs/docker/example/index.html                     |  8 +++---
 docs/docker/manual/index.html                      |  8 +++---
 docs/docker/next/IGNORE_DOC/index.html             | 10 ++++----
 docs/docker/next/build/index.html                  |  8 +++---
 docs/docker/next/example/index.html                |  8 +++---
 docs/docker/next/manual/index.html                 |  8 +++---
 docs/docker/next/tags/index.html                   |  8 +++---
 docs/docker/tags/index.html                        |  8 +++---
 docs/general/2fa/index.html                        | 10 ++++----
 docs/general/committer-guide/index.html            | 10 ++++----
 docs/general/contributor-guide/index.html          | 10 ++++----
 .../general/integrate-with-project-docs/index.html | 10 ++++----
 docs/general/release-guide/index.html              | 10 ++++----
 docs/general/security/index.html                   | 10 ++++----
 docs/general/subscribe-guide/index.html            | 10 ++++----
 docs/general/tags/index.html                       |  8 +++---
 docs/go-plugin-runner/0.1.0/IGNORE_DOC/index.html  |  8 +++---
 .../0.1.0/developer-guide/index.html               |  8 +++---
 .../0.1.0/getting-started/index.html               |  8 +++---
 docs/go-plugin-runner/0.1.0/tags/index.html        |  8 +++---
 docs/go-plugin-runner/IGNORE_DOC/index.html        |  8 +++---
 docs/go-plugin-runner/developer-guide/index.html   |  8 +++---
 docs/go-plugin-runner/getting-started/index.html   |  8 +++---
 docs/go-plugin-runner/next/IGNORE_DOC/index.html   | 10 ++++----
 .../next/developer-guide/index.html                |  8 +++---
 .../next/getting-started/index.html                |  8 +++---
 docs/go-plugin-runner/next/tags/index.html         |  8 +++---
 docs/go-plugin-runner/tags/index.html              |  8 +++---
 docs/helm-chart/FAQ/index.html                     |  8 +++---
 docs/helm-chart/IGNORE_DOC/index.html              | 10 ++++----
 docs/helm-chart/apisix-dashboard/index.html        |  8 +++---
 .../apisix-ingress-controller/index.html           |  8 +++---
 docs/helm-chart/apisix/index.html                  |  8 +++---
 docs/helm-chart/tags/index.html                    |  8 +++---
 docs/index.html                                    |  8 +++---
 docs/ingress-controller/FAQ/index.html             |  8 +++---
 docs/ingress-controller/IGNORE_DOC/index.html      | 10 ++++----
 .../concepts/annotations/index.html                |  8 +++---
 .../concepts/apisix_cluster_config/index.html      |  8 +++---
 .../concepts/apisix_route/index.html               |  8 +++---
 .../concepts/apisix_tls/index.html                 |  8 +++---
 .../concepts/apisix_upstream/index.html            |  8 +++---
 docs/ingress-controller/contribute/index.html      |  8 +++---
 docs/ingress-controller/deployments/ack/index.html |  8 +++---
 docs/ingress-controller/deployments/aws/index.html |  8 +++---
 .../deployments/azure/index.html                   |  8 +++---
 docs/ingress-controller/deployments/gke/index.html |  8 +++---
 .../deployments/k3s-rke/index.html                 |  8 +++---
 .../deployments/kubesphere/index.html              |  8 +++---
 .../deployments/minikube/index.html                |  8 +++---
 docs/ingress-controller/deployments/tke/index.html |  8 +++---
 docs/ingress-controller/design/index.html          |  8 +++---
 docs/ingress-controller/development/index.html     |  8 +++---
 docs/ingress-controller/getting-started/index.html |  8 +++---
 .../practices/check-crd-status/index.html          |  8 +++---
 docs/ingress-controller/practices/index/index.html |  8 +++---
 docs/ingress-controller/practices/mtls/index.html  |  8 +++---
 .../index.html                                     |  8 +++---
 .../practices/proxy-the-httpbin-service/index.html |  8 +++---
 .../practices/the-hard-way/index.html              |  8 +++---
 .../references/apisix_cluster_config/index.html    |  8 +++---
 .../references/apisix_route_v1/index.html          |  8 +++---
 .../references/apisix_route_v2alpha1/index.html    |  8 +++---
 .../references/apisix_route_v2beta1/index.html     |  8 +++---
 .../references/apisix_tls/index.html               |  8 +++---
 .../references/apisix_upstream/index.html          |  8 +++---
 docs/ingress-controller/tags/index.html            |  8 +++---
 docs/java-plugin-runner/IGNORE_DOC/index.html      |  8 +++---
 docs/java-plugin-runner/development/index.html     |  8 +++---
 docs/java-plugin-runner/how-it-works/index.html    |  8 +++---
 docs/java-plugin-runner/next/IGNORE_DOC/index.html | 10 ++++----
 .../java-plugin-runner/next/development/index.html |  8 +++---
 .../next/how-it-works/index.html                   |  8 +++---
 docs/java-plugin-runner/next/tags/index.html       |  8 +++---
 .../index.html                                     |  8 +++---
 docs/java-plugin-runner/tags/index.html            |  8 +++---
 .../index.html                                     |  8 +++---
 docs/python-plugin-runner/IGNORE_DOC/index.html    |  8 +++---
 .../developer-guide/index.html                     |  8 +++---
 .../getting-started/index.html                     |  8 +++---
 .../next/IGNORE_DOC/index.html                     | 10 ++++----
 .../next/developer-guide/index.html                |  8 +++---
 .../next/getting-started/index.html                |  8 +++---
 docs/python-plugin-runner/next/tags/index.html     |  8 +++---
 docs/python-plugin-runner/tags/index.html          |  8 +++---
 downloads/ProjectCard/index.html                   |  8 +++---
 downloads/index.html                               |  8 +++---
 .../index.html                                     |  8 +++---
 .../index.html                                     |  8 +++---
 .../02/09/release-apache-apisix-2.3/index.html     |  8 +++---
 .../index.html                                     |  8 +++---
 .../release-apache-apisix-dashboard-2.4/index.html |  8 +++---
 .../03/05/release-apache-apisix-2.4/index.html     |  8 +++---
 .../index.html                                     |  8 +++---
 .../04/05/release-apache-apisix-2.5/index.html     |  8 +++---
 .../index.html                                     |  8 +++---
 .../release-apache-apisix-dashboard-2.6/index.html |  8 +++---
 .../05/24/release-apache-apisix-2.6/index.html     |  8 +++---
 .../index.html                                     |  8 +++---
 .../release-apache-apisix-dashboard-2.7/index.html |  8 +++---
 .../06/25/release-apache-apisix-2.7/index.html     |  8 +++---
 events/2021/08/19/weekly-report/index.html         |  8 +++---
 events/2021/08/21/shanghai-meetup/index.html       |  8 +++---
 events/2021/08/23/ApacheCon-Asia-2021/index.html   |  8 +++---
 events/2021/08/23/weekly-report/index.html         |  8 +++---
 events/2021/08/30/weekly-report/index.html         |  8 +++---
 events/archive/index.html                          |  8 +++---
 events/index.html                                  |  8 +++---
 events/page/2/index.html                           |  8 +++---
 events/tags/index.html                             |  8 +++---
 events/tags/technology/index.html                  |  8 +++---
 help/index.html                                    |  8 +++---
 index.html                                         |  8 +++---
 plugins/index.html                                 |  8 +++---
 .../11/15/release-apache-apisix-0.9/index.html     |  8 +++---
 .../2019/9/29/release-apache-apisix-0.8/index.html |  8 +++---
 .../2019/9/6/release-apache-apisix-0.7/index.html  |  8 +++---
 .../2020/1/15/release-apache-apisix-1.0/index.html |  8 +++---
 .../10/28/release-apache-apisix-2.0/index.html     |  8 +++---
 .../2020/12/1/release-apache-apisix-2.1/index.html |  8 +++---
 .../release-apache-apisix-dashboard-2.2/index.html |  8 +++---
 .../index.html                                     |  8 +++---
 .../2020/2/24/release-apache-apisix-1.1/index.html |  8 +++---
 .../release-apache-apisix-dashboard-1.0/index.html |  8 +++---
 .../2020/4/20/release-apache-apisix-1.2/index.html |  8 +++---
 .../2020/5/26/release-apache-apisix-1.3/index.html |  8 +++---
 .../2020/6/30/release-apache-apisix-1.4/index.html |  8 +++---
 .../7/20/release-apache-apisix-1.4.1/index.html    |  8 +++---
 .../release-apache-apisix-dashboard-1.5/index.html |  8 +++---
 .../2020/8/6/release-apache-apisix-1.5/index.html  |  8 +++---
 .../release-apache-apisix-dashboard-2.3/index.html |  8 +++---
 .../index.html                                     |  8 +++---
 .../2021/1/8/release-apache-apisix-2.2/index.html  |  8 +++---
 .../index.html                                     |  8 +++---
 .../release-apache-apisix-dashboard-2.4/index.html |  8 +++---
 .../2021/2/9/release-apache-apisix-2.3/index.html  |  8 +++---
 .../index.html                                     |  8 +++---
 .../release-apache-apisix-dashboard-2.5/index.html |  8 +++---
 .../2021/3/5/release-apache-apisix-2.4/index.html  |  8 +++---
 .../index.html                                     |  8 +++---
 .../release-apache-apisix-dashboard-2.6/index.html |  8 +++---
 .../2021/4/5/release-apache-apisix-2.5/index.html  |  8 +++---
 .../index.html                                     |  8 +++---
 .../2021/5/24/release-apache-apisix-2.6/index.html |  8 +++---
 .../index.html                                     |  8 +++---
 .../release-apache-apisix-dashboard-2.7/index.html |  8 +++---
 .../index.html                                     |  8 +++---
 .../2021/6/25/release-apache-apisix-2.7/index.html |  8 +++---
 .../index.html                                     |  8 +++---
 .../index.html                                     |  8 +++---
 .../2021/7/27/release-apache-apisix-2.8/index.html |  8 +++---
 .../index.html                                     |  8 +++---
 .../index.html                                     |  8 +++---
 .../index.html                                     |  8 +++---
 .../2021/8/27/release-apache-apisix-2.9/index.html |  8 +++---
 .../index.html                                     |  8 +++---
 .../index.html                                     |  8 +++---
 .../release-apache-apisix-dashboard-2.8/index.html |  8 +++---
 releases/archive/index.html                        |  8 +++---
 releases/index.html                                |  8 +++---
 releases/page/2/index.html                         |  8 +++---
 releases/page/3/index.html                         |  8 +++---
 releases/page/4/index.html                         |  8 +++---
 releases/page/5/index.html                         |  8 +++---
 releases/tags/apisix-dashboard/index.html          |  8 +++---
 releases/tags/apisix-go-plugin-runner/index.html   |  8 +++---
 releases/tags/apisix-ingress-controller/index.html |  8 +++---
 releases/tags/apisix-java-plugin-runner/index.html |  8 +++---
 .../tags/apisix-python-plugin-runner/index.html    |  8 +++---
 releases/tags/apisix/index.html                    |  8 +++---
 releases/tags/index.html                           |  8 +++---
 search/index.html                                  | 10 ++++----
 showcase/index.html                                |  8 +++---
 sitemap.xml                                        |  2 +-
 team/index.html                                    |  8 +++---
 zh/404.html                                        |  8 +++---
 .../index.html                                     |  8 +++---
 .../index.html                                     | 10 ++++----
 .../Apache-APISIX-Incubator-Journey/index.html     |  8 +++---
 .../Apache-APISIX-Kubernetes-Ingress/index.html    |  8 +++---
 .../Apache-APISIX-in-China-Mobile-Cloud/index.html | 10 ++++----
 .../index.html                                     |  8 +++---
 .../index.html                                     |  8 +++---
 .../index.html                                     |  8 +++---
 .../Speed-Limiting-With-Apache-APISIX/index.html   |  8 +++---
 .../index.html                                     |  8 +++---
 zh/articles/The-Appeal-of-OpenSource/index.html    |  8 +++---
 .../The-Evolution-of-Apache-APISIX/index.html      |  8 +++---
 .../index.html                                     |  8 +++---
 zh/articles/archive/index.html                     |  8 +++---
 zh/articles/atom.xml                               |  6 ++---
 zh/articles/index.html                             | 10 ++++----
 zh/articles/page/2/index.html                      |  8 +++---
 zh/articles/rss.xml                                |  6 ++---
 .../{09b17eb5.a9f90673.js => 09b17eb5.b1da40bc.js} |  2 +-
 zh/assets/js/19945770.1af5f521.js                  |  1 +
 zh/assets/js/19945770.7e14f2b3.js                  |  1 -
 .../{3393d167.46f4cb5f.js => 3393d167.4c8915ef.js} |  2 +-
 .../{358566b4.6bbfe154.js => 358566b4.20f8bb57.js} |  2 +-
 .../{3a332aed.233c04c5.js => 3a332aed.e8c79d67.js} |  2 +-
 .../assets/js/3dc9f306.d78366e3.js                 |  2 +-
 .../{40fb2fae.a71ce805.js => 40fb2fae.d5403152.js} |  2 +-
 .../assets/js/4c20006b.81674f4a.js                 |  2 +-
 zh/assets/js/4c20006b.eac34500.js                  |  1 -
 .../assets/js/50facf8e.681bcb91.js                 |  2 +-
 .../{542fd41f.0234f3da.js => 542fd41f.214e441a.js} |  2 +-
 .../{5b0fa993.de95925f.js => 5b0fa993.fb533ceb.js} |  2 +-
 .../{601c6eaa.c03f306e.js => 601c6eaa.6cad27ed.js} |  2 +-
 .../assets/js/66fbb9c2.cd30cd25.js                 |  2 +-
 zh/assets/js/6da3feee.61a3a52f.js                  |  1 -
 zh/assets/js/6da3feee.bc0af00e.js                  |  1 +
 zh/assets/js/7af3052c.060aca42.js                  |  1 -
 zh/assets/js/7af3052c.1e394f2e.js                  |  1 +
 .../assets/js/80791de8.28d2db9e.js                 |  2 +-
 zh/assets/js/80791de8.b708821b.js                  |  1 -
 zh/assets/js/814f3328.7d3c4878.js                  |  1 +
 zh/assets/js/814f3328.9ad2a260.js                  |  1 -
 zh/assets/js/8159971e.e64d4aae.js                  |  1 +
 zh/assets/js/83edfd60.e595380a.js                  |  1 +
 zh/assets/js/8e784bf3.814c2e1a.js                  |  1 -
 zh/assets/js/8e784bf3.e5a26520.js                  |  1 +
 .../{8f700fa6.9f8745d0.js => 8f700fa6.649dac05.js} |  2 +-
 .../{90fc8a94.9d105db3.js => 90fc8a94.40fb082b.js} |  2 +-
 zh/assets/js/927d70e2.9db82490.js                  |  1 +
 zh/assets/js/927d70e2.ae6c514d.js                  |  1 -
 .../{941960b1.8e07267a.js => 941960b1.ece04c64.js} |  2 +-
 zh/assets/js/adbb350b.00ea3583.js                  |  1 -
 zh/assets/js/adbb350b.0fc14610.js                  |  1 +
 zh/assets/js/bfb16af5.1d11dd31.js                  |  1 -
 zh/assets/js/bfb16af5.2bc4533d.js                  |  1 +
 zh/assets/js/d00e343a.3e4740af.js                  |  1 +
 zh/assets/js/d00e343a.679142f8.js                  |  1 -
 .../{d18db9b0.d3408a4c.js => d18db9b0.16707962.js} |  2 +-
 .../{f96d8335.dc2b03b5.js => f96d8335.86a4817f.js} |  2 +-
 zh/assets/js/main.253ca1f5.js                      |  2 ++
 .../assets/js/main.253ca1f5.js.LICENSE.txt         |  0
 zh/assets/js/main.6090bf0b.js                      |  2 --
 zh/assets/js/runtime~main.6d03f053.js              |  1 -
 zh/assets/js/runtime~main.b5b0335b.js              |  1 +
 zh/blog/2020/08/22/new-website/index.html          |  8 +++---
 .../index.html                                     |  8 +++---
 .../index.html                                     |  8 +++---
 .../index.html                                     |  8 +++---
 .../index.html                                     |  8 +++---
 .../21/run-ingress-apisix-on-amazon-eks/index.html |  8 +++---
 .../index.html                                     |  8 +++---
 .../index.html                                     |  8 +++---
 .../index.html                                     |  8 +++---
 .../index.html                                     |  8 +++---
 zh/blog/2021/05/24/Tencent-Games/index.html        |  8 +++---
 .../index.html"                                    |  8 +++---
 .../index.html"                                    |  8 +++---
 .../index.html                                     |  8 +++---
 zh/blog/2021/06/06/apisix-two-years/index.html     |  8 +++---
 .../index.html                                     |  8 +++---
 .../index.html                                     |  8 +++---
 .../index.html                                     |  8 +++---
 .../index.html                                     |  8 +++---
 .../index.html                                     |  8 +++---
 .../index.html                                     |  8 +++---
 .../index.html                                     |  8 +++---
 .../06/28/why-we-need-Apache-APISIX/index.html     |  8 +++---
 .../06/29/release-apache-apisix-2.7-en/index.html  |  8 +++---
 .../06/29/release-apache-apisix-2.7/index.html     |  8 +++---
 .../etcd3-support-HTTP-access-perfectly/index.html |  8 +++---
 .../07/06/celebrate-200-contributors/index.html    |  8 +++---
 .../index.html                                     |  8 +++---
 .../index.html                                     |  8 +++---
 .../2021/07/21/Apache-APISIX-Kubernetes/index.html |  8 +++---
 zh/blog/2021/07/25/apachecon-asia/index.html       |  8 +++---
 zh/blog/2021/07/27/limit-rep-plug/index.html       |  8 +++---
 .../index.html                                     |  8 +++---
 .../07/28/release-apache-apisix-2.8-en/index.html  |  8 +++---
 .../07/28/release-apache-apisix-2.8/index.html     |  8 +++---
 zh/blog/2021/08/05/Kong-to-APISIX/index.html       |  8 +++---
 .../index.html                                     |  8 +++---
 .../Apache-APISIX-in-China-Mobile-Cloud/index.html |  8 +++---
 .../08/09/Apache-APISIX-in-Quliankeji/index.html   |  8 +++---
 zh/blog/2021/08/10/apisix-nginx/index.html         |  8 +++---
 .../2021/08/11/interview-TuZhengsong/index.html    |  8 +++---
 .../index.html                                     |  8 +++---
 .../index.html                                     |  8 +++---
 .../index.html                                     |  8 +++---
 .../index.html                                     |  8 +++---
 zh/blog/2021/08/17/interview-airwallex/index.html  |  8 +++---
 .../Auth-with-Casbin-in-Apache-APISIX/index.html   |  8 +++---
 .../08/19/go-makes-Apache-APISIX-better/index.html |  8 +++---
 .../2021/08/24/shanghai-meetup-recap/index.html    |  8 +++---
 .../Auth-with-Casbin-in-Apache-APISIX/index.html   |  8 +++---
 .../index.html                                     |  8 +++---
 .../index.html                                     |  8 +++---
 .../08/27/release-apache-apisix-2.9/index.html     |  8 +++---
 zh/blog/2021/08/30/Ingress-Meeting/index.html      |  8 +++---
 .../index.html"                                    |  8 +++---
 .../index.html                                     |  8 +++---
 .../2021/09/07/how-to-use-apisix-auth/index.html   |  8 +++---
 zh/blog/2021/09/07/iQIYI-usercase/index.html       |  8 +++---
 .../index.html                                     | 10 ++++----
 zh/blog/2021/09/14/youzan/index.html               | 30 ++++++++++++++++++++++
 zh/blog/archive/index.html                         | 10 ++++----
 zh/blog/atom.xml                                   | 12 ++++++++-
 zh/blog/index.html                                 | 10 ++++----
 zh/blog/rss.xml                                    |  9 ++++++-
 zh/blog/tags/community/index.html                  |  8 +++---
 zh/blog/tags/index.html                            | 10 ++++----
 zh/blog/tags/news/index.html                       |  8 +++---
 zh/blog/tags/practical-case/index.html             | 12 ++++-----
 zh/blog/tags/security/index.html                   |  8 +++---
 zh/blog/tags/technology/index.html                 |  8 +++---
 zh/docs/apisix/2.4/FAQ/index.html                  |  8 +++---
 zh/docs/apisix/2.4/IGNORE_DOC/index.html           |  8 +++---
 zh/docs/apisix/2.4/admin-api/index.html            |  8 +++---
 zh/docs/apisix/2.4/architecture-design/index.html  |  8 +++---
 zh/docs/apisix/2.4/aws/index.html                  |  8 +++---
 zh/docs/apisix/2.4/batch-processor/index.html      |  8 +++---
 zh/docs/apisix/2.4/benchmark/index.html            |  8 +++---
 zh/docs/apisix/2.4/control-api/index.html          |  8 +++---
 .../2.4/customize-nginx-configuration/index.html   |  8 +++---
 zh/docs/apisix/2.4/debug-function/index.html       |  8 +++---
 zh/docs/apisix/2.4/discovery/consul_kv/index.html  |  8 +++---
 zh/docs/apisix/2.4/discovery/index.html            |  8 +++---
 zh/docs/apisix/2.4/dns/index.html                  |  8 +++---
 .../index.html                                     |  8 +++---
 zh/docs/apisix/2.4/getting-started/index.html      |  8 +++---
 zh/docs/apisix/2.4/grpc-proxy/index.html           |  8 +++---
 zh/docs/apisix/2.4/health-check/index.html         |  8 +++---
 zh/docs/apisix/2.4/how-to-build/index.html         |  8 +++---
 zh/docs/apisix/2.4/https/index.html                |  8 +++---
 zh/docs/apisix/2.4/install-dependencies/index.html |  8 +++---
 zh/docs/apisix/2.4/mtls/index.html                 |  8 +++---
 zh/docs/apisix/2.4/plugin-develop/index.html       |  8 +++---
 zh/docs/apisix/2.4/plugin-interceptors/index.html  |  8 +++---
 zh/docs/apisix/2.4/plugins/api-breaker/index.html  |  8 +++---
 .../apisix/2.4/plugins/authz-keycloak/index.html   |  8 +++---
 zh/docs/apisix/2.4/plugins/basic-auth/index.html   |  8 +++---
 .../apisix/2.4/plugins/batch-requests/index.html   |  8 +++---
 .../2.4/plugins/consumer-restriction/index.html    |  8 +++---
 zh/docs/apisix/2.4/plugins/cors/index.html         |  8 +++---
 zh/docs/apisix/2.4/plugins/dubbo-proxy/index.html  |  8 +++---
 zh/docs/apisix/2.4/plugins/echo/index.html         |  8 +++---
 .../apisix/2.4/plugins/error-log-logger/index.html |  8 +++---
 .../apisix/2.4/plugins/fault-injection/index.html  |  8 +++---
 .../apisix/2.4/plugins/grpc-transcode/index.html   |  8 +++---
 zh/docs/apisix/2.4/plugins/hmac-auth/index.html    |  8 +++---
 zh/docs/apisix/2.4/plugins/http-logger/index.html  |  8 +++---
 zh/docs/apisix/2.4/plugins/index.html              |  8 +++---
 .../apisix/2.4/plugins/ip-restriction/index.html   |  8 +++---
 zh/docs/apisix/2.4/plugins/jwt-auth/index.html     |  8 +++---
 zh/docs/apisix/2.4/plugins/kafka-logger/index.html |  8 +++---
 zh/docs/apisix/2.4/plugins/key-auth/index.html     |  8 +++---
 zh/docs/apisix/2.4/plugins/limit-conn/index.html   |  8 +++---
 zh/docs/apisix/2.4/plugins/limit-count/index.html  |  8 +++---
 zh/docs/apisix/2.4/plugins/limit-req/index.html    |  8 +++---
 zh/docs/apisix/2.4/plugins/log-rotate/index.html   |  8 +++---
 zh/docs/apisix/2.4/plugins/mqtt-proxy/index.html   |  8 +++---
 zh/docs/apisix/2.4/plugins/node-status/index.html  |  8 +++---
 .../apisix/2.4/plugins/openid-connect/index.html   |  8 +++---
 zh/docs/apisix/2.4/plugins/prometheus/index.html   |  8 +++---
 zh/docs/apisix/2.4/plugins/proxy-cache/index.html  |  8 +++---
 zh/docs/apisix/2.4/plugins/proxy-mirror/index.html |  8 +++---
 .../apisix/2.4/plugins/proxy-rewrite/index.html    |  8 +++---
 zh/docs/apisix/2.4/plugins/redirect/index.html     |  8 +++---
 .../2.4/plugins/referer-restriction/index.html     |  8 +++---
 zh/docs/apisix/2.4/plugins/request-id/index.html   |  8 +++---
 .../2.4/plugins/request-validation/index.html      |  8 +++---
 .../apisix/2.4/plugins/response-rewrite/index.html |  8 +++---
 zh/docs/apisix/2.4/plugins/server-info/index.html  |  8 +++---
 zh/docs/apisix/2.4/plugins/serverless/index.html   |  8 +++---
 zh/docs/apisix/2.4/plugins/skywalking/index.html   |  8 +++---
 zh/docs/apisix/2.4/plugins/sls-logger/index.html   |  8 +++---
 zh/docs/apisix/2.4/plugins/syslog/index.html       |  8 +++---
 zh/docs/apisix/2.4/plugins/tcp-logger/index.html   |  8 +++---
 .../apisix/2.4/plugins/traffic-split/index.html    |  8 +++---
 zh/docs/apisix/2.4/plugins/udp-logger/index.html   |  8 +++---
 zh/docs/apisix/2.4/plugins/uri-blocker/index.html  |  8 +++---
 zh/docs/apisix/2.4/plugins/wolf-rbac/index.html    |  8 +++---
 zh/docs/apisix/2.4/plugins/zipkin/index.html       |  8 +++---
 zh/docs/apisix/2.4/powered-by/index.html           |  8 +++---
 zh/docs/apisix/2.4/profile/index.html              |  8 +++---
 zh/docs/apisix/2.4/router-radixtree/index.html     |  8 +++---
 zh/docs/apisix/2.4/stand-alone/index.html          |  8 +++---
 zh/docs/apisix/2.4/stream-proxy/index.html         |  8 +++---
 zh/docs/apisix/2.4/tags/index.html                 |  8 +++---
 zh/docs/apisix/2.5/FAQ/index.html                  |  8 +++---
 zh/docs/apisix/2.5/IGNORE_DOC/index.html           |  8 +++---
 zh/docs/apisix/2.5/admin-api/index.html            |  8 +++---
 .../2.5/architecture-design/apisix/index.html      |  8 +++---
 .../2.5/architecture-design/consumer/index.html    |  8 +++---
 .../2.5/architecture-design/debug-mode/index.html  |  8 +++---
 .../2.5/architecture-design/global-rule/index.html |  8 +++---
 zh/docs/apisix/2.5/architecture-design/index.html  |  8 +++---
 .../architecture-design/plugin-config/index.html   |  8 +++---
 .../2.5/architecture-design/plugin/index.html      |  8 +++---
 .../2.5/architecture-design/route/index.html       |  8 +++---
 .../2.5/architecture-design/router/index.html      |  8 +++---
 .../2.5/architecture-design/script/index.html      |  8 +++---
 .../2.5/architecture-design/service/index.html     |  8 +++---
 .../2.5/architecture-design/upstream/index.html    |  8 +++---
 zh/docs/apisix/2.5/aws/index.html                  |  8 +++---
 zh/docs/apisix/2.5/batch-processor/index.html      |  8 +++---
 zh/docs/apisix/2.5/benchmark/index.html            |  8 +++---
 zh/docs/apisix/2.5/control-api/index.html          |  8 +++---
 .../2.5/customize-nginx-configuration/index.html   |  8 +++---
 zh/docs/apisix/2.5/debug-function/index.html       |  8 +++---
 zh/docs/apisix/2.5/discovery/consul_kv/index.html  |  8 +++---
 zh/docs/apisix/2.5/discovery/dns/index.html        |  8 +++---
 zh/docs/apisix/2.5/discovery/index.html            |  8 +++---
 zh/docs/apisix/2.5/dns/index.html                  |  8 +++---
 .../index.html                                     |  8 +++---
 zh/docs/apisix/2.5/getting-started/index.html      |  8 +++---
 zh/docs/apisix/2.5/grpc-proxy/index.html           |  8 +++---
 zh/docs/apisix/2.5/health-check/index.html         |  8 +++---
 zh/docs/apisix/2.5/how-to-build/index.html         |  8 +++---
 zh/docs/apisix/2.5/https/index.html                |  8 +++---
 zh/docs/apisix/2.5/install-dependencies/index.html |  8 +++---
 zh/docs/apisix/2.5/mtls/index.html                 |  8 +++---
 zh/docs/apisix/2.5/plugin-develop/index.html       |  8 +++---
 zh/docs/apisix/2.5/plugin-interceptors/index.html  |  8 +++---
 zh/docs/apisix/2.5/plugins/api-breaker/index.html  |  8 +++---
 .../apisix/2.5/plugins/authz-keycloak/index.html   |  8 +++---
 zh/docs/apisix/2.5/plugins/basic-auth/index.html   |  8 +++---
 .../apisix/2.5/plugins/batch-requests/index.html   |  8 +++---
 .../2.5/plugins/consumer-restriction/index.html    |  8 +++---
 zh/docs/apisix/2.5/plugins/cors/index.html         |  8 +++---
 zh/docs/apisix/2.5/plugins/dubbo-proxy/index.html  |  8 +++---
 zh/docs/apisix/2.5/plugins/echo/index.html         |  8 +++---
 .../apisix/2.5/plugins/error-log-logger/index.html |  8 +++---
 .../apisix/2.5/plugins/fault-injection/index.html  |  8 +++---
 .../apisix/2.5/plugins/grpc-transcode/index.html   |  8 +++---
 zh/docs/apisix/2.5/plugins/hmac-auth/index.html    |  8 +++---
 zh/docs/apisix/2.5/plugins/http-logger/index.html  |  8 +++---
 zh/docs/apisix/2.5/plugins/index.html              |  8 +++---
 .../apisix/2.5/plugins/ip-restriction/index.html   |  8 +++---
 zh/docs/apisix/2.5/plugins/jwt-auth/index.html     |  8 +++---
 zh/docs/apisix/2.5/plugins/kafka-logger/index.html |  8 +++---
 zh/docs/apisix/2.5/plugins/key-auth/index.html     |  8 +++---
 zh/docs/apisix/2.5/plugins/limit-conn/index.html   |  8 +++---
 zh/docs/apisix/2.5/plugins/limit-count/index.html  |  8 +++---
 zh/docs/apisix/2.5/plugins/limit-req/index.html    |  8 +++---
 zh/docs/apisix/2.5/plugins/log-rotate/index.html   |  8 +++---
 zh/docs/apisix/2.5/plugins/mqtt-proxy/index.html   |  8 +++---
 zh/docs/apisix/2.5/plugins/node-status/index.html  |  8 +++---
 .../apisix/2.5/plugins/openid-connect/index.html   |  8 +++---
 zh/docs/apisix/2.5/plugins/prometheus/index.html   |  8 +++---
 zh/docs/apisix/2.5/plugins/proxy-cache/index.html  |  8 +++---
 zh/docs/apisix/2.5/plugins/proxy-mirror/index.html |  8 +++---
 .../apisix/2.5/plugins/proxy-rewrite/index.html    |  8 +++---
 zh/docs/apisix/2.5/plugins/redirect/index.html     |  8 +++---
 .../2.5/plugins/referer-restriction/index.html     |  8 +++---
 zh/docs/apisix/2.5/plugins/request-id/index.html   |  8 +++---
 .../2.5/plugins/request-validation/index.html      |  8 +++---
 .../apisix/2.5/plugins/response-rewrite/index.html |  8 +++---
 zh/docs/apisix/2.5/plugins/server-info/index.html  |  8 +++---
 zh/docs/apisix/2.5/plugins/serverless/index.html   |  8 +++---
 zh/docs/apisix/2.5/plugins/skywalking/index.html   |  8 +++---
 zh/docs/apisix/2.5/plugins/sls-logger/index.html   |  8 +++---
 zh/docs/apisix/2.5/plugins/syslog/index.html       |  8 +++---
 zh/docs/apisix/2.5/plugins/tcp-logger/index.html   |  8 +++---
 .../apisix/2.5/plugins/traffic-split/index.html    |  8 +++---
 zh/docs/apisix/2.5/plugins/udp-logger/index.html   |  8 +++---
 zh/docs/apisix/2.5/plugins/uri-blocker/index.html  |  8 +++---
 zh/docs/apisix/2.5/plugins/wolf-rbac/index.html    |  8 +++---
 zh/docs/apisix/2.5/plugins/zipkin/index.html       |  8 +++---
 zh/docs/apisix/2.5/powered-by/index.html           |  8 +++---
 zh/docs/apisix/2.5/profile/index.html              |  8 +++---
 zh/docs/apisix/2.5/router-radixtree/index.html     |  8 +++---
 zh/docs/apisix/2.5/stand-alone/index.html          |  8 +++---
 zh/docs/apisix/2.5/stream-proxy/index.html         |  8 +++---
 zh/docs/apisix/2.5/tags/index.html                 |  8 +++---
 zh/docs/apisix/2.6/FAQ/index.html                  |  8 +++---
 zh/docs/apisix/2.6/IGNORE_DOC/index.html           |  8 +++---
 zh/docs/apisix/2.6/admin-api/index.html            |  8 +++---
 .../2.6/architecture-design/apisix/index.html      |  8 +++---
 .../2.6/architecture-design/consumer/index.html    |  8 +++---
 .../2.6/architecture-design/debug-mode/index.html  |  8 +++---
 .../2.6/architecture-design/global-rule/index.html |  8 +++---
 zh/docs/apisix/2.6/architecture-design/index.html  |  8 +++---
 .../architecture-design/plugin-config/index.html   |  8 +++---
 .../2.6/architecture-design/plugin/index.html      |  8 +++---
 .../2.6/architecture-design/route/index.html       |  8 +++---
 .../2.6/architecture-design/router/index.html      |  8 +++---
 .../2.6/architecture-design/script/index.html      |  8 +++---
 .../2.6/architecture-design/service/index.html     |  8 +++---
 .../2.6/architecture-design/upstream/index.html    |  8 +++---
 zh/docs/apisix/2.6/aws/index.html                  |  8 +++---
 zh/docs/apisix/2.6/batch-processor/index.html      |  8 +++---
 zh/docs/apisix/2.6/benchmark/index.html            |  8 +++---
 zh/docs/apisix/2.6/control-api/index.html          |  8 +++---
 .../2.6/customize-nginx-configuration/index.html   |  8 +++---
 zh/docs/apisix/2.6/debug-function/index.html       |  8 +++---
 zh/docs/apisix/2.6/discovery/consul_kv/index.html  |  8 +++---
 zh/docs/apisix/2.6/discovery/dns/index.html        |  8 +++---
 zh/docs/apisix/2.6/discovery/eureka/index.html     |  8 +++---
 zh/docs/apisix/2.6/discovery/index.html            |  8 +++---
 zh/docs/apisix/2.6/discovery/nacos/index.html      |  8 +++---
 zh/docs/apisix/2.6/dns/index.html                  |  8 +++---
 .../index.html                                     |  8 +++---
 zh/docs/apisix/2.6/getting-started/index.html      |  8 +++---
 zh/docs/apisix/2.6/grpc-proxy/index.html           |  8 +++---
 zh/docs/apisix/2.6/health-check/index.html         |  8 +++---
 zh/docs/apisix/2.6/how-to-build/index.html         |  8 +++---
 zh/docs/apisix/2.6/https/index.html                |  8 +++---
 zh/docs/apisix/2.6/install-dependencies/index.html |  8 +++---
 zh/docs/apisix/2.6/mtls/index.html                 |  8 +++---
 zh/docs/apisix/2.6/plugin-develop/index.html       |  8 +++---
 zh/docs/apisix/2.6/plugin-interceptors/index.html  |  8 +++---
 zh/docs/apisix/2.6/plugins/api-breaker/index.html  |  8 +++---
 .../apisix/2.6/plugins/authz-keycloak/index.html   |  8 +++---
 zh/docs/apisix/2.6/plugins/basic-auth/index.html   |  8 +++---
 .../apisix/2.6/plugins/batch-requests/index.html   |  8 +++---
 .../2.6/plugins/consumer-restriction/index.html    |  8 +++---
 zh/docs/apisix/2.6/plugins/cors/index.html         |  8 +++---
 zh/docs/apisix/2.6/plugins/dubbo-proxy/index.html  |  8 +++---
 zh/docs/apisix/2.6/plugins/echo/index.html         |  8 +++---
 .../apisix/2.6/plugins/error-log-logger/index.html |  8 +++---
 .../apisix/2.6/plugins/fault-injection/index.html  |  8 +++---
 .../apisix/2.6/plugins/grpc-transcode/index.html   |  8 +++---
 zh/docs/apisix/2.6/plugins/hmac-auth/index.html    |  8 +++---
 zh/docs/apisix/2.6/plugins/http-logger/index.html  |  8 +++---
 zh/docs/apisix/2.6/plugins/index.html              |  8 +++---
 .../apisix/2.6/plugins/ip-restriction/index.html   |  8 +++---
 zh/docs/apisix/2.6/plugins/jwt-auth/index.html     |  8 +++---
 zh/docs/apisix/2.6/plugins/kafka-logger/index.html |  8 +++---
 zh/docs/apisix/2.6/plugins/key-auth/index.html     |  8 +++---
 zh/docs/apisix/2.6/plugins/limit-conn/index.html   |  8 +++---
 zh/docs/apisix/2.6/plugins/limit-count/index.html  |  8 +++---
 zh/docs/apisix/2.6/plugins/limit-req/index.html    |  8 +++---
 zh/docs/apisix/2.6/plugins/log-rotate/index.html   |  8 +++---
 zh/docs/apisix/2.6/plugins/mqtt-proxy/index.html   |  8 +++---
 zh/docs/apisix/2.6/plugins/node-status/index.html  |  8 +++---
 .../apisix/2.6/plugins/openid-connect/index.html   |  8 +++---
 zh/docs/apisix/2.6/plugins/prometheus/index.html   |  8 +++---
 zh/docs/apisix/2.6/plugins/proxy-cache/index.html  |  8 +++---
 zh/docs/apisix/2.6/plugins/proxy-mirror/index.html |  8 +++---
 .../apisix/2.6/plugins/proxy-rewrite/index.html    |  8 +++---
 zh/docs/apisix/2.6/plugins/redirect/index.html     |  8 +++---
 .../2.6/plugins/referer-restriction/index.html     |  8 +++---
 zh/docs/apisix/2.6/plugins/request-id/index.html   |  8 +++---
 .../2.6/plugins/request-validation/index.html      |  8 +++---
 .../apisix/2.6/plugins/response-rewrite/index.html |  8 +++---
 zh/docs/apisix/2.6/plugins/server-info/index.html  |  8 +++---
 zh/docs/apisix/2.6/plugins/serverless/index.html   |  8 +++---
 zh/docs/apisix/2.6/plugins/skywalking/index.html   |  8 +++---
 zh/docs/apisix/2.6/plugins/sls-logger/index.html   |  8 +++---
 zh/docs/apisix/2.6/plugins/syslog/index.html       |  8 +++---
 zh/docs/apisix/2.6/plugins/tcp-logger/index.html   |  8 +++---
 .../apisix/2.6/plugins/traffic-split/index.html    |  8 +++---
 zh/docs/apisix/2.6/plugins/udp-logger/index.html   |  8 +++---
 zh/docs/apisix/2.6/plugins/uri-blocker/index.html  |  8 +++---
 zh/docs/apisix/2.6/plugins/wolf-rbac/index.html    |  8 +++---
 zh/docs/apisix/2.6/plugins/zipkin/index.html       |  8 +++---
 zh/docs/apisix/2.6/powered-by/index.html           |  8 +++---
 zh/docs/apisix/2.6/profile/index.html              |  8 +++---
 zh/docs/apisix/2.6/router-radixtree/index.html     |  8 +++---
 zh/docs/apisix/2.6/stand-alone/index.html          |  8 +++---
 zh/docs/apisix/2.6/stream-proxy/index.html         |  8 +++---
 zh/docs/apisix/2.6/tags/index.html                 |  8 +++---
 zh/docs/apisix/2.7/FAQ/index.html                  |  8 +++---
 zh/docs/apisix/2.7/IGNORE_DOC/index.html           |  8 +++---
 zh/docs/apisix/2.7/admin-api/index.html            |  8 +++---
 .../2.7/architecture-design/apisix/index.html      |  8 +++---
 .../2.7/architecture-design/consumer/index.html    |  8 +++---
 .../2.7/architecture-design/debug-mode/index.html  |  8 +++---
 .../2.7/architecture-design/global-rule/index.html |  8 +++---
 zh/docs/apisix/2.7/architecture-design/index.html  |  8 +++---
 .../architecture-design/plugin-config/index.html   |  8 +++---
 .../2.7/architecture-design/plugin/index.html      |  8 +++---
 .../2.7/architecture-design/route/index.html       |  8 +++---
 .../2.7/architecture-design/router/index.html      |  8 +++---
 .../2.7/architecture-design/script/index.html      |  8 +++---
 .../2.7/architecture-design/service/index.html     |  8 +++---
 .../2.7/architecture-design/upstream/index.html    |  8 +++---
 zh/docs/apisix/2.7/aws/index.html                  |  8 +++---
 zh/docs/apisix/2.7/batch-processor/index.html      |  8 +++---
 zh/docs/apisix/2.7/benchmark/index.html            |  8 +++---
 zh/docs/apisix/2.7/certificate/index.html          |  8 +++---
 zh/docs/apisix/2.7/control-api/index.html          |  8 +++---
 .../2.7/customize-nginx-configuration/index.html   |  8 +++---
 zh/docs/apisix/2.7/debug-function/index.html       |  8 +++---
 zh/docs/apisix/2.7/discovery/consul_kv/index.html  |  8 +++---
 zh/docs/apisix/2.7/discovery/dns/index.html        |  8 +++---
 zh/docs/apisix/2.7/discovery/eureka/index.html     |  8 +++---
 zh/docs/apisix/2.7/discovery/index.html            |  8 +++---
 zh/docs/apisix/2.7/discovery/nacos/index.html      |  8 +++---
 zh/docs/apisix/2.7/dns/index.html                  |  8 +++---
 .../index.html                                     |  8 +++---
 zh/docs/apisix/2.7/external-plugin/index.html      |  8 +++---
 zh/docs/apisix/2.7/getting-started/index.html      |  8 +++---
 zh/docs/apisix/2.7/grpc-proxy/index.html           |  8 +++---
 zh/docs/apisix/2.7/health-check/index.html         |  8 +++---
 zh/docs/apisix/2.7/how-to-build/index.html         |  8 +++---
 zh/docs/apisix/2.7/https/index.html                |  8 +++---
 zh/docs/apisix/2.7/install-dependencies/index.html |  8 +++---
 zh/docs/apisix/2.7/mtls/index.html                 |  8 +++---
 zh/docs/apisix/2.7/plugin-develop/index.html       |  8 +++---
 zh/docs/apisix/2.7/plugin-interceptors/index.html  |  8 +++---
 zh/docs/apisix/2.7/plugins/api-breaker/index.html  |  8 +++---
 .../apisix/2.7/plugins/authz-keycloak/index.html   |  8 +++---
 zh/docs/apisix/2.7/plugins/basic-auth/index.html   |  8 +++---
 .../apisix/2.7/plugins/batch-requests/index.html   |  8 +++---
 .../apisix/2.7/plugins/client-control/index.html   |  8 +++---
 .../2.7/plugins/consumer-restriction/index.html    |  8 +++---
 zh/docs/apisix/2.7/plugins/cors/index.html         |  8 +++---
 zh/docs/apisix/2.7/plugins/dubbo-proxy/index.html  |  8 +++---
 zh/docs/apisix/2.7/plugins/echo/index.html         |  8 +++---
 .../apisix/2.7/plugins/error-log-logger/index.html |  8 +++---
 .../2.7/plugins/ext-plugin-post-req/index.html     |  8 +++---
 .../2.7/plugins/ext-plugin-pre-req/index.html      |  8 +++---
 .../apisix/2.7/plugins/fault-injection/index.html  |  8 +++---
 .../apisix/2.7/plugins/grpc-transcode/index.html   |  8 +++---
 zh/docs/apisix/2.7/plugins/hmac-auth/index.html    |  8 +++---
 zh/docs/apisix/2.7/plugins/http-logger/index.html  |  8 +++---
 zh/docs/apisix/2.7/plugins/index.html              |  8 +++---
 .../apisix/2.7/plugins/ip-restriction/index.html   |  8 +++---
 zh/docs/apisix/2.7/plugins/jwt-auth/index.html     |  8 +++---
 zh/docs/apisix/2.7/plugins/kafka-logger/index.html |  8 +++---
 zh/docs/apisix/2.7/plugins/key-auth/index.html     |  8 +++---
 zh/docs/apisix/2.7/plugins/limit-conn/index.html   |  8 +++---
 zh/docs/apisix/2.7/plugins/limit-count/index.html  |  8 +++---
 zh/docs/apisix/2.7/plugins/limit-req/index.html    |  8 +++---
 zh/docs/apisix/2.7/plugins/log-rotate/index.html   |  8 +++---
 zh/docs/apisix/2.7/plugins/mqtt-proxy/index.html   |  8 +++---
 zh/docs/apisix/2.7/plugins/node-status/index.html  |  8 +++---
 .../apisix/2.7/plugins/openid-connect/index.html   |  8 +++---
 zh/docs/apisix/2.7/plugins/prometheus/index.html   |  8 +++---
 zh/docs/apisix/2.7/plugins/proxy-cache/index.html  |  8 +++---
 zh/docs/apisix/2.7/plugins/proxy-mirror/index.html |  8 +++---
 .../apisix/2.7/plugins/proxy-rewrite/index.html    |  8 +++---
 zh/docs/apisix/2.7/plugins/redirect/index.html     |  8 +++---
 .../2.7/plugins/referer-restriction/index.html     |  8 +++---
 zh/docs/apisix/2.7/plugins/request-id/index.html   |  8 +++---
 .../2.7/plugins/request-validation/index.html      |  8 +++---
 .../apisix/2.7/plugins/response-rewrite/index.html |  8 +++---
 zh/docs/apisix/2.7/plugins/server-info/index.html  |  8 +++---
 zh/docs/apisix/2.7/plugins/serverless/index.html   |  8 +++---
 zh/docs/apisix/2.7/plugins/skywalking/index.html   |  8 +++---
 zh/docs/apisix/2.7/plugins/sls-logger/index.html   |  8 +++---
 zh/docs/apisix/2.7/plugins/syslog/index.html       |  8 +++---
 zh/docs/apisix/2.7/plugins/tcp-logger/index.html   |  8 +++---
 .../apisix/2.7/plugins/traffic-split/index.html    |  8 +++---
 zh/docs/apisix/2.7/plugins/udp-logger/index.html   |  8 +++---
 zh/docs/apisix/2.7/plugins/uri-blocker/index.html  |  8 +++---
 zh/docs/apisix/2.7/plugins/wolf-rbac/index.html    |  8 +++---
 zh/docs/apisix/2.7/plugins/zipkin/index.html       |  8 +++---
 zh/docs/apisix/2.7/powered-by/index.html           |  8 +++---
 zh/docs/apisix/2.7/profile/index.html              |  8 +++---
 zh/docs/apisix/2.7/router-radixtree/index.html     |  8 +++---
 zh/docs/apisix/2.7/stand-alone/index.html          |  8 +++---
 zh/docs/apisix/2.7/stream-proxy/index.html         |  8 +++---
 zh/docs/apisix/2.7/tags/index.html                 |  8 +++---
 zh/docs/apisix/2.8/FAQ/index.html                  |  8 +++---
 zh/docs/apisix/2.8/IGNORE_DOC/index.html           |  8 +++---
 zh/docs/apisix/2.8/admin-api/index.html            |  8 +++---
 .../2.8/architecture-design/apisix/index.html      |  8 +++---
 .../2.8/architecture-design/consumer/index.html    |  8 +++---
 .../2.8/architecture-design/debug-mode/index.html  |  8 +++---
 .../2.8/architecture-design/global-rule/index.html |  8 +++---
 zh/docs/apisix/2.8/architecture-design/index.html  |  8 +++---
 .../architecture-design/plugin-config/index.html   |  8 +++---
 .../2.8/architecture-design/plugin/index.html      |  8 +++---
 .../2.8/architecture-design/route/index.html       |  8 +++---
 .../2.8/architecture-design/router/index.html      |  8 +++---
 .../2.8/architecture-design/script/index.html      |  8 +++---
 .../2.8/architecture-design/service/index.html     |  8 +++---
 .../2.8/architecture-design/upstream/index.html    |  8 +++---
 zh/docs/apisix/2.8/aws/index.html                  |  8 +++---
 zh/docs/apisix/2.8/batch-processor/index.html      |  8 +++---
 zh/docs/apisix/2.8/benchmark/index.html            |  8 +++---
 zh/docs/apisix/2.8/certificate/index.html          |  8 +++---
 zh/docs/apisix/2.8/control-api/index.html          |  8 +++---
 .../2.8/customize-nginx-configuration/index.html   |  8 +++---
 zh/docs/apisix/2.8/debug-function/index.html       |  8 +++---
 zh/docs/apisix/2.8/discovery/consul_kv/index.html  |  8 +++---
 zh/docs/apisix/2.8/discovery/dns/index.html        |  8 +++---
 zh/docs/apisix/2.8/discovery/eureka/index.html     |  8 +++---
 zh/docs/apisix/2.8/discovery/index.html            |  8 +++---
 zh/docs/apisix/2.8/discovery/nacos/index.html      |  8 +++---
 zh/docs/apisix/2.8/dns/index.html                  |  8 +++---
 .../index.html                                     |  8 +++---
 zh/docs/apisix/2.8/external-plugin/index.html      |  8 +++---
 zh/docs/apisix/2.8/getting-started/index.html      |  8 +++---
 zh/docs/apisix/2.8/grpc-proxy/index.html           |  8 +++---
 zh/docs/apisix/2.8/health-check/index.html         |  8 +++---
 zh/docs/apisix/2.8/how-to-build/index.html         |  8 +++---
 zh/docs/apisix/2.8/https/index.html                |  8 +++---
 zh/docs/apisix/2.8/install-dependencies/index.html |  8 +++---
 zh/docs/apisix/2.8/mtls/index.html                 |  8 +++---
 zh/docs/apisix/2.8/plugin-develop/index.html       |  8 +++---
 zh/docs/apisix/2.8/plugin-interceptors/index.html  |  8 +++---
 zh/docs/apisix/2.8/plugins/api-breaker/index.html  |  8 +++---
 .../apisix/2.8/plugins/authz-keycloak/index.html   |  8 +++---
 zh/docs/apisix/2.8/plugins/basic-auth/index.html   |  8 +++---
 .../apisix/2.8/plugins/batch-requests/index.html   |  8 +++---
 .../apisix/2.8/plugins/client-control/index.html   |  8 +++---
 .../2.8/plugins/consumer-restriction/index.html    |  8 +++---
 zh/docs/apisix/2.8/plugins/cors/index.html         |  8 +++---
 zh/docs/apisix/2.8/plugins/dubbo-proxy/index.html  |  8 +++---
 zh/docs/apisix/2.8/plugins/echo/index.html         |  8 +++---
 .../apisix/2.8/plugins/error-log-logger/index.html |  8 +++---
 .../2.8/plugins/ext-plugin-post-req/index.html     |  8 +++---
 .../2.8/plugins/ext-plugin-pre-req/index.html      |  8 +++---
 .../apisix/2.8/plugins/fault-injection/index.html  |  8 +++---
 .../apisix/2.8/plugins/grpc-transcode/index.html   |  8 +++---
 zh/docs/apisix/2.8/plugins/gzip/index.html         |  8 +++---
 zh/docs/apisix/2.8/plugins/hmac-auth/index.html    |  8 +++---
 zh/docs/apisix/2.8/plugins/http-logger/index.html  |  8 +++---
 zh/docs/apisix/2.8/plugins/index.html              |  8 +++---
 .../apisix/2.8/plugins/ip-restriction/index.html   |  8 +++---
 zh/docs/apisix/2.8/plugins/jwt-auth/index.html     |  8 +++---
 zh/docs/apisix/2.8/plugins/kafka-logger/index.html |  8 +++---
 zh/docs/apisix/2.8/plugins/key-auth/index.html     |  8 +++---
 zh/docs/apisix/2.8/plugins/limit-conn/index.html   |  8 +++---
 zh/docs/apisix/2.8/plugins/limit-count/index.html  |  8 +++---
 zh/docs/apisix/2.8/plugins/limit-req/index.html    |  8 +++---
 zh/docs/apisix/2.8/plugins/log-rotate/index.html   |  8 +++---
 zh/docs/apisix/2.8/plugins/mqtt-proxy/index.html   |  8 +++---
 zh/docs/apisix/2.8/plugins/node-status/index.html  |  8 +++---
 .../apisix/2.8/plugins/openid-connect/index.html   |  8 +++---
 zh/docs/apisix/2.8/plugins/prometheus/index.html   |  8 +++---
 zh/docs/apisix/2.8/plugins/proxy-cache/index.html  |  8 +++---
 zh/docs/apisix/2.8/plugins/proxy-mirror/index.html |  8 +++---
 .../apisix/2.8/plugins/proxy-rewrite/index.html    |  8 +++---
 zh/docs/apisix/2.8/plugins/redirect/index.html     |  8 +++---
 .../2.8/plugins/referer-restriction/index.html     |  8 +++---
 zh/docs/apisix/2.8/plugins/request-id/index.html   |  8 +++---
 .../2.8/plugins/request-validation/index.html      |  8 +++---
 .../apisix/2.8/plugins/response-rewrite/index.html |  8 +++---
 zh/docs/apisix/2.8/plugins/server-info/index.html  |  8 +++---
 zh/docs/apisix/2.8/plugins/serverless/index.html   |  8 +++---
 zh/docs/apisix/2.8/plugins/skywalking/index.html   |  8 +++---
 zh/docs/apisix/2.8/plugins/sls-logger/index.html   |  8 +++---
 zh/docs/apisix/2.8/plugins/syslog/index.html       |  8 +++---
 zh/docs/apisix/2.8/plugins/tcp-logger/index.html   |  8 +++---
 .../apisix/2.8/plugins/traffic-split/index.html    |  8 +++---
 .../apisix/2.8/plugins/ua-restriction/index.html   |  8 +++---
 zh/docs/apisix/2.8/plugins/udp-logger/index.html   |  8 +++---
 zh/docs/apisix/2.8/plugins/uri-blocker/index.html  |  8 +++---
 zh/docs/apisix/2.8/plugins/wolf-rbac/index.html    |  8 +++---
 zh/docs/apisix/2.8/plugins/zipkin/index.html       |  8 +++---
 zh/docs/apisix/2.8/powered-by/index.html           |  8 +++---
 zh/docs/apisix/2.8/profile/index.html              |  8 +++---
 zh/docs/apisix/2.8/router-radixtree/index.html     |  8 +++---
 zh/docs/apisix/2.8/stand-alone/index.html          |  8 +++---
 zh/docs/apisix/2.8/stream-proxy/index.html         |  8 +++---
 zh/docs/apisix/2.8/tags/index.html                 |  8 +++---
 zh/docs/apisix/FAQ/index.html                      |  8 +++---
 zh/docs/apisix/IGNORE_DOC/index.html               |  8 +++---
 zh/docs/apisix/admin-api/index.html                |  8 +++---
 .../apisix/architecture-design/apisix/index.html   |  8 +++---
 .../apisix/architecture-design/consumer/index.html |  8 +++---
 .../architecture-design/debug-mode/index.html      |  8 +++---
 .../architecture-design/global-rule/index.html     |  8 +++---
 zh/docs/apisix/architecture-design/index.html      |  8 +++---
 .../architecture-design/plugin-config/index.html   |  8 +++---
 .../apisix/architecture-design/plugin/index.html   |  8 +++---
 .../apisix/architecture-design/route/index.html    |  8 +++---
 .../apisix/architecture-design/router/index.html   |  8 +++---
 .../apisix/architecture-design/script/index.html   |  8 +++---
 .../apisix/architecture-design/service/index.html  |  8 +++---
 .../apisix/architecture-design/upstream/index.html |  8 +++---
 zh/docs/apisix/aws/index.html                      |  8 +++---
 zh/docs/apisix/batch-processor/index.html          |  8 +++---
 zh/docs/apisix/benchmark/index.html                |  8 +++---
 zh/docs/apisix/certificate/index.html              |  8 +++---
 zh/docs/apisix/control-api/index.html              |  8 +++---
 .../customize-nginx-configuration/index.html       |  8 +++---
 zh/docs/apisix/debug-function/index.html           |  8 +++---
 zh/docs/apisix/discovery/consul_kv/index.html      |  8 +++---
 zh/docs/apisix/discovery/dns/index.html            |  8 +++---
 zh/docs/apisix/discovery/eureka/index.html         |  8 +++---
 zh/docs/apisix/discovery/index.html                |  8 +++---
 zh/docs/apisix/discovery/nacos/index.html          |  8 +++---
 zh/docs/apisix/dns/index.html                      |  8 +++---
 .../index.html                                     |  8 +++---
 zh/docs/apisix/external-plugin/index.html          |  8 +++---
 zh/docs/apisix/getting-started/index.html          |  8 +++---
 zh/docs/apisix/grpc-proxy/index.html               |  8 +++---
 zh/docs/apisix/health-check/index.html             |  8 +++---
 zh/docs/apisix/how-to-build/index.html             |  8 +++---
 zh/docs/apisix/https/index.html                    |  8 +++---
 zh/docs/apisix/install-dependencies/index.html     |  8 +++---
 .../apisix/internal/testing-framework/index.html   |  8 +++---
 zh/docs/apisix/mtls/index.html                     |  8 +++---
 zh/docs/apisix/next/FAQ/index.html                 |  8 +++---
 zh/docs/apisix/next/IGNORE_DOC/index.html          | 10 ++++----
 zh/docs/apisix/next/admin-api/index.html           |  8 +++---
 .../next/architecture-design/apisix/index.html     |  8 +++---
 .../next/architecture-design/consumer/index.html   |  8 +++---
 .../next/architecture-design/debug-mode/index.html |  8 +++---
 .../architecture-design/global-rule/index.html     |  8 +++---
 zh/docs/apisix/next/architecture-design/index.html |  8 +++---
 .../architecture-design/plugin-config/index.html   |  8 +++---
 .../next/architecture-design/plugin/index.html     |  8 +++---
 .../next/architecture-design/route/index.html      |  8 +++---
 .../next/architecture-design/router/index.html     |  8 +++---
 .../next/architecture-design/script/index.html     |  8 +++---
 .../next/architecture-design/service/index.html    |  8 +++---
 .../next/architecture-design/upstream/index.html   |  8 +++---
 zh/docs/apisix/next/aws/index.html                 |  8 +++---
 zh/docs/apisix/next/batch-processor/index.html     |  8 +++---
 zh/docs/apisix/next/benchmark/index.html           |  8 +++---
 zh/docs/apisix/next/certificate/index.html         |  8 +++---
 zh/docs/apisix/next/control-api/index.html         |  8 +++---
 .../next/customize-nginx-configuration/index.html  |  8 +++---
 zh/docs/apisix/next/debug-function/index.html      |  8 +++---
 zh/docs/apisix/next/discovery/consul_kv/index.html |  8 +++---
 zh/docs/apisix/next/discovery/dns/index.html       |  8 +++---
 zh/docs/apisix/next/discovery/eureka/index.html    |  8 +++---
 zh/docs/apisix/next/discovery/index.html           |  8 +++---
 zh/docs/apisix/next/discovery/nacos/index.html     |  8 +++---
 zh/docs/apisix/next/dns/index.html                 |  8 +++---
 .../index.html                                     |  8 +++---
 zh/docs/apisix/next/external-plugin/index.html     |  8 +++---
 zh/docs/apisix/next/getting-started/index.html     |  8 +++---
 zh/docs/apisix/next/grpc-proxy/index.html          |  8 +++---
 zh/docs/apisix/next/health-check/index.html        |  8 +++---
 zh/docs/apisix/next/how-to-build/index.html        |  8 +++---
 zh/docs/apisix/next/https/index.html               |  8 +++---
 .../apisix/next/install-dependencies/index.html    |  8 +++---
 .../next/internal/testing-framework/index.html     |  8 +++---
 zh/docs/apisix/next/mtls/index.html                |  8 +++---
 zh/docs/apisix/next/plugin-develop/index.html      |  8 +++---
 zh/docs/apisix/next/plugin-interceptors/index.html |  8 +++---
 zh/docs/apisix/next/plugins/api-breaker/index.html |  8 +++---
 .../apisix/next/plugins/authz-casbin/index.html    |  8 +++---
 .../apisix/next/plugins/authz-keycloak/index.html  |  8 +++---
 zh/docs/apisix/next/plugins/basic-auth/index.html  |  8 +++---
 .../apisix/next/plugins/batch-requests/index.html  |  8 +++---
 .../apisix/next/plugins/client-control/index.html  |  8 +++---
 .../next/plugins/consumer-restriction/index.html   |  8 +++---
 zh/docs/apisix/next/plugins/cors/index.html        |  8 +++---
 zh/docs/apisix/next/plugins/dubbo-proxy/index.html |  8 +++---
 zh/docs/apisix/next/plugins/echo/index.html        |  8 +++---
 .../next/plugins/error-log-logger/index.html       |  8 +++---
 .../next/plugins/ext-plugin-post-req/index.html    |  8 +++---
 .../next/plugins/ext-plugin-pre-req/index.html     |  8 +++---
 .../apisix/next/plugins/fault-injection/index.html |  8 +++---
 .../apisix/next/plugins/grpc-transcode/index.html  |  8 +++---
 zh/docs/apisix/next/plugins/gzip/index.html        |  8 +++---
 zh/docs/apisix/next/plugins/hmac-auth/index.html   |  8 +++---
 zh/docs/apisix/next/plugins/http-logger/index.html |  8 +++---
 zh/docs/apisix/next/plugins/index.html             |  8 +++---
 .../apisix/next/plugins/ip-restriction/index.html  |  8 +++---
 zh/docs/apisix/next/plugins/jwt-auth/index.html    |  8 +++---
 .../apisix/next/plugins/kafka-logger/index.html    |  8 +++---
 zh/docs/apisix/next/plugins/key-auth/index.html    |  8 +++---
 zh/docs/apisix/next/plugins/limit-conn/index.html  |  8 +++---
 zh/docs/apisix/next/plugins/limit-count/index.html |  8 +++---
 zh/docs/apisix/next/plugins/limit-req/index.html   |  8 +++---
 zh/docs/apisix/next/plugins/log-rotate/index.html  |  8 +++---
 zh/docs/apisix/next/plugins/mqtt-proxy/index.html  |  8 +++---
 zh/docs/apisix/next/plugins/node-status/index.html |  8 +++---
 .../apisix/next/plugins/openid-connect/index.html  |  8 +++---
 zh/docs/apisix/next/plugins/prometheus/index.html  |  8 +++---
 zh/docs/apisix/next/plugins/proxy-cache/index.html |  8 +++---
 .../apisix/next/plugins/proxy-mirror/index.html    |  8 +++---
 .../apisix/next/plugins/proxy-rewrite/index.html   |  8 +++---
 zh/docs/apisix/next/plugins/real-ip/index.html     |  8 +++---
 zh/docs/apisix/next/plugins/redirect/index.html    |  8 +++---
 .../next/plugins/referer-restriction/index.html    |  8 +++---
 zh/docs/apisix/next/plugins/request-id/index.html  |  8 +++---
 .../next/plugins/request-validation/index.html     |  8 +++---
 .../next/plugins/response-rewrite/index.html       |  8 +++---
 zh/docs/apisix/next/plugins/server-info/index.html |  8 +++---
 zh/docs/apisix/next/plugins/serverless/index.html  |  8 +++---
 zh/docs/apisix/next/plugins/skywalking/index.html  |  8 +++---
 zh/docs/apisix/next/plugins/sls-logger/index.html  |  8 +++---
 zh/docs/apisix/next/plugins/syslog/index.html      |  8 +++---
 zh/docs/apisix/next/plugins/tcp-logger/index.html  |  8 +++---
 .../apisix/next/plugins/traffic-split/index.html   |  8 +++---
 .../apisix/next/plugins/ua-restriction/index.html  |  8 +++---
 zh/docs/apisix/next/plugins/udp-logger/index.html  |  8 +++---
 zh/docs/apisix/next/plugins/uri-blocker/index.html |  8 +++---
 zh/docs/apisix/next/plugins/wolf-rbac/index.html   |  8 +++---
 zh/docs/apisix/next/plugins/zipkin/index.html      |  8 +++---
 zh/docs/apisix/next/powered-by/index.html          |  8 +++---
 zh/docs/apisix/next/profile/index.html             |  8 +++---
 zh/docs/apisix/next/router-radixtree/index.html    |  8 +++---
 zh/docs/apisix/next/stand-alone/index.html         |  8 +++---
 zh/docs/apisix/next/stream-proxy/index.html        |  8 +++---
 zh/docs/apisix/next/tags/index.html                |  8 +++---
 zh/docs/apisix/plugin-develop/index.html           |  8 +++---
 zh/docs/apisix/plugin-interceptors/index.html      |  8 +++---
 zh/docs/apisix/plugins/api-breaker/index.html      |  8 +++---
 zh/docs/apisix/plugins/authz-casbin/index.html     |  8 +++---
 zh/docs/apisix/plugins/authz-keycloak/index.html   |  8 +++---
 zh/docs/apisix/plugins/basic-auth/index.html       |  8 +++---
 zh/docs/apisix/plugins/batch-requests/index.html   |  8 +++---
 zh/docs/apisix/plugins/client-control/index.html   |  8 +++---
 .../apisix/plugins/consumer-restriction/index.html |  8 +++---
 zh/docs/apisix/plugins/cors/index.html             |  8 +++---
 zh/docs/apisix/plugins/dubbo-proxy/index.html      |  8 +++---
 zh/docs/apisix/plugins/echo/index.html             |  8 +++---
 zh/docs/apisix/plugins/error-log-logger/index.html |  8 +++---
 .../apisix/plugins/ext-plugin-post-req/index.html  |  8 +++---
 .../apisix/plugins/ext-plugin-pre-req/index.html   |  8 +++---
 zh/docs/apisix/plugins/fault-injection/index.html  |  8 +++---
 zh/docs/apisix/plugins/grpc-transcode/index.html   |  8 +++---
 zh/docs/apisix/plugins/gzip/index.html             |  8 +++---
 zh/docs/apisix/plugins/hmac-auth/index.html        |  8 +++---
 zh/docs/apisix/plugins/http-logger/index.html      |  8 +++---
 zh/docs/apisix/plugins/index.html                  |  8 +++---
 zh/docs/apisix/plugins/ip-restriction/index.html   |  8 +++---
 zh/docs/apisix/plugins/jwt-auth/index.html         |  8 +++---
 zh/docs/apisix/plugins/kafka-logger/index.html     |  8 +++---
 zh/docs/apisix/plugins/key-auth/index.html         |  8 +++---
 zh/docs/apisix/plugins/limit-conn/index.html       |  8 +++---
 zh/docs/apisix/plugins/limit-count/index.html      |  8 +++---
 zh/docs/apisix/plugins/limit-req/index.html        |  8 +++---
 zh/docs/apisix/plugins/log-rotate/index.html       |  8 +++---
 zh/docs/apisix/plugins/mqtt-proxy/index.html       |  8 +++---
 zh/docs/apisix/plugins/node-status/index.html      |  8 +++---
 zh/docs/apisix/plugins/openid-connect/index.html   |  8 +++---
 zh/docs/apisix/plugins/prometheus/index.html       |  8 +++---
 zh/docs/apisix/plugins/proxy-cache/index.html      |  8 +++---
 zh/docs/apisix/plugins/proxy-mirror/index.html     |  8 +++---
 zh/docs/apisix/plugins/proxy-rewrite/index.html    |  8 +++---
 zh/docs/apisix/plugins/real-ip/index.html          |  8 +++---
 zh/docs/apisix/plugins/redirect/index.html         |  8 +++---
 .../apisix/plugins/referer-restriction/index.html  |  8 +++---
 zh/docs/apisix/plugins/request-id/index.html       |  8 +++---
 .../apisix/plugins/request-validation/index.html   |  8 +++---
 zh/docs/apisix/plugins/response-rewrite/index.html |  8 +++---
 zh/docs/apisix/plugins/server-info/index.html      |  8 +++---
 zh/docs/apisix/plugins/serverless/index.html       |  8 +++---
 zh/docs/apisix/plugins/skywalking/index.html       |  8 +++---
 zh/docs/apisix/plugins/sls-logger/index.html       |  8 +++---
 zh/docs/apisix/plugins/syslog/index.html           |  8 +++---
 zh/docs/apisix/plugins/tcp-logger/index.html       |  8 +++---
 zh/docs/apisix/plugins/traffic-split/index.html    |  8 +++---
 zh/docs/apisix/plugins/ua-restriction/index.html   |  8 +++---
 zh/docs/apisix/plugins/udp-logger/index.html       |  8 +++---
 zh/docs/apisix/plugins/uri-blocker/index.html      |  8 +++---
 zh/docs/apisix/plugins/wolf-rbac/index.html        |  8 +++---
 zh/docs/apisix/plugins/zipkin/index.html           |  8 +++---
 zh/docs/apisix/powered-by/index.html               |  8 +++---
 zh/docs/apisix/profile/index.html                  |  8 +++---
 zh/docs/apisix/router-radixtree/index.html         |  8 +++---
 zh/docs/apisix/stand-alone/index.html              |  8 +++---
 zh/docs/apisix/stream-proxy/index.html             |  8 +++---
 zh/docs/apisix/tags/index.html                     |  8 +++---
 zh/docs/dashboard/2.5/FAQ/index.html               |  8 +++---
 zh/docs/dashboard/2.5/I18N_USER_GUIDE/index.html   |  8 +++---
 zh/docs/dashboard/2.5/IGNORE_DOC/index.html        |  8 +++---
 .../2.5/IMPORT_OPENAPI_USER_GUIDE/index.html       |  8 +++---
 zh/docs/dashboard/2.5/USER_GUIDE/index.html        |  8 +++---
 zh/docs/dashboard/2.5/api/api/index.html           |  8 +++---
 zh/docs/dashboard/2.5/back-end-tests/index.html    |  8 +++---
 .../dashboard/2.5/deploy-with-docker/index.html    |  8 +++---
 zh/docs/dashboard/2.5/deploy-with-rpm/index.html   |  8 +++---
 zh/docs/dashboard/2.5/deploy/index.html            |  8 +++---
 zh/docs/dashboard/2.5/develop/index.html           |  8 +++---
 zh/docs/dashboard/2.5/front-end-e2e/index.html     |  8 +++---
 zh/docs/dashboard/2.5/tags/index.html              |  8 +++---
 zh/docs/dashboard/2.6.1/FAQ/index.html             |  8 +++---
 zh/docs/dashboard/2.6.1/I18N_USER_GUIDE/index.html |  8 +++---
 zh/docs/dashboard/2.6.1/IGNORE_DOC/index.html      |  8 +++---
 .../2.6.1/IMPORT_OPENAPI_USER_GUIDE/index.html     |  8 +++---
 zh/docs/dashboard/2.6.1/USER_GUIDE/index.html      |  8 +++---
 zh/docs/dashboard/2.6.1/api/api/index.html         |  8 +++---
 zh/docs/dashboard/2.6.1/back-end-tests/index.html  |  8 +++---
 .../dashboard/2.6.1/deploy-with-docker/index.html  |  8 +++---
 zh/docs/dashboard/2.6.1/deploy-with-rpm/index.html |  8 +++---
 zh/docs/dashboard/2.6.1/deploy/index.html          |  8 +++---
 zh/docs/dashboard/2.6.1/develop/index.html         |  8 +++---
 zh/docs/dashboard/2.6.1/front-end-e2e/index.html   |  8 +++---
 zh/docs/dashboard/2.6.1/tags/index.html            |  8 +++---
 zh/docs/dashboard/2.6/FAQ/index.html               |  8 +++---
 zh/docs/dashboard/2.6/I18N_USER_GUIDE/index.html   |  8 +++---
 zh/docs/dashboard/2.6/IGNORE_DOC/index.html        |  8 +++---
 .../2.6/IMPORT_OPENAPI_USER_GUIDE/index.html       |  8 +++---
 zh/docs/dashboard/2.6/USER_GUIDE/index.html        |  8 +++---
 zh/docs/dashboard/2.6/api/api/index.html           |  8 +++---
 zh/docs/dashboard/2.6/back-end-tests/index.html    |  8 +++---
 .../dashboard/2.6/deploy-with-docker/index.html    |  8 +++---
 zh/docs/dashboard/2.6/deploy-with-rpm/index.html   |  8 +++---
 zh/docs/dashboard/2.6/deploy/index.html            |  8 +++---
 zh/docs/dashboard/2.6/develop/index.html           |  8 +++---
 zh/docs/dashboard/2.6/front-end-e2e/index.html     |  8 +++---
 zh/docs/dashboard/2.6/tags/index.html              |  8 +++---
 zh/docs/dashboard/2.7.1/FAQ/index.html             |  8 +++---
 zh/docs/dashboard/2.7.1/I18N_USER_GUIDE/index.html |  8 +++---
 zh/docs/dashboard/2.7.1/IGNORE_DOC/index.html      |  8 +++---
 .../2.7.1/IMPORT_OPENAPI_USER_GUIDE/index.html     |  8 +++---
 zh/docs/dashboard/2.7.1/USER_GUIDE/index.html      |  8 +++---
 zh/docs/dashboard/2.7.1/api/api/index.html         |  8 +++---
 zh/docs/dashboard/2.7.1/back-end-tests/index.html  |  8 +++---
 .../dashboard/2.7.1/deploy-with-docker/index.html  |  8 +++---
 zh/docs/dashboard/2.7.1/deploy-with-rpm/index.html |  8 +++---
 zh/docs/dashboard/2.7.1/deploy/index.html          |  8 +++---
 zh/docs/dashboard/2.7.1/develop/index.html         |  8 +++---
 zh/docs/dashboard/2.7.1/front-end-e2e/index.html   |  8 +++---
 zh/docs/dashboard/2.7.1/tags/index.html            |  8 +++---
 zh/docs/dashboard/2.7/FAQ/index.html               |  8 +++---
 zh/docs/dashboard/2.7/I18N_USER_GUIDE/index.html   |  8 +++---
 zh/docs/dashboard/2.7/IGNORE_DOC/index.html        |  8 +++---
 .../2.7/IMPORT_OPENAPI_USER_GUIDE/index.html       |  8 +++---
 zh/docs/dashboard/2.7/USER_GUIDE/index.html        |  8 +++---
 zh/docs/dashboard/2.7/api/api/index.html           |  8 +++---
 zh/docs/dashboard/2.7/back-end-tests/index.html    |  8 +++---
 .../dashboard/2.7/deploy-with-docker/index.html    |  8 +++---
 zh/docs/dashboard/2.7/deploy-with-rpm/index.html   |  8 +++---
 zh/docs/dashboard/2.7/deploy/index.html            |  8 +++---
 zh/docs/dashboard/2.7/develop/index.html           |  8 +++---
 zh/docs/dashboard/2.7/front-end-e2e/index.html     |  8 +++---
 zh/docs/dashboard/2.7/tags/index.html              |  8 +++---
 zh/docs/dashboard/FAQ/index.html                   |  8 +++---
 zh/docs/dashboard/I18N_USER_GUIDE/index.html       |  8 +++---
 zh/docs/dashboard/IGNORE_DOC/index.html            |  8 +++---
 .../dashboard/IMPORT_OPENAPI_USER_GUIDE/index.html |  8 +++---
 zh/docs/dashboard/USER_GUIDE/index.html            |  8 +++---
 zh/docs/dashboard/api/api/index.html               |  8 +++---
 zh/docs/dashboard/back-end-tests/index.html        |  8 +++---
 zh/docs/dashboard/deploy-with-docker/index.html    |  8 +++---
 zh/docs/dashboard/deploy-with-rpm/index.html       |  8 +++---
 zh/docs/dashboard/deploy/index.html                |  8 +++---
 zh/docs/dashboard/develop/index.html               |  8 +++---
 zh/docs/dashboard/front-end-e2e/index.html         |  8 +++---
 zh/docs/dashboard/next/FAQ/index.html              |  8 +++---
 zh/docs/dashboard/next/I18N_USER_GUIDE/index.html  |  8 +++---
 zh/docs/dashboard/next/IGNORE_DOC/index.html       | 10 ++++----
 .../next/IMPORT_OPENAPI_USER_GUIDE/index.html      |  8 +++---
 zh/docs/dashboard/next/USER_GUIDE/index.html       |  8 +++---
 zh/docs/dashboard/next/api/api/index.html          |  8 +++---
 zh/docs/dashboard/next/back-end-tests/index.html   |  8 +++---
 .../dashboard/next/deploy-with-docker/index.html   |  8 +++---
 zh/docs/dashboard/next/deploy-with-rpm/index.html  |  8 +++---
 zh/docs/dashboard/next/deploy/index.html           |  8 +++---
 zh/docs/dashboard/next/develop/index.html          |  8 +++---
 zh/docs/dashboard/next/front-end-e2e/index.html    |  8 +++---
 zh/docs/dashboard/next/tags/index.html             |  8 +++---
 zh/docs/dashboard/tags/index.html                  |  8 +++---
 zh/docs/docker/IGNORE_DOC/index.html               |  8 +++---
 zh/docs/docker/apisix-2.9.0/IGNORE_DOC/index.html  |  8 +++---
 zh/docs/docker/apisix-2.9.0/build/index.html       |  8 +++---
 zh/docs/docker/apisix-2.9.0/example/index.html     |  8 +++---
 zh/docs/docker/apisix-2.9.0/manual/index.html      |  8 +++---
 zh/docs/docker/apisix-2.9.0/tags/index.html        |  8 +++---
 zh/docs/docker/build/index.html                    |  8 +++---
 zh/docs/docker/example/index.html                  |  8 +++---
 zh/docs/docker/manual/index.html                   |  8 +++---
 zh/docs/docker/next/IGNORE_DOC/index.html          | 10 ++++----
 zh/docs/docker/next/build/index.html               |  8 +++---
 zh/docs/docker/next/example/index.html             |  8 +++---
 zh/docs/docker/next/manual/index.html              |  8 +++---
 zh/docs/docker/next/tags/index.html                |  8 +++---
 zh/docs/docker/tags/index.html                     |  8 +++---
 zh/docs/general/2fa/index.html                     | 10 ++++----
 zh/docs/general/committer-guide/index.html         | 10 ++++----
 zh/docs/general/contributor-guide/index.html       | 10 ++++----
 .../general/integrate-with-project-docs/index.html | 10 ++++----
 zh/docs/general/release-guide/index.html           | 10 ++++----
 zh/docs/general/security/index.html                | 10 ++++----
 zh/docs/general/subscribe-guide/index.html         | 10 ++++----
 zh/docs/general/tags/index.html                    |  8 +++---
 .../go-plugin-runner/0.1.0/IGNORE_DOC/index.html   |  8 +++---
 .../0.1.0/developer-guide/index.html               |  8 +++---
 .../0.1.0/getting-started/index.html               |  8 +++---
 zh/docs/go-plugin-runner/0.1.0/tags/index.html     |  8 +++---
 zh/docs/go-plugin-runner/IGNORE_DOC/index.html     |  8 +++---
 .../go-plugin-runner/developer-guide/index.html    |  8 +++---
 .../go-plugin-runner/getting-started/index.html    |  8 +++---
 .../go-plugin-runner/next/IGNORE_DOC/index.html    | 10 ++++----
 .../next/developer-guide/index.html                |  8 +++---
 .../next/getting-started/index.html                |  8 +++---
 zh/docs/go-plugin-runner/next/tags/index.html      |  8 +++---
 zh/docs/go-plugin-runner/tags/index.html           |  8 +++---
 zh/docs/helm-chart/FAQ/index.html                  |  8 +++---
 zh/docs/helm-chart/IGNORE_DOC/index.html           | 10 ++++----
 zh/docs/helm-chart/apisix-dashboard/index.html     |  8 +++---
 .../apisix-ingress-controller/index.html           |  8 +++---
 zh/docs/helm-chart/apisix/index.html               |  8 +++---
 zh/docs/helm-chart/tags/index.html                 |  8 +++---
 zh/docs/index.html                                 |  8 +++---
 zh/docs/ingress-controller/FAQ/index.html          |  8 +++---
 zh/docs/ingress-controller/IGNORE_DOC/index.html   | 10 ++++----
 .../concepts/annotations/index.html                |  8 +++---
 .../concepts/apisix_cluster_config/index.html      |  8 +++---
 .../concepts/apisix_route/index.html               |  8 +++---
 .../concepts/apisix_tls/index.html                 |  8 +++---
 .../concepts/apisix_upstream/index.html            |  8 +++---
 zh/docs/ingress-controller/contribute/index.html   |  8 +++---
 .../ingress-controller/deployments/ack/index.html  |  8 +++---
 .../ingress-controller/deployments/aws/index.html  |  8 +++---
 .../deployments/azure/index.html                   |  8 +++---
 .../ingress-controller/deployments/gke/index.html  |  8 +++---
 .../deployments/k3s-rke/index.html                 |  8 +++---
 .../deployments/kubesphere/index.html              |  8 +++---
 .../deployments/minikube/index.html                |  8 +++---
 .../ingress-controller/deployments/tke/index.html  |  8 +++---
 zh/docs/ingress-controller/design/index.html       |  8 +++---
 zh/docs/ingress-controller/development/index.html  |  8 +++---
 .../ingress-controller/getting-started/index.html  |  8 +++---
 .../practices/check-crd-status/index.html          |  8 +++---
 .../ingress-controller/practices/index/index.html  |  8 +++---
 .../ingress-controller/practices/mtls/index.html   |  8 +++---
 .../index.html                                     |  8 +++---
 .../practices/proxy-the-httpbin-service/index.html |  8 +++---
 .../practices/the-hard-way/index.html              |  8 +++---
 .../references/apisix_cluster_config/index.html    |  8 +++---
 .../references/apisix_route_v1/index.html          |  8 +++---
 .../references/apisix_route_v2alpha1/index.html    |  8 +++---
 .../references/apisix_route_v2beta1/index.html     |  8 +++---
 .../references/apisix_tls/index.html               |  8 +++---
 .../references/apisix_upstream/index.html          |  8 +++---
 zh/docs/ingress-controller/tags/index.html         |  8 +++---
 zh/docs/java-plugin-runner/IGNORE_DOC/index.html   |  8 +++---
 zh/docs/java-plugin-runner/development/index.html  |  8 +++---
 zh/docs/java-plugin-runner/how-it-works/index.html |  8 +++---
 .../java-plugin-runner/next/IGNORE_DOC/index.html  | 10 ++++----
 .../java-plugin-runner/next/development/index.html |  8 +++---
 .../next/how-it-works/index.html                   |  8 +++---
 zh/docs/java-plugin-runner/next/tags/index.html    |  8 +++---
 .../index.html                                     |  8 +++---
 zh/docs/java-plugin-runner/tags/index.html         |  8 +++---
 .../index.html                                     |  8 +++---
 zh/docs/python-plugin-runner/IGNORE_DOC/index.html |  8 +++---
 .../developer-guide/index.html                     |  8 +++---
 .../getting-started/index.html                     |  8 +++---
 .../next/IGNORE_DOC/index.html                     | 10 ++++----
 .../next/developer-guide/index.html                |  8 +++---
 .../next/getting-started/index.html                |  8 +++---
 zh/docs/python-plugin-runner/next/tags/index.html  |  8 +++---
 zh/docs/python-plugin-runner/tags/index.html       |  8 +++---
 zh/downloads/ProjectCard/index.html                |  8 +++---
 zh/downloads/index.html                            |  8 +++---
 .../index.html                                     |  8 +++---
 .../index.html                                     |  8 +++---
 .../02/09/release-apache-apisix-2.3/index.html     |  8 +++---
 .../index.html                                     |  8 +++---
 .../release-apache-apisix-dashboard-2.4/index.html |  8 +++---
 .../03/05/release-apache-apisix-2.4/index.html     |  8 +++---
 .../index.html                                     |  8 +++---
 .../04/05/release-apache-apisix-2.5/index.html     |  8 +++---
 .../index.html                                     |  8 +++---
 .../release-apache-apisix-dashboard-2.6/index.html |  8 +++---
 .../05/24/release-apache-apisix-2.6/index.html     |  8 +++---
 .../index.html                                     |  8 +++---
 .../release-apache-apisix-dashboard-2.7/index.html |  8 +++---
 .../06/25/release-apache-apisix-2.7/index.html     |  8 +++---
 zh/events/2021/08/19/weekly-report/index.html      |  8 +++---
 zh/events/2021/08/21/shanghai-meetup/index.html    |  8 +++---
 .../2021/08/23/ApacheCon-Asia-2021/index.html      |  8 +++---
 zh/events/2021/08/23/weekly-report/index.html      |  8 +++---
 zh/events/2021/08/30/weekly-report/index.html      |  8 +++---
 zh/events/archive/index.html                       |  8 +++---
 zh/events/index.html                               |  8 +++---
 zh/events/page/2/index.html                        |  8 +++---
 zh/events/tags/index.html                          |  8 +++---
 zh/events/tags/technology/index.html               |  8 +++---
 zh/help/index.html                                 |  8 +++---
 zh/index.html                                      |  8 +++---
 zh/plugins/index.html                              |  8 +++---
 .../11/15/release-apache-apisix-0.9/index.html     |  8 +++---
 .../2019/9/29/release-apache-apisix-0.8/index.html |  8 +++---
 .../2019/9/6/release-apache-apisix-0.7/index.html  |  8 +++---
 .../2020/1/15/release-apache-apisix-1.0/index.html |  8 +++---
 .../10/28/release-apache-apisix-2.0/index.html     |  8 +++---
 .../2020/12/1/release-apache-apisix-2.1/index.html |  8 +++---
 .../release-apache-apisix-dashboard-2.2/index.html |  8 +++---
 .../index.html                                     |  8 +++---
 .../2020/2/24/release-apache-apisix-1.1/index.html |  8 +++---
 .../release-apache-apisix-dashboard-1.0/index.html |  8 +++---
 .../2020/4/20/release-apache-apisix-1.2/index.html |  8 +++---
 .../2020/5/26/release-apache-apisix-1.3/index.html |  8 +++---
 .../2020/6/30/release-apache-apisix-1.4/index.html |  8 +++---
 .../7/20/release-apache-apisix-1.4.1/index.html    |  8 +++---
 .../release-apache-apisix-dashboard-1.5/index.html |  8 +++---
 .../2020/8/6/release-apache-apisix-1.5/index.html  |  8 +++---
 .../release-apache-apisix-dashboard-2.3/index.html |  8 +++---
 .../index.html                                     |  8 +++---
 .../2021/1/8/release-apache-apisix-2.2/index.html  |  8 +++---
 .../index.html                                     |  8 +++---
 .../release-apache-apisix-dashboard-2.4/index.html |  8 +++---
 .../2021/2/9/release-apache-apisix-2.3/index.html  |  8 +++---
 .../index.html                                     |  8 +++---
 .../release-apache-apisix-dashboard-2.5/index.html |  8 +++---
 .../2021/3/5/release-apache-apisix-2.4/index.html  |  8 +++---
 .../index.html                                     |  8 +++---
 .../release-apache-apisix-dashboard-2.6/index.html |  8 +++---
 .../2021/4/5/release-apache-apisix-2.5/index.html  |  8 +++---
 .../index.html                                     |  8 +++---
 .../2021/5/24/release-apache-apisix-2.6/index.html |  8 +++---
 .../index.html                                     |  8 +++---
 .../release-apache-apisix-dashboard-2.7/index.html |  8 +++---
 .../index.html                                     |  8 +++---
 .../2021/6/25/release-apache-apisix-2.7/index.html |  8 +++---
 .../index.html                                     |  8 +++---
 .../index.html                                     |  8 +++---
 .../2021/7/27/release-apache-apisix-2.8/index.html |  8 +++---
 .../index.html                                     |  8 +++---
 .../index.html                                     |  8 +++---
 .../index.html                                     |  8 +++---
 .../2021/8/27/release-apache-apisix-2.9/index.html |  8 +++---
 .../index.html                                     |  8 +++---
 .../index.html                                     |  8 +++---
 .../release-apache-apisix-dashboard-2.8/index.html |  8 +++---
 zh/releases/archive/index.html                     |  8 +++---
 zh/releases/index.html                             |  8 +++---
 zh/releases/page/2/index.html                      |  8 +++---
 zh/releases/page/3/index.html                      |  8 +++---
 zh/releases/page/4/index.html                      |  8 +++---
 zh/releases/page/5/index.html                      |  8 +++---
 zh/releases/tags/apisix-dashboard/index.html       |  8 +++---
 .../tags/apisix-go-plugin-runner/index.html        |  8 +++---
 .../tags/apisix-ingress-controller/index.html      |  8 +++---
 .../tags/apisix-java-plugin-runner/index.html      |  8 +++---
 .../tags/apisix-python-plugin-runner/index.html    |  8 +++---
 zh/releases/tags/apisix/index.html                 |  8 +++---
 zh/releases/tags/index.html                        |  8 +++---
 zh/search/index.html                               | 10 ++++----
 zh/showcase/index.html                             |  8 +++---
 zh/sitemap.xml                                     |  2 +-
 zh/team/index.html                                 |  8 +++---
 2077 files changed, 8130 insertions(+), 8036 deletions(-)

diff --git a/404.html b/404.html
index 7ebc2c4..560a207 100644
--- a/404.html
+++ b/404.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="Page Not Found | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:image" content="https://ap [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/articles/Apache-APISIX-From-OpenSource-Commercialization-by-Apache-Way/index.html b/articles/Apache-APISIX-From-OpenSource-Commercialization-by-Apache-Way/index.html
index 9da1010..650c499 100644
--- a/articles/Apache-APISIX-From-OpenSource-Commercialization-by-Apache-Way/index.html
+++ b/articles/Apache-APISIX-From-OpenSource-Commercialization-by-Apache-Way/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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 Way 运作开源商业化公司,这行得通吗? | Apache APISIX® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="按照 Apache Way 运作开源商业化公司,这行得通吗? | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" propert [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/articles/Apache-APISIX-From-OpenSource-Commercialization/index.html b/articles/Apache-APISIX-From-OpenSource-Commercialization/index.html
index 65c0030..b1f2e00 100644
--- a/articles/Apache-APISIX-From-OpenSource-Commercialization/index.html
+++ b/articles/Apache-APISIX-From-OpenSource-Commercialization/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="Apache APISIX 从开源项目到商业化之路 | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:imag [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
-<div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/articles/Apache-APISIX-Incubator-Journey/index.html b/articles/Apache-APISIX-Incubator-Journey/index.html
index ef8b791..eb4c188 100644
--- a/articles/Apache-APISIX-Incubator-Journey/index.html
+++ b/articles/Apache-APISIX-Incubator-Journey/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="Apache APISIX 的孵化器之旅 | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:image" content [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/articles/Apache-APISIX-Kubernetes-Ingress/index.html b/articles/Apache-APISIX-Kubernetes-Ingress/index.html
index e0652d1..149f7fa 100644
--- a/articles/Apache-APISIX-Kubernetes-Ingress/index.html
+++ b/articles/Apache-APISIX-Kubernetes-Ingress/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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 的 Kubernetes Ingress 的实现 | Apache APISIX® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="基于 Apache APISIX 的 Kubernetes Ingress 的实现 | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/articles/Apache-APISIX-in-China-Mobile-Cloud/index.html b/articles/Apache-APISIX-in-China-Mobile-Cloud/index.html
index cff98f4..1042eda 100644
--- a/articles/Apache-APISIX-in-China-Mobile-Cloud/index.html
+++ b/articles/Apache-APISIX-in-China-Mobile-Cloud/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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 在移动云对象存储 EOS 的应用与实践 | Apache APISIX® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="Apache APISIX 在移动云对象存储 EOS 的应用与实践 | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" p [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
-<div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/articles/How-To-Extend-Apache-APISIX-into-a-Service-Mesh-Sidecar/index.html b/articles/How-To-Extend-Apache-APISIX-into-a-Service-Mesh-Sidecar/index.html
index 665ffc2..b88be92 100644
--- a/articles/How-To-Extend-Apache-APISIX-into-a-Service-Mesh-Sidecar/index.html
+++ b/articles/How-To-Extend-Apache-APISIX-into-a-Service-Mesh-Sidecar/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="如何将 Apache APISIX 扩展为一个服务网格的边车 | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" propert [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/articles/Relying-On-The-Community-To-Get-Apache-APISIX-Up-Speed/index.html b/articles/Relying-On-The-Community-To-Get-Apache-APISIX-Up-Speed/index.html
index b256906..a5f344f 100644
--- a/articles/Relying-On-The-Community-To-Get-Apache-APISIX-Up-Speed/index.html
+++ b/articles/Relying-On-The-Community-To-Get-Apache-APISIX-Up-Speed/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="依托社区让 Apache APISIX 高速发展 | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:image" [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/articles/Rendering-Community-Events-Using-ECharts/index.html b/articles/Rendering-Community-Events-Using-ECharts/index.html
index 202c0f6..b27649d 100644
--- a/articles/Rendering-Community-Events-Using-ECharts/index.html
+++ b/articles/Rendering-Community-Events-Using-ECharts/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">使用 ECharts 呈现社区活动的渲染图 | Apache APISIX® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="使用 ECharts 呈现社区活动的渲染图 | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:image" conte [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/articles/Speed-Limiting-With-Apache-APISIX/index.html b/articles/Speed-Limiting-With-Apache-APISIX/index.html
index c31ad14..cb4eec5 100644
--- a/articles/Speed-Limiting-With-Apache-APISIX/index.html
+++ b/articles/Speed-Limiting-With-Apache-APISIX/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="使用 Apache APISIX 实现限流限速 | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:image" c [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/articles/Test-Apache-APISIX-Resilience-With-Chaos-Mesh/index.html b/articles/Test-Apache-APISIX-Resilience-With-Chaos-Mesh/index.html
index 3a7e628..e0a61f5 100644
--- a/articles/Test-Apache-APISIX-Resilience-With-Chaos-Mesh/index.html
+++ b/articles/Test-Apache-APISIX-Resilience-With-Chaos-Mesh/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="用 Chaos Mesh 测试 Apache APISIX 的恢复能力 | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="tru [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/articles/The-Appeal-of-OpenSource/index.html b/articles/The-Appeal-of-OpenSource/index.html
index d0422ba..de08aea 100644
--- a/articles/The-Appeal-of-OpenSource/index.html
+++ b/articles/The-Appeal-of-OpenSource/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="开源的魅力 | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:image" content="https://apisix.apache.org//i [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/articles/The-Evolution-of-Apache-APISIX/index.html b/articles/The-Evolution-of-Apache-APISIX/index.html
index 02a726d..16dd139 100644
--- a/articles/The-Evolution-of-Apache-APISIX/index.html
+++ b/articles/The-Evolution-of-Apache-APISIX/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="Apache APISIX 的演变 | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:image" content="http [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/articles/Using-Apache-APISIX-To-Do-Authentication-and-Authorization/index.html b/articles/Using-Apache-APISIX-To-Do-Authentication-and-Authorization/index.html
index 930e20b..2e58d55 100644
--- a/articles/Using-Apache-APISIX-To-Do-Authentication-and-Authorization/index.html
+++ b/articles/Using-Apache-APISIX-To-Do-Authentication-and-Authorization/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="使用 Apache APISIX 进行认证和授权 | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:image" [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/articles/archive/index.html b/articles/archive/index.html
index 5829e1a..5f1f0e2 100644
--- a/articles/archive/index.html
+++ b/articles/archive/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Archive | Apache APISIX® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="Archive | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:image" content="https://apisix.apache.or [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/articles/atom.xml b/articles/atom.xml
index 8c74daa..0fd4791 100644
--- a/articles/atom.xml
+++ b/articles/atom.xml
@@ -2,7 +2,7 @@
 <feed xmlns="http://www.w3.org/2005/Atom">
     <id>https://apisix.apache.org/articles</id>
     <title>Apache APISIX® --  Cloud-Native API Gateway Blog</title>
-    <updated>2021-09-16T03:15:33.241Z</updated>
+    <updated>2021-09-16T03:18:55.099Z</updated>
     <generator>https://github.com/jpmonette/feed</generator>
     <link rel="alternate" href="https://apisix.apache.org/articles"/>
     <subtitle>Apache APISIX® --  Cloud-Native API Gateway Blog</subtitle>
@@ -11,14 +11,14 @@
         <title type="html"><![CDATA[Apache APISIX 从开源项目到商业化之路]]></title>
         <id>Apache APISIX 从开源项目到商业化之路</id>
         <link href="https://apisix.apache.org/articles/Apache-APISIX-From-OpenSource-Commercialization"/>
-        <updated>2021-09-16T03:15:33.241Z</updated>
+        <updated>2021-09-16T03:18:55.099Z</updated>
         <summary type="html"><![CDATA[Apache APISIX 从开源项目到商业化之路.]]></summary>
     </entry>
     <entry>
         <title type="html"><![CDATA[Apache APISIX 在移动云对象存储 EOS 的应用与实践]]></title>
         <id>Apache APISIX 在移动云对象存储 EOS 的应用与实践</id>
         <link href="https://apisix.apache.org/articles/Apache-APISIX-in-China-Mobile-Cloud"/>
-        <updated>2021-09-16T03:15:33.241Z</updated>
+        <updated>2021-09-16T03:18:55.099Z</updated>
         <summary type="html"><![CDATA[该演讲主题主要是讲述 Apache APISIX 在中国移动公有云对象存储 EOS 中的应用与实践经验分享。首先介绍了中国移动公有云建设规划及对象存储产品发展演进历程,然后阐述了我们为什么选择 APISIX 作为负载均衡网关,并对 EOS 流量治理架构演进三个阶段进行进行了详细介绍。同时,我们还分享了基于 APISIX 我们解决了哪些实际生产问题,做了哪些方案及开发工作,最后对我们未来的演进做了一些规划说明。]]></summary>
     </entry>
     <entry>
diff --git a/articles/index.html b/articles/index.html
index 89943c8..d583145 100644
--- a/articles/index.html
+++ b/articles/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Article | Apache APISIX® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="Article | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:image" content="https://apisix.apache.or [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
-<div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/articles/page/2/index.html b/articles/page/2/index.html
index a259a50..8d37f73 100644
--- a/articles/page/2/index.html
+++ b/articles/page/2/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Article | Apache APISIX® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="Article | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:image" content="https://apisix.apache.or [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/articles/rss.xml b/articles/rss.xml
index 85176cd..86d6fd1 100644
--- a/articles/rss.xml
+++ b/articles/rss.xml
@@ -4,21 +4,21 @@
         <title>Apache APISIX® --  Cloud-Native API Gateway Blog</title>
         <link>https://apisix.apache.org/articles</link>
         <description>Apache APISIX® --  Cloud-Native API Gateway Blog</description>
-        <lastBuildDate>Thu, 16 Sep 2021 03:15:33 GMT</lastBuildDate>
+        <lastBuildDate>Thu, 16 Sep 2021 03:18:55 GMT</lastBuildDate>
         <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
         <generator>https://github.com/jpmonette/feed</generator>
         <item>
             <title><![CDATA[Apache APISIX 从开源项目到商业化之路]]></title>
             <link>https://apisix.apache.org/articles/Apache-APISIX-From-OpenSource-Commercialization</link>
             <guid>Apache APISIX 从开源项目到商业化之路</guid>
-            <pubDate>Thu, 16 Sep 2021 03:15:33 GMT</pubDate>
+            <pubDate>Thu, 16 Sep 2021 03:18:55 GMT</pubDate>
             <description><![CDATA[Apache APISIX 从开源项目到商业化之路.]]></description>
         </item>
         <item>
             <title><![CDATA[Apache APISIX 在移动云对象存储 EOS 的应用与实践]]></title>
             <link>https://apisix.apache.org/articles/Apache-APISIX-in-China-Mobile-Cloud</link>
             <guid>Apache APISIX 在移动云对象存储 EOS 的应用与实践</guid>
-            <pubDate>Thu, 16 Sep 2021 03:15:33 GMT</pubDate>
+            <pubDate>Thu, 16 Sep 2021 03:18:55 GMT</pubDate>
             <description><![CDATA[该演讲主题主要是讲述 Apache APISIX 在中国移动公有云对象存储 EOS 中的应用与实践经验分享。首先介绍了中国移动公有云建设规划及对象存储产品发展演进历程,然后阐述了我们为什么选择 APISIX 作为负载均衡网关,并对 EOS 流量治理架构演进三个阶段进行进行了详细介绍。同时,我们还分享了基于 APISIX 我们解决了哪些实际生产问题,做了哪些方案及开发工作,最后对我们未来的演进做了一些规划说明。]]></description>
         </item>
         <item>
diff --git a/assets/js/09b17eb5.aa1b5899.js b/assets/js/09b17eb5.349e51c2.js
similarity index 98%
rename from assets/js/09b17eb5.aa1b5899.js
rename to assets/js/09b17eb5.349e51c2.js
index 63bb010..6fdf393 100644
--- a/assets/js/09b17eb5.aa1b5899.js
+++ b/assets/js/09b17eb5.349e51c2.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[29556],{3905:function(e,t,r){r.d(t,{Zo:function(){return u},kt:function(){return s}});var n=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 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
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[29556],{3905:function(e,t,r){r.d(t,{Zo:function(){return u},kt:function(){return s}});var n=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 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/11fd55b2.198cb7da.js b/assets/js/11fd55b2.aefac678.js
similarity index 50%
rename from assets/js/11fd55b2.198cb7da.js
rename to assets/js/11fd55b2.aefac678.js
index 74856e4..3b37670 100644
--- a/assets/js/11fd55b2.198cb7da.js
+++ b/assets/js/11fd55b2.aefac678.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[17924],{78754:function(a){a.exports=JSON.parse('{"allTagsPath":"/blog/tags","slug":"/blog/tags/practical-case","name":"practical case","count":13,"permalink":"/blog/tags/practical-case"}')}}]);
\ No newline at end of file
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[17924],{78754:function(a){a.exports=JSON.parse('{"allTagsPath":"/blog/tags","slug":"/blog/tags/practical-case","name":"Practical Case","count":14,"permalink":"/blog/tags/practical-case"}')}}]);
\ No newline at end of file
diff --git a/assets/js/19945770.188f30b3.js b/assets/js/19945770.188f30b3.js
new file mode 100644
index 0000000..e6cec93
--- /dev/null
+++ b/assets/js/19945770.188f30b3.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[55067],{3905:function(e,t,n){n.d(t,{Zo:function(){return d},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 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/19945770.27dfd745.js b/assets/js/19945770.27dfd745.js
deleted file mode 100644
index 93bbddf..0000000
--- a/assets/js/19945770.27dfd745.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[55067],{3905:function(e,t,n){n.d(t,{Zo:function(){return d},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 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/3393d167.c73ef7f3.js b/assets/js/3393d167.dc8fe51d.js
similarity index 89%
copy from assets/js/3393d167.c73ef7f3.js
copy to assets/js/3393d167.dc8fe51d.js
index 773f51f..46602d9 100644
--- a/assets/js/3393d167.c73ef7f3.js
+++ b/assets/js/3393d167.dc8fe51d.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[27314],{3905:function(e,t,r){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
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[27314],{3905:function(e,t,r){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.83c2dd4f.js b/assets/js/358566b4.3b257bfb.js
similarity index 89%
rename from assets/js/358566b4.83c2dd4f.js
rename to assets/js/358566b4.3b257bfb.js
index d2d2795..611c4b7 100644
--- a/assets/js/358566b4.83c2dd4f.js
+++ b/assets/js/358566b4.3b257bfb.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[13553],{3905:function(e,t,r){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
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[13553],{3905:function(e,t,r){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/zh/assets/js/3dc9f306.23a0f7bc.js b/assets/js/3dc9f306.a2247aa6.js
similarity index 54%
rename from zh/assets/js/3dc9f306.23a0f7bc.js
rename to assets/js/3dc9f306.a2247aa6.js
index a1dc379..58fe6f4 100644
--- a/zh/assets/js/3dc9f306.23a0f7bc.js
+++ b/assets/js/3dc9f306.a2247aa6.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[38393],{3905:function(e,t,o){o.d(t,{Zo:function(){return l},kt:function(){return d}});var n=o(67294);function r(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function a(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o [...]
\ No newline at end of file
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[38393],{3905:function(e,t,o){o.d(t,{Zo:function(){return l},kt:function(){return d}});var n=o(67294);function r(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function a(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o [...]
\ No newline at end of file
diff --git a/assets/js/40fb2fae.94e296a2.js b/assets/js/40fb2fae.f9a501c0.js
similarity index 89%
rename from assets/js/40fb2fae.94e296a2.js
rename to assets/js/40fb2fae.f9a501c0.js
index abf7691..f183bdc 100644
--- a/assets/js/40fb2fae.94e296a2.js
+++ b/assets/js/40fb2fae.f9a501c0.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[32547],{3905:function(e,t,r){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
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[32547],{3905:function(e,t,r){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/4c20006b.82c98cd6.js b/assets/js/4c20006b.82c98cd6.js
deleted file mode 100644
index bfb9798..0000000
--- a/assets/js/4c20006b.82c98cd6.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[91012],{3905:function(e,t,n){n.d(t,{Zo:function(){return l},kt:function(){return O}});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.c73ef7f3.js b/assets/js/4c20006b.b38a82bf.js
similarity index 56%
copy from assets/js/3393d167.c73ef7f3.js
copy to assets/js/4c20006b.b38a82bf.js
index 773f51f..e14b84f 100644
--- a/assets/js/3393d167.c73ef7f3.js
+++ b/assets/js/4c20006b.b38a82bf.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[27314],{3905:function(e,t,r){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
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[91012],{3905:function(e,t,r){r.d(t,{Zo:function(){return l},kt:function(){return O}});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r [...]
\ No newline at end of file
diff --git a/assets/js/507e1a4c.0cfa1b58.js b/assets/js/507e1a4c.ed92d378.js
similarity index 98%
rename from assets/js/507e1a4c.0cfa1b58.js
rename to assets/js/507e1a4c.ed92d378.js
index 6aad54b..9afd49b 100644
--- a/assets/js/507e1a4c.0cfa1b58.js
+++ b/assets/js/507e1a4c.ed92d378.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[58509],{62276:function(e){e.exports=JSON.parse('{"blogPosts":[{"id":"Apache APISIX \u4ece\u5f00\u6e90\u9879\u76ee\u5230\u5546\u4e1a\u5316\u4e4b\u8def","metadata":{"permalink":"/articles/Apache-APISIX-From-OpenSource-Commercialization","source":"@site/articles/Apache-APISIX-From-OpenSource-Commercialization.md","title":"Apache APISIX \u4ece\u5f00\u6e90\u9879\u76ee\u5230\u5546\u4e1a\u5316\u4e4b\u8def","description":"Apache APISI [...]
\ No newline at end of file
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[58509],{62276:function(e){e.exports=JSON.parse('{"blogPosts":[{"id":"Apache APISIX \u4ece\u5f00\u6e90\u9879\u76ee\u5230\u5546\u4e1a\u5316\u4e4b\u8def","metadata":{"permalink":"/articles/Apache-APISIX-From-OpenSource-Commercialization","source":"@site/articles/Apache-APISIX-From-OpenSource-Commercialization.md","title":"Apache APISIX \u4ece\u5f00\u6e90\u9879\u76ee\u5230\u5546\u4e1a\u5316\u4e4b\u8def","description":"Apache APISI [...]
\ No newline at end of file
diff --git a/zh/assets/js/50facf8e.4800e241.js b/assets/js/50facf8e.180747f9.js
similarity index 52%
rename from zh/assets/js/50facf8e.4800e241.js
rename to assets/js/50facf8e.180747f9.js
index fb5ccf2..8e35c88 100644
--- a/zh/assets/js/50facf8e.4800e241.js
+++ b/assets/js/50facf8e.180747f9.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[87974],{3905:function(e,t,r){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
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[87974],{3905:function(e,t,r){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.b14957f9.js b/assets/js/542fd41f.7c63a2d7.js
similarity index 88%
rename from assets/js/542fd41f.b14957f9.js
rename to assets/js/542fd41f.7c63a2d7.js
index 79e9adb..91ad976 100644
--- a/assets/js/542fd41f.b14957f9.js
+++ b/assets/js/542fd41f.7c63a2d7.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4316],{3905:function(e,t,r){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
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4316],{3905:function(e,t,r){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.ffa0955c.js b/assets/js/601c6eaa.6df379e3.js
similarity index 55%
rename from assets/js/601c6eaa.ffa0955c.js
rename to assets/js/601c6eaa.6df379e3.js
index deb91d5..74ed39a 100644
--- a/assets/js/601c6eaa.ffa0955c.js
+++ b/assets/js/601c6eaa.6df379e3.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[97117],{3905:function(e,t,r){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
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[97117],{3905:function(e,t,r){r.d(t,{Zo:function(){return l},kt:function(){return O}});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r [...]
\ No newline at end of file
diff --git a/zh/assets/js/66fbb9c2.52a532d5.js b/assets/js/66fbb9c2.e31dd1bc.js
similarity index 64%
rename from zh/assets/js/66fbb9c2.52a532d5.js
rename to assets/js/66fbb9c2.e31dd1bc.js
index 6346c5d..0a079d0 100644
--- a/zh/assets/js/66fbb9c2.52a532d5.js
+++ b/assets/js/66fbb9c2.e31dd1bc.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7668],{3905:function(e,t,r){r.d(t,{Zo:function(){return p},kt:function(){return d}});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
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7668],{3905:function(e,t,r){r.d(t,{Zo:function(){return p},kt:function(){return d}});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.8375aefc.js b/assets/js/7af3052c.8375aefc.js
deleted file mode 100644
index e1323cc..0000000
--- a/assets/js/7af3052c.8375aefc.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[25032],{3905:function(e,a,t){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.9eb763dc.js b/assets/js/7af3052c.9eb763dc.js
new file mode 100644
index 0000000..beb4bde
--- /dev/null
+++ b/assets/js/7af3052c.9eb763dc.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[25032],{3905:function(e,a,t){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/3393d167.c73ef7f3.js b/assets/js/80791de8.217a0540.js
similarity index 54%
copy from assets/js/3393d167.c73ef7f3.js
copy to assets/js/80791de8.217a0540.js
index 773f51f..3a050ad 100644
--- a/assets/js/3393d167.c73ef7f3.js
+++ b/assets/js/80791de8.217a0540.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[27314],{3905:function(e,t,r){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
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[50466],{3905:function(e,t,r){r.d(t,{Zo:function(){return l},kt:function(){return y}});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/80791de8.76fdb164.js b/assets/js/80791de8.76fdb164.js
deleted file mode 100644
index a7874c4..0000000
--- a/assets/js/80791de8.76fdb164.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[50466],{3905:function(e,t,n){n.d(t,{Zo:function(){return l},kt:function(){return y}});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 c(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/814f3328.8f316dca.js b/assets/js/814f3328.8f316dca.js
deleted file mode 100644
index ad99870..0000000
--- a/assets/js/814f3328.8f316dca.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[52535],{45641:function(e){e.exports=JSON.parse('{"title":"Recent posts","items":[{"title":"\u4e0d\u5199\u4ee3\u7801\uff0c\u5982\u4f55\u4e3a\u5f00\u6e90\u9879\u76ee\u505a\u8d21\u732e\uff1f","permalink":"/blog/2021/09/09/how-to-contribute-to-an-OpenSource-without-coding"},{"title":"\u4f7f\u7528 Apache APISIX \u8fdb\u884c\u96c6\u4e2d\u5f0f\u8eab\u4efd\u8ba4\u8bc1\u53ca\u8fdb\u9636\u73a9\u6cd5","permalink":"/blog/2021/09/07/how-to [...]
\ No newline at end of file
diff --git a/assets/js/814f3328.9d93859c.js b/assets/js/814f3328.9d93859c.js
new file mode 100644
index 0000000..7f2f6e4
--- /dev/null
+++ b/assets/js/814f3328.9d93859c.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[52535],{45641:function(e){e.exports=JSON.parse('{"title":"Recent posts","items":[{"title":"Apache APISIX \u52a9\u529b\u6709\u8d5e\u4e91\u539f\u751f PaaS \u5e73\u53f0\uff0c\u5b9e\u73b0\u5168\u9762\u5fae\u670d\u52a1\u6cbb\u7406","permalink":"/blog/2021/09/14/youzan"},{"title":"\u4e0d\u5199\u4ee3\u7801\uff0c\u5982\u4f55\u4e3a\u5f00\u6e90\u9879\u76ee\u505a\u8d21\u732e\uff1f","permalink":"/blog/2021/09/09/how-to-contribute-to-an-Op [...]
\ No newline at end of file
diff --git a/assets/js/8159971e.eb2420ef.js b/assets/js/8159971e.eb2420ef.js
new file mode 100644
index 0000000..1dec64f
--- /dev/null
+++ b/assets/js/8159971e.eb2420ef.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[36667],{3905:function(e,t,a){a.d(t,{Zo:function(){return u},kt:function(){return k}});var n=a(67294);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function p(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a [...]
\ No newline at end of file
diff --git a/assets/js/83edfd60.b8790cd1.js b/assets/js/83edfd60.b8790cd1.js
new file mode 100644
index 0000000..284c1f6
--- /dev/null
+++ b/assets/js/83edfd60.b8790cd1.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[42720],{3905:function(e,t,r){r.d(t,{Zo:function(){return l},kt:function(){return m}});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r [...]
\ No newline at end of file
diff --git a/assets/js/8e784bf3.4c197ac5.js b/assets/js/8e784bf3.4c197ac5.js
new file mode 100644
index 0000000..909c92d
--- /dev/null
+++ b/assets/js/8e784bf3.4c197ac5.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[78216],{3905:function(e,t,o){o.d(t,{Zo:function(){return p},kt:function(){return d}});var r=o(67294);function n(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function i(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o [...]
\ No newline at end of file
diff --git a/assets/js/8e784bf3.f908a8ae.js b/assets/js/8e784bf3.f908a8ae.js
deleted file mode 100644
index bdefcf6..0000000
--- a/assets/js/8e784bf3.f908a8ae.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[78216],{3905:function(e,t,o){o.d(t,{Zo:function(){return p},kt:function(){return d}});var r=o(67294);function n(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function i(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o [...]
\ No newline at end of file
diff --git a/assets/js/8f700fa6.1cadf105.js b/assets/js/8f700fa6.71ab7f15.js
similarity index 97%
rename from assets/js/8f700fa6.1cadf105.js
rename to assets/js/8f700fa6.71ab7f15.js
index 916a783..8001825 100644
--- a/assets/js/8f700fa6.1cadf105.js
+++ b/assets/js/8f700fa6.71ab7f15.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[53963],{3905:function(e,t,r){r.d(t,{Zo:function(){return u},kt:function(){return m}});var n=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 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
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[53963],{3905:function(e,t,r){r.d(t,{Zo:function(){return u},kt:function(){return m}});var n=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 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/90fc8a94.67122bda.js b/assets/js/90fc8a94.f1b3dbff.js
similarity index 98%
rename from assets/js/90fc8a94.67122bda.js
rename to assets/js/90fc8a94.f1b3dbff.js
index 63c0e05..922303e 100644
--- a/assets/js/90fc8a94.67122bda.js
+++ b/assets/js/90fc8a94.f1b3dbff.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[64125],{3905:function(e,t,r){r.d(t,{Zo:function(){return u},kt:function(){return s}});var n=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 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
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[64125],{3905:function(e,t,r){r.d(t,{Zo:function(){return u},kt:function(){return s}});var n=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 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/941960b1.20b9285b.js b/assets/js/941960b1.517f6f7f.js
similarity index 97%
rename from assets/js/941960b1.20b9285b.js
rename to assets/js/941960b1.517f6f7f.js
index ff07a03..21953c4 100644
--- a/assets/js/941960b1.20b9285b.js
+++ b/assets/js/941960b1.517f6f7f.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[41950],{3905:function(e,t,r){r.d(t,{Zo:function(){return u},kt:function(){return m}});var n=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 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
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[41950],{3905:function(e,t,r){r.d(t,{Zo:function(){return u},kt:function(){return m}});var n=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 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/a7023ddc.1f19b955.js b/assets/js/a7023ddc.1f19b955.js
new file mode 100644
index 0000000..cd30bed
--- /dev/null
+++ b/assets/js/a7023ddc.1f19b955.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[11713],{53457:function(a){a.exports=JSON.parse('{"/blog/tags/practical-case":{"allTagsPath":"/blog/tags","slug":"/blog/tags/practical-case","name":"Practical Case","count":14,"permalink":"/blog/tags/practical-case"},"/blog/tags/community":{"allTagsPath":"/blog/tags","slug":"/blog/tags/community","name":"community","count":1,"permalink":"/blog/tags/community"},"/blog/tags/technology":{"allTagsPath":"/blog/tags","slug":"/blog/ta [...]
\ No newline at end of file
diff --git a/assets/js/a7023ddc.62443518.js b/assets/js/a7023ddc.62443518.js
deleted file mode 100644
index 4341679..0000000
--- a/assets/js/a7023ddc.62443518.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[11713],{53457:function(a){a.exports=JSON.parse('{"/blog/tags/community":{"allTagsPath":"/blog/tags","slug":"/blog/tags/community","name":"community","count":1,"permalink":"/blog/tags/community"},"/blog/tags/technology":{"allTagsPath":"/blog/tags","slug":"/blog/tags/technology","name":"technology","count":41,"permalink":"/blog/tags/technology"},"/blog/tags/news":{"allTagsPath":"/blog/tags","slug":"/blog/tags/news","name":"news" [...]
\ No newline at end of file
diff --git a/assets/js/adbb350b.f8186f54.js b/assets/js/adbb350b.f8186f54.js
deleted file mode 100644
index 2b4c821..0000000
--- a/assets/js/adbb350b.f8186f54.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[85427],{3905:function(e,t,i){i.d(t,{Zo:function(){return p},kt:function(){return d}});var r=i(67294);function n(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function a(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i [...]
\ No newline at end of file
diff --git a/assets/js/adbb350b.fc925dc2.js b/assets/js/adbb350b.fc925dc2.js
new file mode 100644
index 0000000..f1b7497
--- /dev/null
+++ b/assets/js/adbb350b.fc925dc2.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[85427],{3905:function(e,t,r){r.d(t,{Zo:function(){return p},kt:function(){return d}});var i=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r [...]
\ No newline at end of file
diff --git a/assets/js/b2b675dd.f693f939.js b/assets/js/b2b675dd.37c1d6a9.js
similarity index 69%
rename from assets/js/b2b675dd.f693f939.js
rename to assets/js/b2b675dd.37c1d6a9.js
index 32650c6..dc50a13 100644
--- a/assets/js/b2b675dd.f693f939.js
+++ b/assets/js/b2b675dd.37c1d6a9.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[90533],{28017:function(e){e.exports=JSON.parse('{"permalink":"/blog","page":1,"postsPerPage":59,"totalPages":1,"totalCount":59,"previousPage":null,"nextPage":null,"blogDescription":"Blog","blogTitle":"Blog"}')}}]);
\ No newline at end of file
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[90533],{28017:function(e){e.exports=JSON.parse('{"permalink":"/blog","page":1,"postsPerPage":60,"totalPages":1,"totalCount":60,"previousPage":null,"nextPage":null,"blogDescription":"Blog","blogTitle":"Blog"}')}}]);
\ No newline at end of file
diff --git a/assets/js/b2f554cd.03d0e7ca.js b/assets/js/b2f554cd.03d0e7ca.js
new file mode 100644
index 0000000..af41aba
--- /dev/null
+++ b/assets/js/b2f554cd.03d0e7ca.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[11477],{30010:function(e){e.exports=JSON.parse('{"blogPosts":[{"id":"Apache APISIX \u52a9\u529b\u6709\u8d5e\u4e91\u539f\u751f PaaS \u5e73\u53f0\uff0c\u5b9e\u73b0\u5168\u9762\u5fae\u670d\u52a1\u6cbb\u7406","metadata":{"permalink":"/blog/2021/09/14/youzan","source":"@site/blog/2021-09-14-youzan.md","title":"Apache APISIX \u52a9\u529b\u6709\u8d5e\u4e91\u539f\u751f PaaS \u5e73\u53f0\uff0c\u5b9e\u73b0\u5168\u9762\u5fae\u670d\u52a1\ [...]
\ No newline at end of file
diff --git a/assets/js/b2f554cd.314c9d6f.js b/assets/js/b2f554cd.314c9d6f.js
deleted file mode 100644
index 40e1cbb..0000000
--- a/assets/js/b2f554cd.314c9d6f.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[11477],{30010:function(e){e.exports=JSON.parse('{"blogPosts":[{"id":"\u4e0d\u5199\u4ee3\u7801\uff0c\u5982\u4f55\u4e3a\u5f00\u6e90\u9879\u76ee\u505a\u8d21\u732e\uff1f","metadata":{"permalink":"/blog/2021/09/09/how-to-contribute-to-an-OpenSource-without-coding","source":"@site/blog/2021-09-09-how-to-contribute-to-an-OpenSource-without-coding.md","title":"\u4e0d\u5199\u4ee3\u7801\uff0c\u5982\u4f55\u4e3a\u5f00\u6e90\u9879\u76ee\u5 [...]
\ No newline at end of file
diff --git a/assets/js/d00e343a.96faebd5.js b/assets/js/d00e343a.96faebd5.js
deleted file mode 100644
index e0f5251..0000000
--- a/assets/js/d00e343a.96faebd5.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[38617],{3905:function(t,e,n){n.d(e,{Zo:function(){return c},kt:function(){return d}});var r=n(67294);function i(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n [...]
\ No newline at end of file
diff --git a/assets/js/d00e343a.e74a0510.js b/assets/js/d00e343a.e74a0510.js
new file mode 100644
index 0000000..3ba3f32
--- /dev/null
+++ b/assets/js/d00e343a.e74a0510.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[38617],{3905:function(t,e,n){n.d(e,{Zo:function(){return c},kt:function(){return k}});var r=n(67294);function i(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n [...]
\ No newline at end of file
diff --git a/assets/js/d18db9b0.80b6cc41.js b/assets/js/d18db9b0.ded29154.js
similarity index 88%
rename from assets/js/d18db9b0.80b6cc41.js
rename to assets/js/d18db9b0.ded29154.js
index e7f56ae..124c1c5 100644
--- a/assets/js/d18db9b0.80b6cc41.js
+++ b/assets/js/d18db9b0.ded29154.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[17825],{3905:function(e,t,r){r.d(t,{Zo:function(){return p},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
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[17825],{3905:function(e,t,r){r.d(t,{Zo:function(){return p},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/f96d8335.7c0ee350.js b/assets/js/f96d8335.d8364e15.js
similarity index 54%
rename from assets/js/f96d8335.7c0ee350.js
rename to assets/js/f96d8335.d8364e15.js
index 8eb2460..b7fe163 100644
--- a/assets/js/f96d8335.7c0ee350.js
+++ b/assets/js/f96d8335.d8364e15.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[14366],{3905:function(e,t,r){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 i(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
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[14366],{3905:function(e,t,r){r.d(t,{Zo:function(){return l},kt:function(){return f}});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/main.9fcdcf0c.js b/assets/js/main.9fcdcf0c.js
deleted file mode 100644
index b2c0997..0000000
--- a/assets/js/main.9fcdcf0c.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/*! For license information please see main.9fcdcf0c.js.LICENSE.txt */
-(self.webpackChunk=self.webpackChunk||[]).push([[40179],{99782:function(e,n,t){"use strict";t.r(n),n.default={title:"Apache APISIX\xae --  Cloud-Native API Gateway",tagline:"Apache APISIX is a dynamic, real-time, high-performance Cloud-Native API gateway, based on the Nginx library and etcd.",url:"https://apisix.apache.org/",baseUrl:"/",organizationName:"Apache",projectName:"apisix-website",favicon:"img/favicon.png",customFields:{tagline2:"Apache APISIX software provides rich traffic man [...]
\ No newline at end of file
diff --git a/assets/js/main.ee3bde9c.js b/assets/js/main.ee3bde9c.js
new file mode 100644
index 0000000..36299de
--- /dev/null
+++ b/assets/js/main.ee3bde9c.js
@@ -0,0 +1,2 @@
+/*! For license information please see main.ee3bde9c.js.LICENSE.txt */
+(self.webpackChunk=self.webpackChunk||[]).push([[40179],{99782:function(e,n,t){"use strict";t.r(n),n.default={title:"Apache APISIX\xae --  Cloud-Native API Gateway",tagline:"Apache APISIX is a dynamic, real-time, high-performance Cloud-Native API gateway, based on the Nginx library and etcd.",url:"https://apisix.apache.org/",baseUrl:"/",organizationName:"Apache",projectName:"apisix-website",favicon:"img/favicon.png",customFields:{tagline2:"Apache APISIX software provides rich traffic man [...]
\ No newline at end of file
diff --git a/zh/assets/js/main.6090bf0b.js.LICENSE.txt b/assets/js/main.ee3bde9c.js.LICENSE.txt
similarity index 100%
rename from zh/assets/js/main.6090bf0b.js.LICENSE.txt
rename to assets/js/main.ee3bde9c.js.LICENSE.txt
diff --git a/assets/js/runtime~main.5aaddfd3.js b/assets/js/runtime~main.5aaddfd3.js
new file mode 100644
index 0000000..710067b
--- /dev/null
+++ b/assets/js/runtime~main.5aaddfd3.js
@@ -0,0 +1 @@
+!function(){"use strict";var e,f,c,b,a={},d={};function t(e){var f=d[e];if(void 0!==f)return f.exports;var c=d[e]={id:e,loaded:!1,exports:{}};return a[e].call(c.exports,c,c.exports,t),c.loaded=!0,c.exports}t.m=a,t.c=d,e=[],t.O=function(f,c,b,a){if(!c){var d=1/0;for(u=0;u<e.length;u++){c=e[u][0],b=e[u][1],a=e[u][2];for(var n=!0,r=0;r<c.length;r++)(!1&a||d>=a)&&Object.keys(t.O).every((function(e){return t.O[e](c[r])}))?c.splice(r--,1):(n=!1,a<d&&(d=a));if(n){e.splice(u--,1);var o=b();void  [...]
\ No newline at end of file
diff --git a/assets/js/runtime~main.9cf8bcef.js b/assets/js/runtime~main.9cf8bcef.js
deleted file mode 100644
index 5e3c9b2..0000000
--- a/assets/js/runtime~main.9cf8bcef.js
+++ /dev/null
@@ -1 +0,0 @@
-!function(){"use strict";var e,c,f,b,a={},d={};function t(e){var c=d[e];if(void 0!==c)return c.exports;var f=d[e]={id:e,loaded:!1,exports:{}};return a[e].call(f.exports,f,f.exports,t),f.loaded=!0,f.exports}t.m=a,t.c=d,e=[],t.O=function(c,f,b,a){if(!f){var d=1/0;for(u=0;u<e.length;u++){f=e[u][0],b=e[u][1],a=e[u][2];for(var n=!0,r=0;r<f.length;r++)(!1&a||d>=a)&&Object.keys(t.O).every((function(e){return t.O[e](f[r])}))?f.splice(r--,1):(n=!1,a<d&&(d=a));if(n){e.splice(u--,1);var o=b();void  [...]
\ 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 8010f97..ce0ee55 100644
--- a/blog/2020/08/22/new-website/index.html
+++ b/blog/2020/08/22/new-website/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="New website for Apache APISIX | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property= [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2020/12/11/beike-how-to-build-gateway-based-on-apache-apisix/index.html b/blog/2020/12/11/beike-how-to-build-gateway-based-on-apache-apisix/index.html
index ebe37ca..e17089f 100644
--- a/blog/2020/12/11/beike-how-to-build-gateway-based-on-apache-apisix/index.html
+++ b/blog/2020/12/11/beike-how-to-build-gateway-based-on-apache-apisix/index.html
@@ -18,15 +18,15 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="贝壳找房:如何基于 Apache APISIX 搭建网关 | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="o [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 <img src="https://static.apiseven.com/2020/05/1588756665-Snipaste_2020-05-06_17-17-29.png" alt="Apache APISIX 架构图">
 <img src="https://static.apiseven.com/2020/05/1588756618-Snipaste_2020-05-06_17-16-13.png" alt="Apache APISIX 技术亮点"></p><p>对于网关的技术要求,一是要性能好,能够支撑大流量的接入,二是要稳定,不能出问题。</p><p>选型的原则就是基于或者借鉴开源项目重构一个更加稳定的版本,能够保证接入更大的流量,刚开始的流量还少,做这样的大动作是完全可以接受的。评估完利弊后和领导沟通了一下想法,得到领导的肯定后就决定搞起,这时脑海想的第一个就是 Kong 了,大名鼎鼎的开源网关。于是就去官网浏览了一番,周边文章也看了些,第一印象就是这个项目很不错,能够满足用户的大多数需求,性能还稳定,就是它了。兴高采烈地 clone 了代码开始阅读起来,一天两天若干天过去了,还是一头雾水的样子,想想也是,Kong 能提供这么多的功能,其代码的复杂度可想而�
 ��。</p><p>这时几个问题出现在我的脑海里,我一个人多久能啃下来 Kong 呢?然后还要构建一个适合自己的项目,又需要多久呢 [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 3c70411..e2ab912 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
@@ -18,15 +18,15 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="Envoy and Apache APISIX: Another way to implement the Envoy filter | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:ca [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 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 anchor__h3 anchorWithHideOnScrollNavbar_3R7-" 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 cust [...]
 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 anchor__h4 anchorWithHideOnScrollNavbar_3R7-" 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 [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 93f1c59..f6db1d8 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
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="初探 Kubernetes Service APIs | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:im [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 ffc4284..96ef165 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
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="Apache APISIX 贡献者专访 | 普华永道华南数据安全与隐私保护团队高级安全顾问王鹏诚 | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><m [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 c9666c1..dbd1395 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
@@ -18,14 +18,14 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="Run Ingress APISIX on Amazon EKS | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" pro [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 </span></span><span 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><span 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">{</s [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 83028a7..72392f4 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
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="Stable Product Delivery with Cypress | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="t [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 2b406fd..3d753b6 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
@@ -18,15 +18,15 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="Install Apache APISIX from Helm Charts | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helme [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">NAME                    CHART VERSION   APP VERSION     DESCRIPTION</span></span><span 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 </sp [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">NAME: apisix-gw</span></span><span 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 plai [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 a0ceb34..c4cb878 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
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="Get Front-End Test Coverage with Cypress | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-h [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 f69b5c6..e788e08 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
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="Traffic Split in Apache APISIX Ingress Controller | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"> [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/05/24/Tencent-Games/index.html b/blog/2021/05/24/Tencent-Games/index.html
index 7f2f87f..3b70cef 100644
--- a/blog/2021/05/24/Tencent-Games/index.html
+++ b/blog/2021/05/24/Tencent-Games/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">支持 10 亿日流量的基础设施:当 Apahce APISIX 遇上腾讯 | Apache APISIX® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="支持 10 亿日流量的基础设施:当 Apahce APISIX 遇上腾讯 | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="t [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -30,7 +30,7 @@ OTeam 的运作参考下图:</p><p><img src="https://static.apiseven.com/20210
 与此同时,OTeam 也将开发的一些通用的特性贡献到了社区,为社区带来了不少 Contributor。目前 OTeam 团队中,有两位成员同时也是 ApacheAPISIX 社区的 PMC,OTeam 为社区贡献了超过 50 个PR。同时,我们相信 OTeam 今后还会与 Apache APISIX 社区开展更多的合作。</p><h2><a aria-hidden="true" tabindex="-1" class="anchor anchor__h2 anchorWithHideOnScrollNavbar_3R7-" id="腾讯内部特性介绍"></a>腾讯内部特性介绍<a class="hash-link" href="#腾讯内部特性介绍" title="Direct link to heading">#</a></h2><p>OTeam 的主要职责是维护 Apache APISIX 的一些针对腾讯内部的特性,那么这些特性都是哪些,又解决了什么样的痛点呢?</p><h3><a aria-hidden="true" tabindex="-1" class="anc [...]
 我们希望这些例子能起到抛砖引玉的作用,鼓励大家去发掘更多 Apache APISIX 的使用场景,更好的把 Apache APISIX 这个好用的工具用起来。比如在腾讯云团队,就有同学利用网关实现了一些腾讯云平台强制要求的 API 规范,将这逻辑下沉到了网关。</li></ul><h2><a aria-hidden="true" tabindex="-1" class="anchor anchor__h2 anchorWithHideOnScrollNavbar_3R7-" id="最后的话"></a>最后的话<a class="hash-link" href="#最后的话" title="Direct link to heading">#</a></h2><p>转眼在腾讯内帮助各个团队维护 Apache APISIX 也一年多了,在这个过程中,OTeam 既帮助业务团队解决了他们的痛点,也不断完善了 Apache APISIX 在腾讯内部的特性,同时也间接推动了社区的发展,实现了共赢。
 如果读者所在公司如果还没有落地网关的话,可以了解下 Apahce APISIX。已经落地了网关的读者,也希望本文能够给你们带来一点在网关落地上的灵感和帮助。</p><blockquote><p>欢迎感兴趣的同学访问 bilibili <a href="https://www.bilibili.com/video/BV1yK4y1G7CP/" target="_blank" rel="noopener noreferrer">Apache APISIX 在腾讯游戏的应用</a>,观看视频。</p></blockquote></div><footer class="row margin-vert--lg"></footer></article><div></div><div class="margin-vert--xl"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Blog post page navigation"><div class="pagination-nav__item"><a class=" [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 90ed5cb..4c75ad1 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"	
@@ -18,14 +18,14 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="Apache APISIX 2.6.0-Release 正式发布 | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" pro [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 目前 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 anchor__h2 anchorWithHideOnScrollNavbar_3R7-" id="下载"></a>下载<a class="hash-link" href="#下载" title="Direct link to heading">#</a></h2><p>下载 Apache APISI [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 fd55169..910a0d3 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"	
@@ -18,15 +18,15 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="基于 Apache APISIX 实现的服务网格项目正式开源 | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" propert [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 <code>https://github.com/api7/apisix-mesh-agent/releases/tag/0.6</code></p><h2><a aria-hidden="true" tabindex="-1" class="anchor anchor__h2 anchorWithHideOnScrollNavbar_3R7-" 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><footer class="row margin-vert--lg"></footer></article><div></div><div class="margin-vert--xl"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Blog post page navigation"><div class="pagination-nav__item"><a class="pagination-nav__link" href="/blog/2021/06/03/experience-share-from-Apache-APISIX-committer"><div class="pagination-nav__sublabel">Newer Post</div><div class="pagination-nav__label">« 来自 Apac [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/06/03/experience-share-from-Apache-APISIX-committer/index.html b/blog/2021/06/03/experience-share-from-Apache-APISIX-committer/index.html
index 28634b6..9ce25e2 100644
--- a/blog/2021/06/03/experience-share-from-Apache-APISIX-committer/index.html
+++ b/blog/2021/06/03/experience-share-from-Apache-APISIX-committer/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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 committer 的经验分享 —— 编程之夏专访 | Apache APISIX® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="来自 Apache APISIX committer 的经验分享 —— 编程之夏专访 | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-rea [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/06/06/apisix-two-years/index.html b/blog/2021/06/06/apisix-two-years/index.html
index fe06d4b..2a860e42 100644
--- a/blog/2021/06/06/apisix-two-years/index.html
+++ b/blog/2021/06/06/apisix-two-years/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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 周年! | Apache APISIX® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="Apache APISIX 开源 2 周年! | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:image" con [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 cb11516..25a4a67 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
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="Apache APISIX not affected by NGINX CVE-2021-23017 | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/06/10/Apache-APISIX-and-Envoy-performance-comparison/index.html b/blog/2021/06/10/Apache-APISIX-and-Envoy-performance-comparison/index.html
index 78a0086..00539ce 100644
--- a/blog/2021/06/10/Apache-APISIX-and-Envoy-performance-comparison/index.html
+++ b/blog/2021/06/10/Apache-APISIX-and-Envoy-performance-comparison/index.html
@@ -18,15 +18,15 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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 和 Envoy 性能大比拼 | Apache APISIX® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="Apache APISIX 和 Envoy 性能大比拼 | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og: [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">  access_log off;</span></span><span class="token-line" style="color:#393A34"><span class="token plain">  location = /hello {</span></span><span class="token-line" style="color:#393A34"><span class="token plain">    echo_duplicate 400 &quot;1234567890&quot;;</span></span><span class="token-line" style="color:#393A34"><span class="token plain">  }</span></span><span class="token-line" style="color:#393A [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">    filter_chains:</span></span><span class="token-line" style="color:#393A34"><span class="token plain">    - filters:</span></span><span class="token-line" style="color:#393A34"><span class="token plain">      - name: envoy.http_connection_manager</span></span><span class="token-line" style="color:#393A34"><span class="token plain">        config:</span></span><span class="token-line" style="color:#3 [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 85047aa..4d5d9c7 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
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="Chaos Mesh 助力 Apache APISIX 提升稳定性 | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" p [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 dbbd7d9..cea52ad 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
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="Apache APISIX Dashboard 访问控制绕过漏洞公告(CVE-2021-33190) | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 b7b20bf..61a7669 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
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="Apache APISIX Ingress Controller 首个 GA 版本 v1.0 正式发布! | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_i [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 0ec0724..7503739 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
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="使用 Java 编写 Apache APISIX 插件 | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og: [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -38,7 +38,7 @@
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">        // token verification results</span></span><span class="token-line" style="color:#393A34"><span class="token plain">        if (!flag) {</span></span><span class="token-line" style="color:#393A34"><span class="token plain">            String rejected_code = (String) conf.get(&quot;rejected_code&quot;);</span></span><span class="token-line" style="color:#393A34"><span class="token plain">        [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">        return chain.filter(request, response);</span></span><span class="token-line" style="color:#393A34"><span class="token plain">    }</span></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">    private Boolean validate(String token, String validate_url) {</span></span><span class="token-line" style="color:#393A34"><span class="token plain">        //TODO: improve the validation process</span></span><span class="token-line" style="color:#393A34"><span class="token plain">        return true;</span></span><span class="token-line" style="color:#393A34"><span class="token plain">    }</span>< [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 6b64b08..fa8e027 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
@@ -18,14 +18,14 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="Rancher × Apache APISIX: 极速部署更好用的开源网关和 Ingress Controller | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summa [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 在终端下测试是否代理成功:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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= [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/06/28/why-we-need-Apache-APISIX/index.html b/blog/2021/06/28/why-we-need-Apache-APISIX/index.html
index 25f473d..a00ec1f 100644
--- a/blog/2021/06/28/why-we-need-Apache-APISIX/index.html
+++ b/blog/2021/06/28/why-we-need-Apache-APISIX/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">有了 NGINX 和 Kong,为什么还需要 Apache APISIX | Apache APISIX® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="有了 NGINX 和 Kong,为什么还需要 Apache APISIX | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="t [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 2ae457a..6fcc6b9 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
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="Release Apache APISIX 2.7.0 | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og: [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 e7c8c8f..8a779c3 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
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="Apache APISIX 2.7.0-Release 正式发布 | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" pro [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 d61e681..2c2b9de 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
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="差之毫厘:etcd 3 完美支持 HTTP 访问? | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:imag [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 b74b71b..f148a77 100644
--- a/blog/2021/07/06/celebrate-200-contributors/index.html
+++ b/blog/2021/07/06/celebrate-200-contributors/index.html
@@ -18,15 +18,15 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="Apache APISIX has over 200 contributors in GitHub main repo! | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content= [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 Welcome to join the Apache APISIX community, welcome to use Apache APISIX!</p><h2><a aria-hidden="true" tabindex="-1" class="anchor anchor__h2 anchorWithHideOnScrollNavbar_3R7-" 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://githu [...]
 community activity</p><h2><a aria-hidden="true" tabindex="-1" class="anchor anchor__h2 anchorWithHideOnScrollNavbar_3R7-" 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 Ap [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 a28d347..d0206e7 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
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="基于 Apache APISIX,新浪微博 API 网关的定制化开发之路 | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="t [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 a5d2e24..e6d3cfd 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
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="深度剖析 Apache APISIX Mesh Agent | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property= [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -28,7 +28,7 @@
 </span></span><span 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></span><span 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><s [...]
 </span></span><span 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></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">[</ [...]
 </span></span><span 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></span><span 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></s [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/07/21/Apache-APISIX-Kubernetes/index.html b/blog/2021/07/21/Apache-APISIX-Kubernetes/index.html
index 403b2f0..756c0f7 100644
--- a/blog/2021/07/21/Apache-APISIX-Kubernetes/index.html
+++ b/blog/2021/07/21/Apache-APISIX-Kubernetes/index.html
@@ -18,14 +18,14 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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 x Kubernetes:恰到好处|直播预告 | Apache APISIX® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="Apache APISIX x Kubernetes:恰到好处|直播预告 | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="t [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 从业 7 年,张晋涛对 Docker 和 Kubernetes 等容器化技术有大量实践和深入源码的研究,是业内多个知名大会讲师,PyCon China 核心组织者之一。同时著有 《Kubernetes 上手实践》和 《Docker 核心知识必知必会》等专栏。运营有公众号:MoeLove。</p><p><img src="https://static.apiseven.com/202108/1630382172445-cf20986b-c939-497e-86a4-92da7064ae97.PNG" alt="讲师介绍-张晋涛"></p><h2><a aria-hidden="true" tabindex="-1" class="anchor anchor__h2 anchorWithHideOnScrollNavbar_3R7-" id="关于-apache-apisix"></a>关于 Apache APISIX<a class="hash-link" href="#关于-apache-apisix" title="Direct link to heading">#< [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/07/25/apachecon-asia/index.html b/blog/2021/07/25/apachecon-asia/index.html
index 8be820e..0890274 100644
--- a/blog/2021/07/25/apachecon-asia/index.html
+++ b/blog/2021/07/25/apachecon-asia/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">ApacheCon Asia 2021:Apache APISIX 技术议题一览 | Apache APISIX® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="ApacheCon Asia 2021:Apache APISIX 技术议题一览 | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-h [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/07/27/limit-rep-plug/index.html b/blog/2021/07/27/limit-rep-plug/index.html
index e759355..95a2cb7 100644
--- a/blog/2021/07/27/limit-rep-plug/index.html
+++ b/blog/2021/07/27/limit-rep-plug/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="插件编排在 Apache APISIX 中的应用与实践 | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og: [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 d139da3..3e1f4b7 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
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="插件编排在 Apache APISIX 中的应用与实践 | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og: [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -30,7 +30,7 @@
 </span></span><span 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><span 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><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
 </span></span><span 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></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token string" style="color:#e3116c">&qu [...]
 </span></span><span 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></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token string" style="color:#e3116c">&quot;ro [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/07/28/release-apache-apisix-2.8-en/index.html b/blog/2021/07/28/release-apache-apisix-2.8-en/index.html
index 164d844..d5fb835 100644
--- a/blog/2021/07/28/release-apache-apisix-2.8-en/index.html
+++ b/blog/2021/07/28/release-apache-apisix-2.8-en/index.html
@@ -18,14 +18,14 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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.8.0 | Apache APISIX® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="Release Apache APISIX 2.8.0 | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og: [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 👇👇👇</p><h2><a aria-hidden="true" tabindex="-1" class="anchor anchor__h2 anchorWithHideOnScrollNavbar_3R7-" id="release-notes"></a>Release Notes<a class="hash-link" href="#release-notes" title="Direct link to heading">#</a></h2><h3><a aria-hidden="true" tabindex="-1" class="anchor anchor__h3 anchorWithHideOnScrollNavbar_3R7-" id="new-feature-independent-keepalive-connection-pool"></a>New feature: Independent Keepalive connection pool<a class="hash-link" href="#new-feature-independent-keep [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/07/28/release-apache-apisix-2.8/index.html b/blog/2021/07/28/release-apache-apisix-2.8/index.html
index 2534140..d885e6f 100644
--- a/blog/2021/07/28/release-apache-apisix-2.8/index.html
+++ b/blog/2021/07/28/release-apache-apisix-2.8/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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.8 正式发布,带来更多新功能! | Apache APISIX® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="Apache APISIX 2.8 正式发布,带来更多新功能! | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" prope [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/08/05/Kong-to-APISIX/index.html b/blog/2021/08/05/Kong-to-APISIX/index.html
index e1bb35d..1717188 100644
--- a/blog/2021/08/05/Kong-to-APISIX/index.html
+++ b/blog/2021/08/05/Kong-to-APISIX/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Kong-To-APISIX 迁移工具 | Apache APISIX® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="Kong-To-APISIX 迁移工具 | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:image" content=" [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -32,7 +32,7 @@
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">./tools/setup.sh</span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">Copy</button></div></div><ol start="2"><li><p>根据 Kong 的 Getting Started Guide,为 Kong 添加配置并进行测试:</p><p>a. 通过 Service 和 Route 暴露服务,进行路由转发</p><p>b. 设置 Rate Limiting 和 Proxy Caching 插件做限流缓存</p><p>c. 设置 Key Authentication 插件做认证</p><p>d. 通过 Upstream 和 Target 设置负载均衡</p></li></ [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">go run ./cmd/kong-to-apisix/main.go</span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">Copy</button></div></div><ol start="5"><li>在 APISIX 一侧测试迁移过后的路由、负载均衡、插件等是否正常运行</li></ol><p>a. 测试 key auth 插件</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><pre tabindex="0" class="prism-code language-shell codeBlock_ [...]
 欢迎任何对这个项目感兴趣的人一同来为这个项目作贡献!有任何问题都可以在仓库的 Issues 区讨论。</p></div><footer class="row margin-vert--lg"></footer></article><div></div><div class="margin-vert--xl"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Blog post page navigation"><div class="pagination-nav__item"><a class="pagination-nav__link" href="/blog/2021/08/06/using-apache-apisix-to-improve-the-observability-of-nginx"><div class="pagination-nav__sublabel">Newer Post</div><div class="pagination-nav__label">« 如何利用 Apache AP [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/08/06/using-apache-apisix-to-improve-the-observability-of-nginx/index.html b/blog/2021/08/06/using-apache-apisix-to-improve-the-observability-of-nginx/index.html
index f74e0e0..5c85938 100644
--- a/blog/2021/08/06/using-apache-apisix-to-improve-the-observability-of-nginx/index.html
+++ b/blog/2021/08/06/using-apache-apisix-to-improve-the-observability-of-nginx/index.html
@@ -18,15 +18,15 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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 APISX 提升 Nginx 的可观测性 | Apache APISIX® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="如何利用 Apache APISX 提升 Nginx 的可观测性 | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" pro [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 在 Nginx 之外安装采集模块,那么在采集指标上就会有限制,只能拿到 Nginx 暴露出来的信息,没有暴露的内部信息是拿不到的。</p><p>另外,由于 Nginx Amplify SaaS 是一个 SaaS 服务,需要通过公网将采集到的数据传到服务端,这会带来一些安全隐患,同时把一些企业用户阻挡在外面。或许 Nginx Amplify 的目标群体是 Nginx plus 这样的企业用户,不是开源用户。</p><p>另外,Nginx Amplify SaaS 社区也不活跃,已经停摆 2 年。</p><h3><a aria-hidden="true" tabindex="-1" class="anchor anchor__h3 anchorWithHideOnScrollNavbar_3R7-" id="nginx-的缺陷"></a>Nginx 的缺陷<a class="hash-link" href="#nginx-的缺陷" title="Direct link to heading">#</a></h3><p>Nginx 在 Events 收集上自身有缺陷,这里列举 [...]
 在使用 Prometheus 时,如果配置了 URI 级别的 metrics 指标的统计,会导致整个 metrics 急剧膨胀。因为 URI 级别的服务可能有几十个,每个 metrics 后面可能有许多 labels,这会降低网关性能,增加 metrics 获取难度。<strong>使用 ALS 方案,通过流的方式将数据发送给 SkyWalking,把计算的事情交给 SkyWalking,后续也方便查询</strong>,不会出现每隔几秒钟拉取一次非常庞大的数据的情况。</p><h3><a aria-hidden="true" tabindex="-1" class="anchor anchor__h3 anchorWithHideOnScrollNavbar_3R7-" id="将-events-整合到-skywalking"></a>将 Events 整合到 SkyWalking<a class="hash-link" href="#将-events-整合到-skywalking" title="Direct link to heading">#</a></h3>< [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/08/09/Apache-APISIX-in-China-Mobile-Cloud/index.html b/blog/2021/08/09/Apache-APISIX-in-China-Mobile-Cloud/index.html
index d3147e4..306a139 100644
--- a/blog/2021/08/09/Apache-APISIX-in-China-Mobile-Cloud/index.html
+++ b/blog/2021/08/09/Apache-APISIX-in-China-Mobile-Cloud/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="Apache APISIX 在移动云的应用 | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:image" conte [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/08/09/Apache-APISIX-in-Quliankeji/index.html b/blog/2021/08/09/Apache-APISIX-in-Quliankeji/index.html
index be028f0..e44b371 100644
--- a/blog/2021/08/09/Apache-APISIX-in-Quliankeji/index.html
+++ b/blog/2021/08/09/Apache-APISIX-in-Quliankeji/index.html
@@ -18,14 +18,14 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">舍弃 Kong 和 Nginx,Apache APISIX 在趣链科技 BaaS 平台的落地实践 | Apache APISIX® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="舍弃 Kong 和 Nginx,Apache APISIX 在趣链科技 BaaS 平台的落地实践 | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><m [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 ng)</p><h2><a aria-hidden="true" tabindex="-1" class="anchor anchor__h2 anchorWithHideOnScrollNavbar_3R7-" id="为什么选择-apache-apisix"></a>为什么选择 Apache APISIX<a class="hash-link" href="#为什么选择-apache-apisix" title="Direct link to heading">#</a></h2><p>在 Apache APISIX 之前,趣链科技 BaaS 平台已经在使用 Kong 了,但是后来 Kong 被放弃了。</p><p><strong>为什么放弃 Kong?</strong></p><p>Kong 使用 PostgreSQL 来存储它的信息,这显然不是一个好方式。</p><p><img src="https://static.apiseven.com/202108/1630648907559-71716f82-6740-468c-afe0-49daa426d93a.pn [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/08/10/apisix-nginx/index.html b/blog/2021/08/10/apisix-nginx/index.html
index 48bf231..b2ccd97 100644
--- a/blog/2021/08/10/apisix-nginx/index.html
+++ b/blog/2021/08/10/apisix-nginx/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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 架构分析:如何动态管理 Nginx 集群? | Apache APISIX® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="Apache APISIX 架构分析:如何动态管理 Nginx 集群? | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="tru [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -41,7 +41,7 @@
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">    local seg_res, seg_id = uri_segs[4], uri_segs[5]</span></span><span class="token-line" style="color:#393A34"><span class="token plain">    local seg_sub_path = core.table.concat(uri_segs, &quot;/&quot;, 6)</span></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">    local resource = resources[seg_res]</span></span><span class="token-line" style="color:#393A34"><span class="token plain">    local code, data = resource[method](seg_id, req_body, seg_sub_path,</span></span><span class="token-line" style="color:#393A34"><span class="token plain">                                        uri_args)</span></span><span class="token-line" style="color:#393A34"><span class [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">-- /apisix/core/etcd.lua</span></span><span class="token-line" style="color:#393A34"><span class="token plain">local function set(key, value, ttl)</span></span><span class="token-line" style="color:#393A34"><span class="token plain">    local res, err = etcd_cli:set(prefix .. key, value, {prev_kv = true, lease = data.body.ID})</span></span><span class="token-line" style="color:#393A34"><span class="tok [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/08/11/interview-TuZhengsong/index.html b/blog/2021/08/11/interview-TuZhengsong/index.html
index 5678b55..33db492 100644
--- a/blog/2021/08/11/interview-TuZhengsong/index.html
+++ b/blog/2021/08/11/interview-TuZhengsong/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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 社区发出了第一个 PR | Apache APISIX® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="从新手村出来,我在 Apache APISIX 社区发出了第一个 PR | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="tru [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/08/12/Chaos-Mesh-Helps-Apache-APISIX-Improve-System-Stability/index.html b/blog/2021/08/12/Chaos-Mesh-Helps-Apache-APISIX-Improve-System-Stability/index.html
index ecdc96d..abfcd6c 100644
--- a/blog/2021/08/12/Chaos-Mesh-Helps-Apache-APISIX-Improve-System-Stability/index.html
+++ b/blog/2021/08/12/Chaos-Mesh-Helps-Apache-APISIX-Improve-System-Stability/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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 Helps Apache APISIX Improve System Stability | Apache APISIX® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="Chaos Mesh Helps Apache APISIX Improve System Stability | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_l [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/08/14/contributors-the-golden-metric-of-openSource-projects-en/index.html b/blog/2021/08/14/contributors-the-golden-metric-of-openSource-projects-en/index.html
index 2b26ff1..5a656da 100644
--- a/blog/2021/08/14/contributors-the-golden-metric-of-openSource-projects-en/index.html
+++ b/blog/2021/08/14/contributors-the-golden-metric-of-openSource-projects-en/index.html
@@ -18,15 +18,15 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Contributors — The Golden Metric of OpenSource Projects | Apache APISIX® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="Contributors — The Golden Metric of OpenSource Projects | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_l [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 <a href="https://github.com/api7/contributor-graph" target="_blank" rel="noopener noreferrer">https://github.com/api7/contributor-graph</a></p></blockquote><p>According to GitHub’s statistics in 2020, over 60 million new repositories were added, and more than 56 million developers worked on OpenSource projects. By 2025, the number of developers working on OpenSource projects on GitHub is expected to exceed 100 million.</p><p>Behind these fast-growing numbers, open source maintainers did  [...]
 As maintainers and developers of open source projects, we also need such golden metrics to guide us. Therefore, we propose two dimensions, “Contributor Growth” and “Active Contributors”, and open source the statistics and analysis process: <a href="https://github.com/api7/contributor-graph" target="_blank" rel="noopener noreferrer">https://github.com/api7/contributor-graph</a>, you can also search directly through <a href="https://www.apiseven.com/zh/contributor-graph" target="_blank" re [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/08/14/contributors-the-golden-metric-of-openSource-projects/index.html b/blog/2021/08/14/contributors-the-golden-metric-of-openSource-projects/index.html
index 3645956..e9ebff2 100644
--- a/blog/2021/08/14/contributors-the-golden-metric-of-openSource-projects/index.html
+++ b/blog/2021/08/14/contributors-the-golden-metric-of-openSource-projects/index.html
@@ -18,14 +18,14 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="贡献者,是衡量开源项目的金指标 | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:image" content="https:// [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 <a href="https://github.com/api7/contributor-graph" target="_blank" rel="noopener noreferrer">https://github.com/api7/contributor-graph</a></p></blockquote><p>根据 GitHub 2020 年的统计显示,这一年新增了 6000 万个代码仓库,超过 5600 万的开发者参与到开源项目中。预计到 2025 年,在 GitHub 参与开源项目的开发者人数将会超过 1 亿。</p><p>在这些快速增长的数字背后,隐藏的是开源项目为了赢得开发者而做出的各种宣传:硬核技术文章、社交活动、新媒体、周边礼物等,可以说是乱花渐欲迷人眼。那么对于开发者来说,如何能够在百花齐放的项目中,找出最适合自己公司的那一个呢?</p><p>这就会涉及到开源项目的各种指标:</p><ul><li><p>Star 数:这是最直接的指标,它代表的是这个项目吸引了多少开发者的关注,可以体现这个项目的 marketing 水平。如果这个项目有商业公司资金的 [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/08/16/Using-the-Apache-APISIX-OpenID-Connect-Plugin-for-Centralized-Authentication/index.html b/blog/2021/08/16/Using-the-Apache-APISIX-OpenID-Connect-Plugin-for-Centralized-Authentication/index.html
index 735a5ec..c8552ae 100644
--- a/blog/2021/08/16/Using-the-Apache-APISIX-OpenID-Connect-Plugin-for-Centralized-Authentication/index.html
+++ b/blog/2021/08/16/Using-the-Apache-APISIX-OpenID-Connect-Plugin-for-Centralized-Authentication/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Using the Apache APISIX OpenID Connect Plugin for Okta Centralized Authentication | Apache APISIX® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="Using the Apache APISIX OpenID Connect Plugin for Okta Centralized Authentication | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react- [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -29,7 +29,7 @@
 <img alt="Set the redirect URL for login and logout" src="/assets/images/2021-08-16-6-f282419b7f52ab87487580f15b7789f3.png"></li><li>After finishing the settings, click &quot;Save&quot; to save the changes.
 <img alt="save the changes" src="/assets/images/2021-08-16-7-b7ceb94a0cbdac698adcdd78dd290bbe.png"></li><li>Visit the General page of the application to obtain the following configuration, which is required to configure Apache APISIX OpenID Connect.</li></ol><ul><li>Client ID: OAuth client ID, the application ID, which corresponds to client_id and {YOUR_CLIENT_ID} below.</li><li>Client secret: OAuth client secret, the application key, which corresponds to client_secret and {YOUR_CLIENT_S [...]
 <img alt="visit Okta login page" src="/assets/images/2021-08-16-9-9752a521c7717adfb0fe94f20bb28c8d.png"></p></li><li><p>Enter the username and password for the user&#x27;s Okta account and click &quot;Sign In&quot; to log in to your Okta account.</p></li><li><p>After successful login, you can access the get page in &quot;httpbin.org&quot;. The &quot;httpbin.org/get&quot; page will return the requested data with X-Access-Token,X-Id-Token, and X-Userinfo as follows.</p><div class="codeBloc [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/08/17/interview-airwallex/index.html b/blog/2021/08/17/interview-airwallex/index.html
index 5a502dd..1cf1fd2 100644
--- a/blog/2021/08/17/interview-airwallex/index.html
+++ b/blog/2021/08/17/interview-airwallex/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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 在 Airwallex 的应用 | 专访 Airwallex 技术平台负责人李杨 | Apache APISIX® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="Apache APISIX 在 Airwallex 的应用 | 专访 Airwallex 技术平台负责人李杨 | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_lar [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/08/18/Auth-with-Casbin-in-Apache-APISIX/index.html b/blog/2021/08/18/Auth-with-Casbin-in-Apache-APISIX/index.html
index a5b035a..d6e3049 100644
--- a/blog/2021/08/18/Auth-with-Casbin-in-Apache-APISIX/index.html
+++ b/blog/2021/08/18/Auth-with-Casbin-in-Apache-APISIX/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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 中使用 Casbin 进行授权 | Apache APISIX® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="在 Apache APISIX 中使用 Casbin 进行授权 | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" prope [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -38,7 +38,7 @@ authz-casbin 插件可以把路由匹配和请求授权这两个功能很好地
 </span></span><span class="token-line" style="color:#393A34"><span class="token string" style="color:#e3116c">            [matchers]</span></span><span class="token-line" style="color:#393A34"><span class="token string" style="color:#e3116c">            m = (g(r.sub, p.sub) || keyMatch(r.sub, p.sub)) &amp;&amp; keyMatch(r.obj, p.obj) &amp;&amp; keyMatch(r.act, p.act)&quot;,</span></span><span class="token-line" style="color:#393A34"><span class="token string" style="display:inline-block; [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token string" style="color:#e3116c">            &quot;policy&quot;: &quot;p, *, /, GET</span></span><span class="token-line" style="color:#393A34"><span class="token string" style="color:#e3116c">            p, admin, *, *</span></span><span class="token-line" style="color:#393A34"><span class="token string" style="color:#e3116c">            g, alice, admin&quot;,</span></span><span class="token-line" style="color: [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token string" style="color:#e3116c">            &quot;username&quot;: &quot;user&quot;</span></span><span class="token-line" style="color:#393A34"><span class="token string" style="color:#e3116c">        }</span></span><span class="token-line" style="color:#393A34"><span class="token string" style="color:#e3116c">    },</span></span><span class="token-line" style="color:#393A34"><span class="token string" style="co [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/08/19/go-makes-Apache-APISIX-better/index.html b/blog/2021/08/19/go-makes-Apache-APISIX-better/index.html
index 2c00e14..f874a9b 100644
--- a/blog/2021/08/19/go-makes-Apache-APISIX-better/index.html
+++ b/blog/2021/08/19/go-makes-Apache-APISIX-better/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Go 让 Apache APISIX 如虎添翼 | Apache APISIX® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="Go 让 Apache APISIX 如虎添翼 | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:image" c [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -28,7 +28,7 @@
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">  w</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">Header</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><span class="token function" style="color:#d73a49">Add</span><span class="token pun [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">hello</span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">Copy</button></div></div><p>可以看到接口返回 hello 而且没有访问到任何上游。</p><h3><a aria-hidden="true" tabindex="-1" class="anchor anchor__h3 anchorWithHideOnScrollNavbar_3R7-" id="设置-apache-apisix-(运行)"></a>设置 Apache APISIX (运行)<a class="hash-link" href="#设置-apache-apisix-(运行)" title="Direct link  [...]
 点击访问 <a href="https://github.com/apache/apisix-go-plugin-runner" target="_blank" rel="noopener noreferrer">apisix-go-plugin-runner</a>.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor anchor__h2 anchorWithHideOnScrollNavbar_3R7-" id="相关阅读"></a>相关阅读<a class="hash-link" href="#相关阅读" title="Direct link to heading">#</a></h2><p><a href="https://apisix.apache.org/blog/2021/06/21/use-Java-to-write-Apache-APISIX-plugins" target="_blank" rel="noopener noreferrer">如何用 Java 编写 Apache APIS [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/08/24/shanghai-meetup-recap/index.html b/blog/2021/08/24/shanghai-meetup-recap/index.html
index 043066e..56e748c 100644
--- a/blog/2021/08/24/shanghai-meetup-recap/index.html
+++ b/blog/2021/08/24/shanghai-meetup-recap/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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 Meetup 上海站全程回顾 | Apache APISIX® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="Apache APISIX Meetup 上海站全程回顾 | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="o [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/08/25/Auth-with-Casbin-in-Apache-APISIX/index.html b/blog/2021/08/25/Auth-with-Casbin-in-Apache-APISIX/index.html
index 9a98a35..933956a 100644
--- a/blog/2021/08/25/Auth-with-Casbin-in-Apache-APISIX/index.html
+++ b/blog/2021/08/25/Auth-with-Casbin-in-Apache-APISIX/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Authorization with Casbin in Apache APISIX | Apache APISIX® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="Authorization with Casbin in Apache APISIX | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-rea [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -34,7 +34,7 @@
 </span></span><span class="token-line" style="color:#393A34"><span class="token string" style="color:#e3116c">            [matchers]</span></span><span class="token-line" style="color:#393A34"><span class="token string" style="color:#e3116c">            m = (g(r.sub, p.sub) || keyMatch(r.sub, p.sub)) &amp;&amp; keyMatch(r.obj, p.obj) &amp;&amp; keyMatch(r.act, p.act)&quot;,</span></span><span class="token-line" style="color:#393A34"><span class="token string" style="display:inline-block; [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token string" style="color:#e3116c">            &quot;policy&quot;: &quot;p, *, /, GET</span></span><span class="token-line" style="color:#393A34"><span class="token string" style="color:#e3116c">            p, admin, *, *</span></span><span class="token-line" style="color:#393A34"><span class="token string" style="color:#e3116c">            g, alice, admin&quot;,</span></span><span class="token-line" style="color: [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token string" style="color:#e3116c">            &quot;username&quot;: &quot;user&quot;</span></span><span class="token-line" style="color:#393A34"><span class="token string" style="color:#e3116c">        }</span></span><span class="token-line" style="color:#393A34"><span class="token string" style="color:#e3116c">    },</span></span><span class="token-line" style="color:#393A34"><span class="token string" style="co [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/08/25/Using-the-Apache-APISIX-OpenID-Connect-Plugin-for-Centralized-Authentication/index.html b/blog/2021/08/25/Using-the-Apache-APISIX-OpenID-Connect-Plugin-for-Centralized-Authentication/index.html
index 6e7cc80..4bda31f 100644
--- a/blog/2021/08/25/Using-the-Apache-APISIX-OpenID-Connect-Plugin-for-Centralized-Authentication/index.html
+++ b/blog/2021/08/25/Using-the-Apache-APISIX-OpenID-Connect-Plugin-for-Centralized-Authentication/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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 的 OpenID Connect 插件进行集中身份认证 | Apache APISIX® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="使用 Apache APISIX 的 OpenID Connect 插件进行集中身份认证 | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -28,7 +28,7 @@
 其中 “Sign-in redirect URIs” 为登录成功允许跳转的链接地址,“Sign-out redirect URIs” 表示登出之后跳转的链接地址。在这个示例中,我们将登录成功跳转和登出之后跳转的链接地址都设置为 <code>http://127.0.0.1:9080/</code>。
 <img alt="设置登录和登出的跳转 URL" src="/assets/images/2021-08-16-6-f282419b7f52ab87487580f15b7789f3.png"></li><li>完成设置以后,单击“Save”保存修改。
 <img alt="保存修改" src="/assets/images/2021-08-16-7-b7ceb94a0cbdac698adcdd78dd290bbe.png"></li><li>访问应用的 General 页面,获取以下配置,配置 Apache APISIX OpenID Connect 时需要提供这些信息:</li></ol><ul><li>Client ID:OAuth client ID,即应用的 ID,与下文的 <code>client_id</code>  和 <code>{YOUR_CLIENT_ID}</code> 对应。</li><li>Client secret:OAuth client secret,即应用密钥,与下文的 <code>client_secret</code>  和 <code>{YOUR_CLIENT_SECRET}</code> 对应。</li><li>Okta domain:应用使用的域名,与下文的 discovery  中的 <code>{YOUR_ISSUER}</code> 对应。</li></ul><p><i [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/08/25/Why-Apache-APISIX-chose-Nginx-and-Lua/index.html b/blog/2021/08/25/Why-Apache-APISIX-chose-Nginx-and-Lua/index.html
index 3fab0911..270305a 100644
--- a/blog/2021/08/25/Why-Apache-APISIX-chose-Nginx-and-Lua/index.html
+++ b/blog/2021/08/25/Why-Apache-APISIX-chose-Nginx-and-Lua/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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 选择 Nginx + Lua 这个技术栈? | Apache APISIX® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="为什么 Apache APISIX 选择 Nginx + Lua 这个技术栈? | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-hel [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -27,7 +27,7 @@
 由于现行的主流 API 网关,如果不是基于 OpenResty 实现,就是使用 Go 编写,所以时不时会看到各种 Go 和 Lua 谁的性能更好的比较。  </p><p><strong>就我个人观点看,脱离场景比较语言的性能,是没有意义的。</strong></p><p>首先明确一点,Apache APISIX 是基于 Nginx + Lua 的技术栈,只是外层代码用的是 Lua。所以如果要论证哪种网关性能更好,正确的比较对象是 C + LuaJIT 跟 Go 的比较。网关的性能的大头,在于代理 HTTP 请求和响应,这一块的工作主要是 Nginx 在做。</p><p><strong>所以倘若要比试比试性能,不妨比较 Nginx 和 Go 标准库的 HTTP 实现。</strong></p><p>众所周知,Nginx 是一个 bytes matter 的高性能服务器实现,对内存使用非常抠门。举两个例子:</p><ol><li>Nginx 里面的 request header 在大多数时候都只是指向原始的 HTTP 请求数据的一个指针,只有在修改的时候才会创�
 �副本。</l [...]
 而 Go 的库,当然是大部分用 Go 实现的。虽然有 CGO 这种东西,但是受限于 Go 的协程调度和工具链的限制,它在 Go 的生态圈里面只能处于从属的地位。</p><p>关于 LuaJIT 和 Go 对于 C 的亲和力的比较,推荐 Hacker News 上的这篇文章:《Comparing the C FFI overhead in various programming languages》(链接 <a href="https://news.ycombinator.com/item?id=17161168" target="_blank" rel="noopener noreferrer">https://news.ycombinator.com/item?id=17161168</a> )</p><p>于是我们比较 Lua 的某些功能,其实还是会回到 C 和 Go 的比较中。</p><p><strong>其二,LuaJIT 的 JIT 优化无出其右。</strong></p><p>讨论动态语言的性能,可以把动态语言分成两类,带 JIT 和不带 JIT 的。JIT [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">for i = 1, n do</span></span><span class="token-line" style="color:#393A34"><span class="token plain">    io.write(text[i], &quot; &quot;, map[text[i]], &quot;\n&quot;)</span></span><span class="token-line" style="color:#393A34"><span class="token plain">end</span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">Copy</button></div></div><di [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/08/27/release-apache-apisix-2.9/index.html b/blog/2021/08/27/release-apache-apisix-2.9/index.html
index f66d325..fb16aa7 100644
--- a/blog/2021/08/27/release-apache-apisix-2.9/index.html
+++ b/blog/2021/08/27/release-apache-apisix-2.9/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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.9 正式发布,带来更多新功能! | Apache APISIX® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="Apache APISIX 2.9 正式发布,带来更多新功能! | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" prope [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/08/30/Ingress-Meeting/index.html b/blog/2021/08/30/Ingress-Meeting/index.html
index 429c068..89f626f 100644
--- a/blog/2021/08/30/Ingress-Meeting/index.html
+++ b/blog/2021/08/30/Ingress-Meeting/index.html
@@ -18,15 +18,15 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">社区会议| 周三下午 2 点,Apache APISIX Ingress 社区会议与你不见不散 | Apache APISIX® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="社区会议| 周三下午 2 点,Apache APISIX Ingress 社区会议与你不见不散 | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><met [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 以 Apache Way 的方式参与社区,订阅方式见官网<a href="https://apisix.apache.org/docs/general/subscribe-guide" target="_blank" rel="noopener noreferrer">订阅指南</a>。邮件列表是 Apache 社区最常用的沟通方式,社区会积极回复邮件列表中的问题。</p></li><li><p>在 Apache APISIX Github discussion 发起讨论
 欢迎大家在 GitHub discussion 讨论,<a href="https://github.com/apache/apisix/discussions" target="_blank" rel="noopener noreferrer">discussion</a> 区非常活跃哦。我们也会不定期的将一些常见问题在 discussion 中进行汇总和答复,方便大家查找。</p></li></ol></div><footer class="row margin-vert--lg"></footer></article><div></div><div class="margin-vert--xl"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Blog post page navigation"><div class="pagination-nav__item"><a class="pagination-nav__link" href="/blog/2021/08/31/Apache APISIX  [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git "a/blog/2021/08/31/Apache APISIX \303\227 KubeSphere-a-better-gateway-and-K8S-Ingress-Controller/index.html" "b/blog/2021/08/31/Apache APISIX \303\227 KubeSphere-a-better-gateway-and-K8S-Ingress-Controller/index.html"
index 38be064..5511c63 100644
--- "a/blog/2021/08/31/Apache APISIX \303\227 KubeSphere-a-better-gateway-and-K8S-Ingress-Controller/index.html"	
+++ "b/blog/2021/08/31/Apache APISIX \303\227 KubeSphere-a-better-gateway-and-K8S-Ingress-Controller/index.html"	
@@ -18,14 +18,14 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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 × KubeSphere:提供更好用的网关及 K8S Ingress Controller | Apache APISIX® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="Apache APISIX × KubeSphere:提供更好用的网关及 K8S Ingress Controller | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="s [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">NAME              TYPE        CLUSTER-IP   EXTERNAL-IP   PORT</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">S</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain">   AGE</span></span><span class="token-line" style="color:#393A34"><span class="token plain">service/httpbin   ClusterIP   </span><span class="token numb [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/09/06/python-helps-you-quickly-with-Apache-APISIX-development/index.html b/blog/2021/09/06/python-helps-you-quickly-with-Apache-APISIX-development/index.html
index e0d88f9..e9567ca 100644
--- a/blog/2021/09/06/python-helps-you-quickly-with-Apache-APISIX-development/index.html
+++ b/blog/2021/09/06/python-helps-you-quickly-with-Apache-APISIX-development/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Python 助你快速上手 Apache APISIX 插件开发 | Apache APISIX® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="Python 助你快速上手 Apache APISIX 插件开发 | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" pro [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -49,7 +49,7 @@
 </span></span><span 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></span><span class="token-line" style="color:#393A34"><span class="token plain">        response</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">status_code </span><span class="token operator" style="color:#393A34">=</span><spa [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token comment" style="color:#999988;font-style:italic"># 通过调用 `self.stop()` 中断请求流程,此时将立即响应请求给客户端</span><span class="token plain"></span></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token comment" style="color:#999988;font-style:italic"># 如果未显示调用 `self.stop()` 或 显示调用 `self.rewrite()`将继续将请求</span><span class="token [...]
 的开发,让我们一起共建 <code>Apache APISIX</code> 与各语言的桥梁。</p><ul><li><a href="https://github.com/apache/apisix-python-plugin-runner" target="_blank" rel="noopener noreferrer">apisix-python-plugin-runner</a></li><li><a href="https://github.com/apache/apisix-go-plugin-runner" target="_blank" rel="noopener noreferrer">apisix-go-plugin-runner</a></li><li><a href="https://github.com/apache/apisix-java-plugin-runner" target="_blank" rel="noopener noreferrer">apisix-java-plugin-runner</a></li></ul><h2><a [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/09/07/how-to-use-apisix-auth/index.html b/blog/2021/09/07/how-to-use-apisix-auth/index.html
index a3c99bb..191c278 100644
--- a/blog/2021/09/07/how-to-use-apisix-auth/index.html
+++ b/blog/2021/09/07/how-to-use-apisix-auth/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="使用 Apache APISIX 进行集中式身份认证及进阶玩法 | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" prope [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/09/07/iQIYI-usercase/index.html b/blog/2021/09/07/iQIYI-usercase/index.html
index be32723..ca3bf34 100644
--- a/blog/2021/09/07/iQIYI-usercase/index.html
+++ b/blog/2021/09/07/iQIYI-usercase/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="基于 Apache APISIX,爱奇艺 API 网关的更新与落地实践 | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="tru [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/09/09/how-to-contribute-to-an-OpenSource-without-coding/index.html b/blog/2021/09/09/how-to-contribute-to-an-OpenSource-without-coding/index.html
index 0f7aa3e..0d04768 100644
--- a/blog/2021/09/09/how-to-contribute-to-an-OpenSource-without-coding/index.html
+++ b/blog/2021/09/09/how-to-contribute-to-an-OpenSource-without-coding/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="不写代码,如何为开源项目做贡献? | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:image" content="https: [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
-<div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/09/14/youzan/index.html b/blog/2021/09/14/youzan/index.html
new file mode 100644
index 0000000..4a793b7
--- /dev/null
+++ b/blog/2021/09/14/youzan/index.html
@@ -0,0 +1,30 @@
+<!doctype html>
+<html lang="en" dir="ltr">
+<head>
+<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+<meta name="generator" content="Docusaurus v2.0.0-beta.6">
+<link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
+<link rel="preconnect" href="https://www.google-analytics.com">
+<link rel="preconnect" href="https://www.googletagmanager.com">
+<script async src="https://www.googletagmanager.com/gtag/js?id=G-WQLBQL6GY3"></script>
+<script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-WQLBQL6GY3",{})</script>
+<link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX® --  Cloud-Native API Gateway" href="/opensearch.xml">
+<link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
+<link rel="alternate" type="application/rss+xml" href="/releases/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/releases/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
+<link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
+<link 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 助力有赞云原生 PaaS 平台,实现全面微服务治理 | Apache APISIX® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="Apache APISIX 助力有赞云原生 PaaS 平台,实现全面微服务治理 | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-hel [...]
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
+</head>
+<body>
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
+<div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/blog/archive/index.html b/blog/archive/index.html
index a1acea0..6e932c9 100644
--- a/blog/archive/index.html
+++ b/blog/archive/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Archive | Apache APISIX® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="Archive | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:image" content="https://apisix.apache.or [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
-<div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/atom.xml b/blog/atom.xml
index 6c355c4..e790dff 100644
--- a/blog/atom.xml
+++ b/blog/atom.xml
@@ -2,12 +2,22 @@
 <feed xmlns="http://www.w3.org/2005/Atom">
     <id>https://apisix.apache.org/blog</id>
     <title>Apache APISIX® --  Cloud-Native API Gateway Blog</title>
-    <updated>2021-09-09T00:00:00.000Z</updated>
+    <updated>2021-09-14T00:00:00.000Z</updated>
     <generator>https://github.com/jpmonette/feed</generator>
     <link rel="alternate" href="https://apisix.apache.org/blog"/>
     <subtitle>Apache APISIX® --  Cloud-Native API Gateway Blog</subtitle>
     <icon>https://apisix.apache.org/img/favicon.png</icon>
     <entry>
+        <title type="html"><![CDATA[Apache APISIX 助力有赞云原生 PaaS 平台,实现全面微服务治理]]></title>
+        <id>Apache APISIX 助力有赞云原生 PaaS 平台,实现全面微服务治理</id>
+        <link href="https://apisix.apache.org/blog/2021/09/14/youzan"/>
+        <updated>2021-09-14T00:00:00.000Z</updated>
+        <summary type="html"><![CDATA[本文主要介绍了有赞云原生 PaaS 平台使用 Apache APISIX 的企业案例,以及如何使用 Apache APISIX 作为产品流量网关的具体实例。]]></summary>
+        <author>
+            <name>戴诺璟</name>
+        </author>
+    </entry>
+    <entry>
         <title type="html"><![CDATA[不写代码,如何为开源项目做贡献?]]></title>
         <id>不写代码,如何为开源项目做贡献?</id>
         <link href="https://apisix.apache.org/blog/2021/09/09/how-to-contribute-to-an-OpenSource-without-coding"/>
diff --git a/blog/index.html b/blog/index.html
index 3981724..def5f8a 100644
--- a/blog/index.html
+++ b/blog/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="Blog | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:image" content="https://apisix.apache.org//img [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
-<div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/rss.xml b/blog/rss.xml
index a05d6fc..30106ab 100644
--- a/blog/rss.xml
+++ b/blog/rss.xml
@@ -4,10 +4,17 @@
         <title>Apache APISIX® --  Cloud-Native API Gateway Blog</title>
         <link>https://apisix.apache.org/blog</link>
         <description>Apache APISIX® --  Cloud-Native API Gateway Blog</description>
-        <lastBuildDate>Thu, 09 Sep 2021 00:00:00 GMT</lastBuildDate>
+        <lastBuildDate>Tue, 14 Sep 2021 00:00:00 GMT</lastBuildDate>
         <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
         <generator>https://github.com/jpmonette/feed</generator>
         <item>
+            <title><![CDATA[Apache APISIX 助力有赞云原生 PaaS 平台,实现全面微服务治理]]></title>
+            <link>https://apisix.apache.org/blog/2021/09/14/youzan</link>
+            <guid>Apache APISIX 助力有赞云原生 PaaS 平台,实现全面微服务治理</guid>
+            <pubDate>Tue, 14 Sep 2021 00:00:00 GMT</pubDate>
+            <description><![CDATA[本文主要介绍了有赞云原生 PaaS 平台使用 Apache APISIX 的企业案例,以及如何使用 Apache APISIX 作为产品流量网关的具体实例。]]></description>
+        </item>
+        <item>
             <title><![CDATA[不写代码,如何为开源项目做贡献?]]></title>
             <link>https://apisix.apache.org/blog/2021/09/09/how-to-contribute-to-an-OpenSource-without-coding</link>
             <guid>不写代码,如何为开源项目做贡献?</guid>
diff --git a/blog/tags/community/index.html b/blog/tags/community/index.html
index eefd21d..bccd783 100644
--- a/blog/tags/community/index.html
+++ b/blog/tags/community/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Posts tagged &quot;community&quot; | Apache APISIX® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="Posts tagged &quot;community&quot; | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/tags/index.html b/blog/tags/index.html
index 6809130..ef2ab04 100644
--- a/blog/tags/index.html
+++ b/blog/tags/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Tags | Apache APISIX® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="Tags | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:image" content="https://apisix.apache.org//img [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
-<div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/tags/news/index.html b/blog/tags/news/index.html
index a0dbde5..62a4993 100644
--- a/blog/tags/news/index.html
+++ b/blog/tags/news/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Posts tagged &quot;news&quot; | Apache APISIX® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="Posts tagged &quot;news&quot; | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property= [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/tags/practical-case/index.html b/blog/tags/practical-case/index.html
index d7c8333..ac278de 100644
--- a/blog/tags/practical-case/index.html
+++ b/blog/tags/practical-case/index.html
@@ -17,14 +17,14 @@
 <link rel="alternate" type="application/atom+xml" href="/releases/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
-<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Posts tagged &quot;practical case&quot; | Apache APISIX® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="Posts tagged &quot;practical case&quot; | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-hel [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Posts tagged &quot;Practical Case&quot; | Apache APISIX® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="Posts tagged &quot;Practical Case&quot; | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-hel [...]
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
-<div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/tags/security/index.html b/blog/tags/security/index.html
index ab3ca45..ec4c917 100644
--- a/blog/tags/security/index.html
+++ b/blog/tags/security/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Posts tagged &quot;security&quot; | Apache APISIX® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="Posts tagged &quot;security&quot; | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" p [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/tags/technology/index.html b/blog/tags/technology/index.html
index 2424fde..2898ece 100644
--- a/blog/tags/technology/index.html
+++ b/blog/tags/technology/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Posts tagged &quot;technology&quot; | Apache APISIX® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="Posts tagged &quot;technology&quot; | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="tru [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 d7cd1b3..7bc83a6 100644
--- a/docs/apisix/2.4/FAQ/index.html
+++ b/docs/apisix/2.4/FAQ/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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 [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -34,7 +34,7 @@ Run the <code>luarocks config rocks_servers</code> command(this command is suppo
 </span></span><span class="token-line" style="color:#393A34"><span class="token string" style="color:#e3116c">These open issues may also help:</span></span><span 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 clas [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">Error: A newer Command Line Tools release is available.</span></span><span 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></span><span class="token-line" style="color:#393A34"><span class="token plain">https://developer.apple.com/d [...]
 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 anchor__h2 anchorWithHideOnScrollNavbar_3R7-" 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 [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 2665836..99a9885 100644
--- a/docs/apisix/2.4/IGNORE_DOC/index.html
+++ b/docs/apisix/2.4/IGNORE_DOC/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/ [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 d16172e..84725c5 100644
--- a/docs/apisix/2.4/admin-api/index.html
+++ b/docs/apisix/2.4/admin-api/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/f [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -82,7 +82,7 @@
 </span></span><span 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></span><span 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><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token strin [...]
 </span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">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 anchor__h2 anchorWithHideOnScrollNavbar_3R7-" id="ssl"></a>SSL<a class="hash-link" href="#ssl" title="Direct link to heading">#</a></h2><p><em>API</e [...]
 </span></span><span 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.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 960f3507..ae13f4f 100644
--- a/docs/apisix/2.4/architecture-design/index.html
+++ b/docs/apisix/2.4/architecture-design/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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. [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -44,7 +44,7 @@ will be merged into it. The same plugin in the plugin config will override one i
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">hello world</span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">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 anchor__h3 anchorWithHideOnScrollNavbar_3R7-" 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 re [...]
 </span></span><span 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></span><span class="token-line" style="color:#393A34"><span class="token plain">  </ [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 bc3f912..54f0bfa 100644
--- a/docs/apisix/2.4/aws/index.html
+++ b/docs/apisix/2.4/aws/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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:/ [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -46,7 +46,7 @@
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">Non-authoritative answer:</span></span><span class="token-line" style="color:#393A34"><span class="token plain">Name:   apiSi-PhpSe-FOL2MM4TW7G8-09029e095ab36fcc.elb.us-west-2.amazonaws.com</span></span><span 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></span><sp [...]
 <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 anchor__h2 anchorWithHideOnScrollNavbar_3R7-" 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/apis [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 3e4d5cc..ae99b14 100644
--- a/docs/apisix/2.4/batch-processor/index.html
+++ b/docs/apisix/2.4/batch-processor/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/ [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -34,7 +34,7 @@ argument and the batch configuration as the second parameter.</p><div class="cod
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">if batch_processor then</span></span><span class="token-line" style="color:#393A34"><span class="token plain">    batch_processor:push({hello=&#x27;world&#x27;})</span></span><span class="token-line" style="color:#393A34"><span class="token plain">end</span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">Copy</button></div></div><p>Note: P [...]
 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><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/batch-processor.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_2_ui" aria-hidden="true"><g><path d="m [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 b235165..c8dc60a 100644
--- a/docs/apisix/2.4/benchmark/index.html
+++ b/docs/apisix/2.4/benchmark/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/f [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -29,7 +29,7 @@ and the response size was 1KB.</p><h4><a aria-hidden="true" tabindex="-1" class=
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/flamegraph-1.jpg" alt="flamegraph-1"></p><p>And if you want to run the benchmark test in your machine, you should run another Nginx to listen 80 port.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span class=" [...]
 and the response size was 1KB.</p><h4><a aria-hidden="true" tabindex="-1" class="anchor anchor__h4 anchorWithHideOnScrollNavbar_3R7-" 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 anchor__h4 ancho [...]
 <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"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span class=" [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 60ed684..3ead3cf 100644
--- a/docs/apisix/2.4/control-api/index.html
+++ b/docs/apisix/2.4/control-api/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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 [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -29,7 +29,7 @@ If a plugin adds such a control API, please refer to each plugin&#x27;s document
 of fields like <code>consumer_schema</code> or <code>type</code>, it is dependended by the plugin&#x27;s
 definition.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor anchor__h3 anchorWithHideOnScrollNavbar_3R7-" 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"><pre tabindex="0"  [...]
 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.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 68a0e0c..0736bf9 100644
--- a/docs/apisix/2.4/customize-nginx-configuration/index.html
+++ b/docs/apisix/2.4/customize-nginx-configuration/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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://apis [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -27,7 +27,7 @@
 </span></span><span 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></span><span class="token-line" style="color:#393A34"><span class="token plain">                req_status_show;</span></span><span class="token-line" style="color:#393A34"><span class="token plain">                allow 127.0.0.1;</span></span><span class="token-line" [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">        chunked_transfer_encoding on;</span></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
 </span></span><span 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></span><span class="token-line" style="color:#393A34"><span class="token scalar  [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 1130f0d..55a6919 100644
--- a/docs/apisix/2.4/debug-function/index.html
+++ b/docs/apisix/2.4/debug-function/index.html
@@ -18,14 +18,14 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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// [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 </span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">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"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 aa0d83f..5ce9f14 100644
--- a/docs/apisix/2.4/discovery/consul_kv/index.html
+++ b/docs/apisix/2.4/discovery/consul_kv/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/f [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -27,7 +27,7 @@
 <img src="https://user-images.githubusercontent.com/548385/107141841-6ced3e00-6966-11eb-8aa4-bc790a4ad113.png"></p><h2><a aria-hidden="true" tabindex="-1" class="anchor anchor__h2 anchorWithHideOnScrollNavbar_3R7-" 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 anchor__h3 anchorWithHideOnScrollNavbar_ [...]
 </span></span><span 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></span><span 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></span><span c [...]
 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 anchor__h3 anchorWithHideOnScrollNavbar_3R7-" 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 [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 1cb808f..44c1c66 100644
--- a/docs/apisix/2.4/discovery/index.html
+++ b/docs/apisix/2.4/discovery/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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="htt [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -33,7 +33,7 @@
 </span></span><span 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></span><span 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 [...]
 </span></span><span 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></span><span 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></span><span class="token-line" s [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 630355b..ac8e30d 100644
--- a/docs/apisix/2.4/dns/index.html
+++ b/docs/apisix/2.4/dns/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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 [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -31,7 +31,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><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/dns.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_2_ui" aria-hidden="true"> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 599ffb1..a4a8162 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
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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://a [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -58,7 +58,7 @@
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">--to base64</span></span><span class="token-line" style="color:#393A34"><span class="token plain">ngx.say(ngx.encode_base64(digest))</span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">Copy</button></div></div><h2><a aria-hidden="true" tabindex="-1" class="anchor anchor__h2 anchorWithHideOnScrollNavbar_3R7-" id="shell"></a>Shell<a class= [...]
 </span></span><span 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></span><span 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><span 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></span><span 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 [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 a44b69a..5863da5 100644
--- a/docs/apisix/2.4/getting-started/index.html
+++ b/docs/apisix/2.4/getting-started/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/ [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -43,7 +43,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 anchor__h3 anchorWithHideOnScrollNavbar_3R7-" 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 (T [...]
 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"><pre tabindex="0" class="prism-code language-bash codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 ba4b35d..91ed1bc 100644
--- a/docs/apisix/2.4/grpc-proxy/index.html
+++ b/docs/apisix/2.4/grpc-proxy/index.html
@@ -18,14 +18,14 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/ [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 gRPC client -&gt; APISIX -&gt; gRPC/gRPCS server</p><h2><a aria-hidden="true" tabindex="-1" class="anchor anchor__h2 anchorWithHideOnScrollNavbar_3R7-" 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>< [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 054f270..9c238c2 100644
--- a/docs/apisix/2.4/health-check/index.html
+++ b/docs/apisix/2.4/health-check/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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//im [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -27,7 +27,7 @@
 you can use it for upstream.</p><p>Note that we only start the health check when the upstream is hit by a request.
 There won&#x27;t be any health check if an upstream is configured but isn&#x27;t in used.</p><p>The following is an example of health check:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</spa [...]
 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.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 2e55504..e81ec2c 100644
--- a/docs/apisix/2.4/how-to-build/index.html
+++ b/docs/apisix/2.4/how-to-build/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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. [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -34,7 +34,7 @@ see how to do it.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor ancho
 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"><pre tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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></span><span class="to [...]
 </span></span><span 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></span><span class="token-line" style="color:#393A34"><span class="token plain">HTTP/1.1 </span><span class="token number" style="co [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 0e71420..af3486a 100644
--- a/docs/apisix/2.4/https/index.html
+++ b/docs/apisix/2.4/https/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/favic [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -39,7 +39,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><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/https.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_2_ui" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6 [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 4bc6586..503c3af 100644
--- a/docs/apisix/2.4/install-dependencies/index.html
+++ b/docs/apisix/2.4/install-dependencies/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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 [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -43,7 +43,7 @@
 </span></span><span 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></span><span 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></span></code></pre [...]
 </span></span><span 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></span><span 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></span><span class="token-line" style="color:#393A34"><span class="token plain" sty [...]
 </span></span><span 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></span><span 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:# [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 8c660e8..d298fca 100644
--- a/docs/apisix/2.4/mtls/index.html
+++ b/docs/apisix/2.4/mtls/index.html
@@ -18,14 +18,14 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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.a [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 </span></span><span 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></span><span 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 [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 b580a9a..c21797f 100644
--- a/docs/apisix/2.4/plugin-develop/index.html
+++ b/docs/apisix/2.4/plugin-develop/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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// [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -57,7 +57,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 anchor__h3 anchorWithHideOnScrollNavbar_3R7-" 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> [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">function _M.control_api()</span></span><span class="token-line" style="color:#393A34"><span class="token plain">    return {</span></span><span class="token-line" style="color:#393A34"><span class="token plain">        {</span></span><span class="token-line" style="color:#393A34"><span class="token plain">            methods = {&quot;GET&quot;},</span></span><span class="token-line" style="color:#393A3 [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 0fbd6b3..0c85a7d 100644
--- a/docs/apisix/2.4/plugin-interceptors/index.html
+++ b/docs/apisix/2.4/plugin-interceptors/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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. [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -29,7 +29,7 @@ to run rules to protect them.</p><p>Here is an example to limit the access of <c
 to clients in <code>10.0.0.0/24</code>:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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/pl [...]
 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><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/plugin-interceptors.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this- [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 73da12d..4797682 100644
--- a/docs/apisix/2.4/plugins/api-breaker/index.html
+++ b/docs/apisix/2.4/plugins/api-breaker/index.html
@@ -18,14 +18,14 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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 [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 </span></span><span 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></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">Copy</button></div></div><h2><a aria-hidden="true" tabindex="-1" class="anchor anchor__h2 a [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 c0a32fb..d013e8d 100644
--- a/docs/apisix/2.4/plugins/authz-keycloak/index.html
+++ b/docs/apisix/2.4/plugins/authz-keycloak/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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// [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -50,7 +50,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"><pre tabindex="0" class="prism-code language-bash codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span class="token-line" style="color:#393A34"><span class="token plain">docker run -e </span><span class=" [...]
 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><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row 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" class="theme-edit-this-pag [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 0e4dd5f..9d95268 100644
--- a/docs/apisix/2.4/plugins/basic-auth/index.html
+++ b/docs/apisix/2.4/plugins/basic-auth/index.html
@@ -18,15 +18,15 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/ [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 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"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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 [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 142ed1c..9e6c08b 100644
--- a/docs/apisix/2.4/plugins/batch-requests/index.html
+++ b/docs/apisix/2.4/plugins/batch-requests/index.html
@@ -18,15 +18,15 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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// [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 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 anchor__h2 anchorWithHideOnScrollNavbar_3R7-" 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 anchor__h2 anchorWithHideOnScrollNavbar_3R7-" id="how-to-configure"></a>How To Configure<a cla [...]
 You can configure it via <code>apisix/admin/plugin_metadata/batch-requests</code>:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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/ [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 be1d8f1..2d49fa1 100644
--- a/docs/apisix/2.4/plugins/consumer-restriction/index.html
+++ b/docs/apisix/2.4/plugins/consumer-restriction/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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 [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -29,7 +29,7 @@
 </span></span><span 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></span><span class="token-line" styl [...]
 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"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 87a76b8..11dce49 100644
--- a/docs/apisix/2.4/plugins/cors/index.html
+++ b/docs/apisix/2.4/plugins/cors/index.html
@@ -18,14 +18,14 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/favico [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 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 anchor__h2 anchorWithHideOnScrollNavbar_3R7-" 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 con [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 c810cbb..69b4440 100644
--- a/docs/apisix/2.4/plugins/dubbo-proxy/index.html
+++ b/docs/apisix/2.4/plugins/dubbo-proxy/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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 [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -29,7 +29,7 @@ They should provide the same result.</p><h2><a aria-hidden="true" tabindex="-1"
 you can delete the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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 [...]
 you need to comment out in the <code>config.yaml</code>:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><pre tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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="toke [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 612b30a..4d51c32 100644
--- a/docs/apisix/2.4/plugins/echo/index.html
+++ b/docs/apisix/2.4/plugins/echo/index.html
@@ -18,14 +18,14 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/favico [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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:// [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 a4ba251..82316e5 100644
--- a/docs/apisix/2.4/plugins/error-log-logger/index.html
+++ b/docs/apisix/2.4/plugins/error-log-logger/index.html
@@ -18,15 +18,15 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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 [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 <a href="/docs/apisix/2.4/batch-processor">Batch-Processor</a></p><h2><a aria-hidden="true" tabindex="-1" class="anchor anchor__h2 anchorWithHideOnScrollNavbar_3R7-" 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 [...]
 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"><pre tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">plugins</span><span class="token punc [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 f00af79..cb754a6 100644
--- a/docs/apisix/2.4/plugins/fault-injection/index.html
+++ b/docs/apisix/2.4/plugins/fault-injection/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/ [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -44,7 +44,7 @@
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">Fault Injection</span><span class="token operator" style="color:#393A34">!</span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">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="codeBlockC [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">Fault Injection</span><span class="token operator" style="color:#393A34">!</span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">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="codeBlockConte [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">hello</span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">Copy</button></div></div><h2><a aria-hidden="true" tabindex="-1" class="anchor anchor__h2 anchorWithHideOnScrollNavbar_3R7-" 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  [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 a7ac16d..c2cc1cc 100644
--- a/docs/apisix/2.4/plugins/grpc-transcode/index.html
+++ b/docs/apisix/2.4/plugins/grpc-transcode/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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// [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -27,7 +27,7 @@
 </span></span><span 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></span></code></pre><button type="button" aria-label="Copy code to clipbo [...]
 </span></span><span 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><spa [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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/ [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 315feef..74c61b7 100644
--- a/docs/apisix/2.4/plugins/hmac-auth/index.html
+++ b/docs/apisix/2.4/plugins/hmac-auth/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/f [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -34,7 +34,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"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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 [...]
 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.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 4c7faeb..349dceb 100644
--- a/docs/apisix/2.4/plugins/http-logger/index.html
+++ b/docs/apisix/2.4/plugins/http-logger/index.html
@@ -18,14 +18,14 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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 [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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:// [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 0ff608a..83812fc 100644
--- a/docs/apisix/2.4/plugins/index.html
+++ b/docs/apisix/2.4/plugins/index.html
@@ -18,14 +18,14 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/fav [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 the its execution will be skipped.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor anchor__h3 anchorWithHideOnScrollNavbar_3R7-" 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><footer class="theme-doc-footer docusaurus-mt-lg"><div cla [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 e18769a..0b49ed9 100644
--- a/docs/apisix/2.4/plugins/ip-restriction/index.html
+++ b/docs/apisix/2.4/plugins/ip-restriction/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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// [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -31,7 +31,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"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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 [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 ae421b0..c18ccd5 100644
--- a/docs/apisix/2.4/plugins/jwt-auth/index.html
+++ b/docs/apisix/2.4/plugins/jwt-auth/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/fa [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -32,7 +32,7 @@ You may need to use <a href="/docs/apisix/2.4/plugin-interceptors">interceptors<
 </span></span><span 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></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token operator" style="color:#393A34" [...]
 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"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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 [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 31cd0bb..b8e7769 100644
--- a/docs/apisix/2.4/plugins/kafka-logger/index.html
+++ b/docs/apisix/2.4/plugins/kafka-logger/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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//im [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -31,7 +31,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 anchor__h3 anchorWithHideOnScrollNavbar_3R7-" 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"><pre tabindex="0" class="prism-code language-json codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span class="token-line" style="color:#393A34"><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span></span><span class="token-line" style="color:#393A34"><span cla [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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:// [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 2dd7d40..a59bbc8 100644
--- a/docs/apisix/2.4/plugins/key-auth/index.html
+++ b/docs/apisix/2.4/plugins/key-auth/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/fa [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -29,7 +29,7 @@
 </span></span><span 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></span><span class="token-line" style="color:#393A34"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:#36acaa [...]
 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"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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 [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 96412ec..69b4940 100644
--- a/docs/apisix/2.4/plugins/limit-conn/index.html
+++ b/docs/apisix/2.4/plugins/limit-conn/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/ [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -29,7 +29,7 @@
 </span></span><span 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></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token opera [...]
 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"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 e346ed5..21e0ee4 100644
--- a/docs/apisix/2.4/plugins/limit-count/index.html
+++ b/docs/apisix/2.4/plugins/limit-count/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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 [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -30,7 +30,7 @@ which mean the total number of requests and the remaining number of requests tha
 </span></span><span 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></span><span 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 [...]
 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"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 466dd99..8e2801b 100644
--- a/docs/apisix/2.4/plugins/limit-req/index.html
+++ b/docs/apisix/2.4/plugins/limit-req/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/f [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -27,7 +27,7 @@
 </span></span><span 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></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="t [...]
 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"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 7e014fc..f9c9c7b 100644
--- a/docs/apisix/2.4/plugins/log-rotate/index.html
+++ b/docs/apisix/2.4/plugins/log-rotate/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/ [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -28,7 +28,7 @@ When the number of log files exceeds the remaining number, the old files are aut
 For example, the following example is a sample based on <code>interval: 10</code> and <code>max_kept: 10</code>.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span class="token-line" style="color:#393A34"><span class="token plain">$ ll logs</span></span><span class="token-line" style="color:# [...]
 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"><pre tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">plugins</span><span class="token punc [...]
 </span></span><span 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></span><span 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 cla [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 75dfaaa..0076f06 100644
--- a/docs/apisix/2.4/plugins/mqtt-proxy/index.html
+++ b/docs/apisix/2.4/plugins/mqtt-proxy/index.html
@@ -18,15 +18,15 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/ [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 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 anchor__h2 anchorWithHideOnScrollNavbar_3R7-" id="attributes"></a>Attributes<a class="hash- [...]
 For example, the following configuration represents listening on the 9100 TCP port.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><pre tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">...</span><span class="token [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 ca50a3f..59065d4 100644
--- a/docs/apisix/2.4/plugins/node-status/index.html
+++ b/docs/apisix/2.4/plugins/node-status/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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 [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -31,7 +31,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"><pre tabindex="0" class="prism-code language-bash codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span class="token-line" style="color:#393A34"><span class="token plain">plugins:                          </span><span class="token comment" style="color:#999988;font-style:italic"># plugin list</ [...]
 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"><pre tabindex="0" class="prism-code language-sh codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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;  [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 b8dddc7..98d7d9f 100644
--- a/docs/apisix/2.4/plugins/openid-connect/index.html
+++ b/docs/apisix/2.4/plugins/openid-connect/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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// [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -50,7 +50,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"><pre tabindex="0" class="prism-code language-bash codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</ [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 5a8c142..9713da5 100644
--- a/docs/apisix/2.4/plugins/prometheus/index.html
+++ b/docs/apisix/2.4/plugins/prometheus/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/ [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -28,7 +28,7 @@ You may need to use <a href="/docs/apisix/2.4/plugin-interceptors">interceptors<
 any options yet.</p><p>For example:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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 st [...]
 these metric data.</p><p>For example like this:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><pre tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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  [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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/ [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 c5ded75..34e8d03 100644
--- a/docs/apisix/2.4/plugins/proxy-cache/index.html
+++ b/docs/apisix/2.4/plugins/proxy-cache/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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 [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -29,7 +29,7 @@
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">hello</span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">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:</l [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">hello</span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">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 are [...]
 </span></span><span 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></span><span 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 [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 72c5ddc..c1859a6 100644
--- a/docs/apisix/2.4/plugins/proxy-mirror/index.html
+++ b/docs/apisix/2.4/plugins/proxy-mirror/index.html
@@ -18,15 +18,15 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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//im [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">hello world</span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">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 anchor__h2 anchorWithHideOnScrollNavbar_3R7-" 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 [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 7aae3a9..8124a29 100644
--- a/docs/apisix/2.4/plugins/proxy-rewrite/index.html
+++ b/docs/apisix/2.4/plugins/proxy-rewrite/index.html
@@ -18,15 +18,15 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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//i [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 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"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 ca1c481..bd0e506 100644
--- a/docs/apisix/2.4/plugins/redirect/index.html
+++ b/docs/apisix/2.4/plugins/redirect/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/fa [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -27,7 +27,7 @@
 </span></span><span 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></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">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 a [...]
 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"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 1aa86cd..a32813c 100644
--- a/docs/apisix/2.4/plugins/referer-restriction/index.html
+++ b/docs/apisix/2.4/plugins/referer-restriction/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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. [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -27,7 +27,7 @@
 whitelisting request header Referrers.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor anchor__h2 anchorWithHideOnScrollNavbar_3R7-" 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 wh [...]
 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"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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 [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 95c53c9..f0232db 100644
--- a/docs/apisix/2.4/plugins/request-id/index.html
+++ b/docs/apisix/2.4/plugins/request-id/index.html
@@ -18,15 +18,15 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/ [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 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 anchor__h2 anchorWithHideOnScrollNavbar_3R7-" 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 [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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/ [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 005b85f..14db9c9 100644
--- a/docs/apisix/2.4/plugins/request-validation/index.html
+++ b/docs/apisix/2.4/plugins/request-validation/index.html
@@ -18,15 +18,15 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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.o [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 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 anchor__h2 anchorWithHideOnScrollNavbar_3R7-" id="attributes"></a>Attributes<a class="hash-link" href="#attributes" title="Direct link to heading">#</a></h2><table>< [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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/ [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 0239813..10c6045 100644
--- a/docs/apisix/2.4/plugins/response-rewrite/index.html
+++ b/docs/apisix/2.4/plugins/response-rewrite/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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 [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -28,7 +28,7 @@
 </span></span><span 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"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 637714f..bb3dd60 100644
--- a/docs/apisix/2.4/plugins/server-info/index.html
+++ b/docs/apisix/2.4/plugins/server-info/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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 [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 aa1acc3..a01c142 100644
--- a/docs/apisix/2.4/plugins/serverless/index.html
+++ b/docs/apisix/2.4/plugins/serverless/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/ [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -27,7 +27,7 @@
 which indicates that the specified function is in effect.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor anchor__h2 anchorWithHideOnScrollNavbar_3R7-" 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"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 f8ad5ca..bee0649 100644
--- a/docs/apisix/2.4/plugins/skywalking/index.html
+++ b/docs/apisix/2.4/plugins/skywalking/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/ [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -39,7 +39,7 @@ you need to comment out in the <code>config.yaml</code>:</p><div class="codeBloc
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">import org.springframework.web.bind.annotation.PathVariable;</span></span><span class="token-line" style="color:#393A34"><span class="token plain">import org.springframework.web.bind.annotation.RequestMapping;</span></span><span class="token-line" style="color:#393A34"><span class="token plain">import org.springframework.web.bind.annotation.RestController;</span></span><span class="token-line" style="c [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">/**</span></span><span class="token-line" style="color:#393A34"><span class="token plain"> * @author cyxinda</span></span><span class="token-line" style="color:#393A34"><span class="token plain"> * @create 2020-05-29 14:02</span></span><span class="token-line" style="color:#393A34"><span class="token plain"> * @desc skywalking test controller</span></span><span class="token-line" style="color:#393A34"> [...]
 update the file of agent/config/agent.config</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 182b5a7..68f6fe0 100644
--- a/docs/apisix/2.4/plugins/sls-logger/index.html
+++ b/docs/apisix/2.4/plugins/sls-logger/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/ [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -27,7 +27,7 @@
 <a href="/docs/apisix/2.4/batch-processor">Batch-Processor</a></p><h2><a aria-hidden="true" tabindex="-1" class="anchor anchor__h2 anchorWithHideOnScrollNavbar_3R7-" 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=" [...]
 </span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">Copy</button></div></div><h2><a aria-hidden="true" tabindex="-1" class="anchor anchor__h2 anchorWithHideOnScrollNavbar_3R7-" 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"><pre tabindex="0" class="prism [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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:// [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 03e2a94..a39e496 100644
--- a/docs/apisix/2.4/plugins/syslog/index.html
+++ b/docs/apisix/2.4/plugins/syslog/index.html
@@ -18,14 +18,14 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/favi [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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:// [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 3814c64..c0b341a 100644
--- a/docs/apisix/2.4/plugins/tcp-logger/index.html
+++ b/docs/apisix/2.4/plugins/tcp-logger/index.html
@@ -18,15 +18,15 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/ [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 <a href="/docs/apisix/2.4/batch-processor">Batch-Processor</a></p><h2><a aria-hidden="true" tabindex="-1" class="anchor anchor__h2 anchorWithHideOnScrollNavbar_3R7-" 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 [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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:// [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 8ec7b89..5220619 100644
--- a/docs/apisix/2.4/plugins/traffic-split/index.html
+++ b/docs/apisix/2.4/plugins/traffic-split/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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//i [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -37,7 +37,7 @@
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">world </span><span class="token number" style="color:#36acaa">1981</span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">Copy</button></div></div><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-col [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">hello </span><span class="token number" style="color:#36acaa">1980</span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">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 [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">hello </span><span class="token number" style="color:#36acaa">1980</span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">Copy</button></div></div><h2><a aria-hidden="true" tabindex="-1" class="anchor anchor__h2 anchorWithHideOnScrollNavbar_3R7-" id="disable-plugin"></a>Disable Plugin<a class="hash-link" href="#disable-plugin" title="Direct [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 78971f2..3ac01bd 100644
--- a/docs/apisix/2.4/plugins/udp-logger/index.html
+++ b/docs/apisix/2.4/plugins/udp-logger/index.html
@@ -18,15 +18,15 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/ [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 <a href="/docs/apisix/2.4/batch-processor">Batch-Processor</a></p><h2><a aria-hidden="true" tabindex="-1" class="anchor anchor__h2 anchorWithHideOnScrollNavbar_3R7-" 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 [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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:// [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 b81792c..c6aec38 100644
--- a/docs/apisix/2.4/plugins/uri-blocker/index.html
+++ b/docs/apisix/2.4/plugins/uri-blocker/index.html
@@ -18,14 +18,14 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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 [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 </span></span><span 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></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">Copy</button></div></div><h2><a aria-hidden="true" tabindex="-1" class="anchor anchor__h2 a [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 d11e0e9..2d2527c 100644
--- a/docs/apisix/2.4/plugins/wolf-rbac/index.html
+++ b/docs/apisix/2.4/plugins/wolf-rbac/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/f [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -46,7 +46,7 @@ The rbac feature is provided by <a href="https://github.com/iGeeky/wolf" target=
 </span></span><span 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></span><span 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 stri [...]
 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"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 7babb43..312b3e8 100644
--- a/docs/apisix/2.4/plugins/zipkin/index.html
+++ b/docs/apisix/2.4/plugins/zipkin/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/favi [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -32,7 +32,7 @@ no need to restart the service, it will take effect immediately:</p><div class="
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">    tracer := GetTracer(...)</span></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">    // use middleware to extract parentID from http header that injected by APISIX</span></span><span class="token-line" style="color:#393A34"><span class="token plain">    r.Use(func(c *gin.Context) {</span></span><span class="token-line" style="color:#393A34"><span class="token plain">        span := this.Tracer.Extract(b3.ExtractHTTP(c.Request))</span></span><span class="token-line" style="color:#39 [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">}</span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">Copy</button></div></div></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/plugins/zipkin.md" target="_blank" rel="noreferrer noopener" class="th [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 fed91f1..61c368d 100644
--- a/docs/apisix/2.4/powered-by/index.html
+++ b/docs/apisix/2.4/powered-by/index.html
@@ -18,14 +18,14 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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.ap [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 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.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 696297c..d5edb3a 100644
--- a/docs/apisix/2.4/profile/index.html
+++ b/docs/apisix/2.4/profile/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:image" content="https://apisix.apache.org//img/favicon.png"><meta data-react-helmet="true" name="twitte [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -30,7 +30,7 @@ requirements, we need to change the parameters in the configuration file to the
 development environment. You have to change it back. It&#x27;s very easy to make mistakes.</p><p>The solution to the above problem is to distinguish the current running environment through environment variables, and switch
 between different configuration files through environment variables. The corresponding environment variable in APISIX is: <code>APISIX_PROFILE</code></p><p>When <code>APISIX_PROFILE</code> is not set, the following three configuration files are used by default:</p><ul><li>conf/config.yaml</li><li>conf/apisix.yaml</li><li>conf/debug.yaml</li></ul><p>If the value of <code>APISIX_PROFILE</code> is set to <code>prod</code>, the following three configuration files are used:</p><ul><li>conf/co [...]
 tools such as git can be configured, and version management can be better achieved.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/profile.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_2_ui" aria-hidden="true"><g><path d="m34.5 11.7l [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 7fe9830..eeb503c 100644
--- a/docs/apisix/2.4/router-radixtree/index.html
+++ b/docs/apisix/2.4/router-radixtree/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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 [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -28,7 +28,7 @@
 here is an simple example:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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 </s [...]
 data from the request body. This limitation is configured via:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><pre tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">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><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/router-radixtree.md [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 d6a8d99..287bfa8 100644
--- a/docs/apisix/2.4/stand-alone/index.html
+++ b/docs/apisix/2.4/stand-alone/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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 [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -27,7 +27,7 @@
 the APISIX will check if this file has any changed every second.
 If the file changed and we found <code>#END</code> at the end of the file,
 APISIX will load the rules in this file and update to memory of APISIX.</p><p>Here is a mini example:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><pre tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">routes</span><span class="token punctuation" sty [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 cac5280..819133c 100644
--- a/docs/apisix/2.4/stream-proxy/index.html
+++ b/docs/apisix/2.4/stream-proxy/index.html
@@ -18,14 +18,14 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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//im [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 By default, no any stream proxy is enabled.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><pre tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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"></spa [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.4/tags/index.html b/docs/apisix/2.4/tags/index.html
index 9eb3a23..464c012 100644
--- a/docs/apisix/2.4/tags/index.html
+++ b/docs/apisix/2.4/tags/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Tags | Apache APISIX® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="Tags | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:image" content="https://apisix.apache.org//img [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 829bc44..db9cbd5 100644
--- a/docs/apisix/2.5/FAQ/index.html
+++ b/docs/apisix/2.5/FAQ/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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 [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -36,7 +36,7 @@ For China mainland users, you can use the <code>luarocks.cn</code> as the luaroc
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">Error: A newer Command Line Tools release is available.</span></span><span 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></span><span class="token-line" style="color:#393A34"><span class="token plain">https://developer.apple.com/d [...]
 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 anchor__h2 anchorWithHideOnScrollNavbar_3R7-" 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 [...]
 </span></span><span 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></span><span 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></span><span class="token-line" style="color:#393A34"><s [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 14d9da1..7f3354e 100644
--- a/docs/apisix/2.5/IGNORE_DOC/index.html
+++ b/docs/apisix/2.5/IGNORE_DOC/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/ [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 f74c144..2423d3a 100644
--- a/docs/apisix/2.5/admin-api/index.html
+++ b/docs/apisix/2.5/admin-api/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/f [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -84,7 +84,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"><pre tabindex="0" class="prism-code language-json codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span class="token-line" style="color:#393A34"><span class="tok [...]
 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 anchor__h2 anchorWithHideOnScrollNavbar_3R7-" 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 Met [...]
 </span></span><span 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.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 55afc74..6c2a8fa 100644
--- a/docs/apisix/2.5/architecture-design/apisix/index.html
+++ b/docs/apisix/2.5/architecture-design/apisix/index.html
@@ -18,15 +18,15 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/favi [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 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"><pre tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">apisix</span><span class="token punctuati [...]
 </span></span><span 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></span><span 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.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 83e372b..c40e411 100644
--- a/docs/apisix/2.5/architecture-design/consumer/index.html
+++ b/docs/apisix/2.5/architecture-design/consumer/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/fa [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -31,7 +31,7 @@
 </span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">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"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6 [...]
 </span></span><span 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></span><span 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><spa [...]
 </span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">Copy</button></div></div></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row 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" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBo [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 946d139..7871fab 100644
--- a/docs/apisix/2.5/architecture-design/debug-mode/index.html
+++ b/docs/apisix/2.5/architecture-design/debug-mode/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/ [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -27,7 +27,7 @@
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">hello world</span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">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 anchor__h3 anchorWithHideOnScrollNavbar_3R7-" 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 re [...]
 </span></span><span 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></span><span class="token-line" style="color:#393A34"><span class="token plain">  </ [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 74f25ae..c2c80a8 100644
--- a/docs/apisix/2.5/architecture-design/global-rule/index.html
+++ b/docs/apisix/2.5/architecture-design/global-rule/index.html
@@ -18,14 +18,14 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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 [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 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"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token  [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 6486bb3..c56e8f2 100644
--- a/docs/apisix/2.5/architecture-design/index.html
+++ b/docs/apisix/2.5/architecture-design/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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. [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -44,7 +44,7 @@ will be merged into it. The same plugin in the plugin config will override one i
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">hello world</span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">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 anchor__h3 anchorWithHideOnScrollNavbar_3R7-" 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 re [...]
 </span></span><span 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></span><span class="token-line" style="color:#393A34"><span class="token plain">  </ [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 4803dc7..8a095c4 100644
--- a/docs/apisix/2.5/architecture-design/plugin-config/index.html
+++ b/docs/apisix/2.5/architecture-design/plugin-config/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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//i [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -27,7 +27,7 @@
 bind it with a route directly.</p><p>For instance, you can do something like:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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></span><span 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></span><span 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: [...]
 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"><pre tabindex="0" class="prism-code language-bash codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span class="token-line" style="color:#393A34"><span class="token punctuation" style="col [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 8ad895f..d031b0c 100644
--- a/docs/apisix/2.5/architecture-design/plugin/index.html
+++ b/docs/apisix/2.5/architecture-design/plugin/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/favi [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 4485403..f6647ba 100644
--- a/docs/apisix/2.5/architecture-design/route/index.html
+++ b/docs/apisix/2.5/architecture-design/route/index.html
@@ -18,15 +18,15 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/favic [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 </span></span><span 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></span><span 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 [...]
 </span></span><span 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.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 a26fe62..38bc827 100644
--- a/docs/apisix/2.5/architecture-design/router/index.html
+++ b/docs/apisix/2.5/architecture-design/router/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/favi [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 96c2488..a6b3455 100644
--- a/docs/apisix/2.5/architecture-design/script/index.html
+++ b/docs/apisix/2.5/architecture-design/script/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/favi [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 b97fef7..dcead94 100644
--- a/docs/apisix/2.5/architecture-design/service/index.html
+++ b/docs/apisix/2.5/architecture-design/service/index.html
@@ -18,15 +18,15 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/fav [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 </span></span><span 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></span><span 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><s [...]
 </span></span><span 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></span><span class="token-line" styl [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 15d1113..c76c400 100644
--- a/docs/apisix/2.5/architecture-design/upstream/index.html
+++ b/docs/apisix/2.5/architecture-design/upstream/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/fa [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 2ea6521..a68869b 100644
--- a/docs/apisix/2.5/aws/index.html
+++ b/docs/apisix/2.5/aws/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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:/ [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -46,7 +46,7 @@
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">Non-authoritative answer:</span></span><span class="token-line" style="color:#393A34"><span class="token plain">Name:   apiSi-PhpSe-FOL2MM4TW7G8-09029e095ab36fcc.elb.us-west-2.amazonaws.com</span></span><span 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></span><sp [...]
 <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 anchor__h2 anchorWithHideOnScrollNavbar_3R7-" 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/apis [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 0c9cb7c..c0c3289 100644
--- a/docs/apisix/2.5/batch-processor/index.html
+++ b/docs/apisix/2.5/batch-processor/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/ [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -34,7 +34,7 @@ argument and the batch configuration as the second parameter.</p><div class="cod
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">if batch_processor then</span></span><span class="token-line" style="color:#393A34"><span class="token plain">    batch_processor:push({hello=&#x27;world&#x27;})</span></span><span class="token-line" style="color:#393A34"><span class="token plain">end</span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">Copy</button></div></div><p>Note: P [...]
 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><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/batch-processor.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_2_ui" aria-hidden="true"><g><path d="m [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 d2f9cf3..3689ad4 100644
--- a/docs/apisix/2.5/benchmark/index.html
+++ b/docs/apisix/2.5/benchmark/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/f [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -29,7 +29,7 @@ and the response size was 1KB.</p><h4><a aria-hidden="true" tabindex="-1" class=
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/flamegraph-1.jpg" alt="flamegraph-1"></p><p>And if you want to run the benchmark test in your machine, you should run another Nginx to listen 80 port.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span class=" [...]
 and the response size was 1KB.</p><h4><a aria-hidden="true" tabindex="-1" class="anchor anchor__h4 anchorWithHideOnScrollNavbar_3R7-" 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 anchor__h4 ancho [...]
 <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"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span class=" [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 00f7557..ff234bd 100644
--- a/docs/apisix/2.5/control-api/index.html
+++ b/docs/apisix/2.5/control-api/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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 [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -29,7 +29,7 @@ If a plugin adds such a control API, please refer to each plugin&#x27;s document
 of fields like <code>consumer_schema</code> or <code>type</code>, it is depended on by the plugin&#x27;s
 definition.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor anchor__h3 anchorWithHideOnScrollNavbar_3R7-" 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"><pre tabindex="0"  [...]
 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.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 eb58909..150e71c 100644
--- a/docs/apisix/2.5/customize-nginx-configuration/index.html
+++ b/docs/apisix/2.5/customize-nginx-configuration/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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://apis [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -27,7 +27,7 @@
 </span></span><span 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></span><span class="token-line" style="color:#393A34"><span class="token plain">                req_status_show;</span></span><span class="token-line" style="color:#393A34"><span class="token plain">                allow 127.0.0.1;</span></span><span class="token-line" [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">        chunked_transfer_encoding on;</span></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
 </span></span><span 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></span><span class="token-line" style="color:#393A34"><span class="token scalar  [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 b4ac717..d9e33f0 100644
--- a/docs/apisix/2.5/debug-function/index.html
+++ b/docs/apisix/2.5/debug-function/index.html
@@ -18,14 +18,14 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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// [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 </span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">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"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 e975513..0684357 100644
--- a/docs/apisix/2.5/discovery/consul_kv/index.html
+++ b/docs/apisix/2.5/discovery/consul_kv/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/f [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -27,7 +27,7 @@
 <img src="https://user-images.githubusercontent.com/548385/107141841-6ced3e00-6966-11eb-8aa4-bc790a4ad113.png"></p><h2><a aria-hidden="true" tabindex="-1" class="anchor anchor__h2 anchorWithHideOnScrollNavbar_3R7-" 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 anchor__h3 anchorWithHideOnScrollNavbar_ [...]
 </span></span><span 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></span><span 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></span><span c [...]
 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 anchor__h3 anchorWithHideOnScrollNavbar_3R7-" 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 [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 c8ec1b0..b844959 100644
--- a/docs/apisix/2.5/discovery/dns/index.html
+++ b/docs/apisix/2.5/discovery/dns/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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 [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -33,7 +33,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><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/discovery/dns.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_2_ui" aria-hidden="true"><g><path d="m34.5 11 [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 50f8957..a4b73a4 100644
--- a/docs/apisix/2.5/discovery/index.html
+++ b/docs/apisix/2.5/discovery/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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="htt [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -35,7 +35,7 @@
 </span></span><span 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></span><span 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 [...]
 </span></span><span 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></span><span 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></span><span class="token-line" s [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 0edc808..d977ba1 100644
--- a/docs/apisix/2.5/dns/index.html
+++ b/docs/apisix/2.5/dns/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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 [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -31,7 +31,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><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/dns.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_2_ui" aria-hidden="true"> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 e6b53eb..7551b65 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
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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://a [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -58,7 +58,7 @@
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">--to base64</span></span><span class="token-line" style="color:#393A34"><span class="token plain">ngx.say(ngx.encode_base64(digest))</span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">Copy</button></div></div><h2><a aria-hidden="true" tabindex="-1" class="anchor anchor__h2 anchorWithHideOnScrollNavbar_3R7-" id="shell"></a>Shell<a class= [...]
 </span></span><span 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></span><span 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><span 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></span><span 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 [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 61f1694..f8b84ce 100644
--- a/docs/apisix/2.5/getting-started/index.html
+++ b/docs/apisix/2.5/getting-started/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/ [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -43,7 +43,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 anchor__h3 anchorWithHideOnScrollNavbar_3R7-" 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 (T [...]
 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"><pre tabindex="0" class="prism-code language-bash codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 dae4dbb..93d8fe6 100644
--- a/docs/apisix/2.5/grpc-proxy/index.html
+++ b/docs/apisix/2.5/grpc-proxy/index.html
@@ -18,14 +18,14 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/ [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 gRPC client -&gt; APISIX -&gt; gRPC/gRPCS server</p><h2><a aria-hidden="true" tabindex="-1" class="anchor anchor__h2 anchorWithHideOnScrollNavbar_3R7-" 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>< [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 a1ec73f..ee5d896 100644
--- a/docs/apisix/2.5/health-check/index.html
+++ b/docs/apisix/2.5/health-check/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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//im [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -27,7 +27,7 @@
 you can use it for upstream.</p><p>Note that we only start the health check when the upstream is hit by a request.
 There won&#x27;t be any health check if an upstream is configured but isn&#x27;t in used.</p><p>The following is an example of health check:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</spa [...]
 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.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 4ce5019..06798cf 100644
--- a/docs/apisix/2.5/how-to-build/index.html
+++ b/docs/apisix/2.5/how-to-build/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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. [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -36,7 +36,7 @@ Here is an example:</p><div class="codeBlockContainer_K1bP"><div class="codeBloc
 </span></span><span 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></span><span class="token-line" style="color:#393A34"><span class="token plain">HTTP/1.1 </span><span class="token number" style="co [...]
 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><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row 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" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="2 [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 b0f31bc..f027428 100644
--- a/docs/apisix/2.5/https/index.html
+++ b/docs/apisix/2.5/https/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/favic [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -39,7 +39,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><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/https.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_2_ui" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6 [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 67b8135..294abd2 100644
--- a/docs/apisix/2.5/install-dependencies/index.html
+++ b/docs/apisix/2.5/install-dependencies/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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 [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -43,7 +43,7 @@
 </span></span><span 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></span><span 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></span></code></pre [...]
 </span></span><span 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></span><span class="token-line" style="color:#393A34"><span class="token plain">brew services start etcd</span></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
 </span></span><span 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></span><span 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:# [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 687096d..64d7d4b 100644
--- a/docs/apisix/2.5/mtls/index.html
+++ b/docs/apisix/2.5/mtls/index.html
@@ -18,14 +18,14 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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="ht [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 </span></span><span 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></span><span 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">:</sp [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 25fe2ba..05199ec 100644
--- a/docs/apisix/2.5/plugin-develop/index.html
+++ b/docs/apisix/2.5/plugin-develop/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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// [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -56,7 +56,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 anchor__h3 anchorWithHideOnScrollNavbar_3R7-" 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> [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">function _M.control_api()</span></span><span class="token-line" style="color:#393A34"><span class="token plain">    return {</span></span><span class="token-line" style="color:#393A34"><span class="token plain">        {</span></span><span class="token-line" style="color:#393A34"><span class="token plain">            methods = {&quot;GET&quot;},</span></span><span class="token-line" style="color:#393A3 [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 b46b489..b36c801 100644
--- a/docs/apisix/2.5/plugin-interceptors/index.html
+++ b/docs/apisix/2.5/plugin-interceptors/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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. [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -29,7 +29,7 @@ to run rules to protect them.</p><p>Here is an example to limit the access of <c
 to clients in <code>10.0.0.0/24</code>:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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/pl [...]
 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><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/plugin-interceptors.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this- [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 d215f51..232b556 100644
--- a/docs/apisix/2.5/plugins/api-breaker/index.html
+++ b/docs/apisix/2.5/plugins/api-breaker/index.html
@@ -18,14 +18,14 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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 [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 </span></span><span 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></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">Copy</button></div></div><h2><a aria-hidden="true" tabindex="-1" class="anchor anchor__h2 a [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 558629d..d3109f4 100644
--- a/docs/apisix/2.5/plugins/authz-keycloak/index.html
+++ b/docs/apisix/2.5/plugins/authz-keycloak/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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// [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -50,7 +50,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"><pre tabindex="0" class="prism-code language-bash codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span class="token-line" style="color:#393A34"><span class="token plain">docker run -e </span><span class=" [...]
 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><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row 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" class="theme-edit-this-pag [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 854b14c..d3e460f 100644
--- a/docs/apisix/2.5/plugins/basic-auth/index.html
+++ b/docs/apisix/2.5/plugins/basic-auth/index.html
@@ -18,15 +18,15 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/ [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 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"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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 [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 d58149d..017e71e 100644
--- a/docs/apisix/2.5/plugins/batch-requests/index.html
+++ b/docs/apisix/2.5/plugins/batch-requests/index.html
@@ -18,15 +18,15 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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// [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 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 anchor__h2 anchorWithHideOnScrollNavbar_3R7-" 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 anchor__h2 anchorWithHideOnScrollNavbar_3R7-" id="how-to-configure"></a>How To Configure<a cla [...]
 You can configure it via <code>apisix/admin/plugin_metadata/batch-requests</code>:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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/ [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 ed4b97f..82a210c 100644
--- a/docs/apisix/2.5/plugins/consumer-restriction/index.html
+++ b/docs/apisix/2.5/plugins/consumer-restriction/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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 [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -29,7 +29,7 @@
 </span></span><span 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></span><span class="token-line" styl [...]
 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"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 d2f1e7c..680c6f3 100644
--- a/docs/apisix/2.5/plugins/cors/index.html
+++ b/docs/apisix/2.5/plugins/cors/index.html
@@ -18,14 +18,14 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/favico [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 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 anchor__h2 anchorWithHideOnScrollNavbar_3R7-" 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 con [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 8096d01..d151282 100644
--- a/docs/apisix/2.5/plugins/dubbo-proxy/index.html
+++ b/docs/apisix/2.5/plugins/dubbo-proxy/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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 [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -30,7 +30,7 @@ They should provide the same result.</p><p>The returned data from upstream dubbo
 you can delete the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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 [...]
 you need to comment out in the <code>config.yaml</code>:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><pre tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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="toke [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 4eaa9b8..7a96f29 100644
--- a/docs/apisix/2.5/plugins/echo/index.html
+++ b/docs/apisix/2.5/plugins/echo/index.html
@@ -18,14 +18,14 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/favico [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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:// [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 de90751..f607003 100644
--- a/docs/apisix/2.5/plugins/error-log-logger/index.html
+++ b/docs/apisix/2.5/plugins/error-log-logger/index.html
@@ -18,15 +18,15 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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 [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 <a href="/docs/apisix/2.5/batch-processor">Batch-Processor</a></p><h2><a aria-hidden="true" tabindex="-1" class="anchor anchor__h2 anchorWithHideOnScrollNavbar_3R7-" 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 [...]
 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"><pre tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">plugins</span><span class="token punc [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 72f4390..04d28f5 100644
--- a/docs/apisix/2.5/plugins/fault-injection/index.html
+++ b/docs/apisix/2.5/plugins/fault-injection/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/ [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -44,7 +44,7 @@
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">Fault Injection</span><span class="token operator" style="color:#393A34">!</span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">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="codeBlockC [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">Fault Injection</span><span class="token operator" style="color:#393A34">!</span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">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="codeBlockConte [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">hello</span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">Copy</button></div></div><h2><a aria-hidden="true" tabindex="-1" class="anchor anchor__h2 anchorWithHideOnScrollNavbar_3R7-" 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  [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 d5046ed..e5aac28 100644
--- a/docs/apisix/2.5/plugins/grpc-transcode/index.html
+++ b/docs/apisix/2.5/plugins/grpc-transcode/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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// [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -27,7 +27,7 @@
 </span></span><span 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></span></code></pre><button type="button" aria-label="Copy code to clipbo [...]
 </span></span><span 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><spa [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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/ [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 033581d..8dd4e36 100644
--- a/docs/apisix/2.5/plugins/hmac-auth/index.html
+++ b/docs/apisix/2.5/plugins/hmac-auth/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/f [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -36,7 +36,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"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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 [...]
 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.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 e524b9f..0fa8b4a 100644
--- a/docs/apisix/2.5/plugins/http-logger/index.html
+++ b/docs/apisix/2.5/plugins/http-logger/index.html
@@ -18,14 +18,14 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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 [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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:// [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 db871f3..bd41a8c 100644
--- a/docs/apisix/2.5/plugins/index.html
+++ b/docs/apisix/2.5/plugins/index.html
@@ -18,14 +18,14 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/fav [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 the its execution will be skipped.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor anchor__h3 anchorWithHideOnScrollNavbar_3R7-" 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><footer class="theme-doc-footer docusaurus-mt-lg"><div cla [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 f44cef2..03eec6d 100644
--- a/docs/apisix/2.5/plugins/ip-restriction/index.html
+++ b/docs/apisix/2.5/plugins/ip-restriction/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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// [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -31,7 +31,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"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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 [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 28cc73f..98c9aa9 100644
--- a/docs/apisix/2.5/plugins/jwt-auth/index.html
+++ b/docs/apisix/2.5/plugins/jwt-auth/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/fa [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -32,7 +32,7 @@ You may need to use <a href="/docs/apisix/2.5/plugin-interceptors">interceptors<
 </span></span><span 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></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token operator" style="color:#393A34" [...]
 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"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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 [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 14a6773..28ec804 100644
--- a/docs/apisix/2.5/plugins/kafka-logger/index.html
+++ b/docs/apisix/2.5/plugins/kafka-logger/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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//im [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -31,7 +31,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 anchor__h3 anchorWithHideOnScrollNavbar_3R7-" 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"><pre tabindex="0" class="prism-code language-json codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span class="token-line" style="color:#393A34"><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span></span><span class="token-line" style="color:#393A34"><span cla [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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:// [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 af63f84..241848c 100644
--- a/docs/apisix/2.5/plugins/key-auth/index.html
+++ b/docs/apisix/2.5/plugins/key-auth/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/fa [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -29,7 +29,7 @@
 </span></span><span 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></span><span class="token-line" style="color:#393A34"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:#36acaa [...]
 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"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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 [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 02bb678..92b8405 100644
--- a/docs/apisix/2.5/plugins/limit-conn/index.html
+++ b/docs/apisix/2.5/plugins/limit-conn/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/ [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -29,7 +29,7 @@
 </span></span><span 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></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token opera [...]
 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"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 c13f5b5..a127b6b 100644
--- a/docs/apisix/2.5/plugins/limit-count/index.html
+++ b/docs/apisix/2.5/plugins/limit-count/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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 [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -30,7 +30,7 @@ which mean the total number of requests and the remaining number of requests tha
 </span></span><span 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></span><span 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 [...]
 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"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 e3ad152..612e6c9 100644
--- a/docs/apisix/2.5/plugins/limit-req/index.html
+++ b/docs/apisix/2.5/plugins/limit-req/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/f [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -27,7 +27,7 @@
 </span></span><span 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></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="t [...]
 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"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 5f8d2f4..6de91bf 100644
--- a/docs/apisix/2.5/plugins/log-rotate/index.html
+++ b/docs/apisix/2.5/plugins/log-rotate/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/ [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -28,7 +28,7 @@ When the number of log files exceeds the remaining number, the old files are aut
 For example, the following example is a sample based on <code>interval: 10</code> and <code>max_kept: 10</code>.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span class="token-line" style="color:#393A34"><span class="token plain">$ ll logs</span></span><span class="token-line" style="color:# [...]
 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"><pre tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">plugins</span><span class="token punc [...]
 </span></span><span 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></span><span 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 cla [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 dacb6c6..20e0611 100644
--- a/docs/apisix/2.5/plugins/mqtt-proxy/index.html
+++ b/docs/apisix/2.5/plugins/mqtt-proxy/index.html
@@ -18,15 +18,15 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/ [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 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 anchor__h2 anchorWithHideOnScrollNavbar_3R7-" id="attributes"></a>Attributes<a class="hash- [...]
 For example, the following configuration represents listening on the 9100 TCP port.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><pre tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">...</span><span class="token [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 cd7d596..f7877c9 100644
--- a/docs/apisix/2.5/plugins/node-status/index.html
+++ b/docs/apisix/2.5/plugins/node-status/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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 [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -31,7 +31,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"><pre tabindex="0" class="prism-code language-bash codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span class="token-line" style="color:#393A34"><span class="token plain">plugins:                          </span><span class="token comment" style="color:#999988;font-style:italic"># plugin list</ [...]
 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"><pre tabindex="0" class="prism-code language-sh codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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;  [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 4fa0195..4d136ff 100644
--- a/docs/apisix/2.5/plugins/openid-connect/index.html
+++ b/docs/apisix/2.5/plugins/openid-connect/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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// [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -50,7 +50,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"><pre tabindex="0" class="prism-code language-bash codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</ [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 f024350..d12b41e 100644
--- a/docs/apisix/2.5/plugins/prometheus/index.html
+++ b/docs/apisix/2.5/plugins/prometheus/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/ [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -34,7 +34,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"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span class="token-line" style="color:#393A34"><span class="token [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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/ [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 740fab1..bc88f5f 100644
--- a/docs/apisix/2.5/plugins/proxy-cache/index.html
+++ b/docs/apisix/2.5/plugins/proxy-cache/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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 [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -29,7 +29,7 @@
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">hello</span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">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:</l [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">hello</span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">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 are [...]
 </span></span><span 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></span><span 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 [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 5d89166..41010f4 100644
--- a/docs/apisix/2.5/plugins/proxy-mirror/index.html
+++ b/docs/apisix/2.5/plugins/proxy-mirror/index.html
@@ -18,15 +18,15 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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//im [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">hello world</span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">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 anchor__h2 anchorWithHideOnScrollNavbar_3R7-" 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 [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 59ef027..7d09938 100644
--- a/docs/apisix/2.5/plugins/proxy-rewrite/index.html
+++ b/docs/apisix/2.5/plugins/proxy-rewrite/index.html
@@ -18,15 +18,15 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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//i [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 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"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 9893a08..d48d84e 100644
--- a/docs/apisix/2.5/plugins/redirect/index.html
+++ b/docs/apisix/2.5/plugins/redirect/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/fa [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -27,7 +27,7 @@
 </span></span><span 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></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">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 a [...]
 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"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 7f354b5..44ac10a 100644
--- a/docs/apisix/2.5/plugins/referer-restriction/index.html
+++ b/docs/apisix/2.5/plugins/referer-restriction/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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. [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -27,7 +27,7 @@
 whitelisting request header Referrers.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor anchor__h2 anchorWithHideOnScrollNavbar_3R7-" 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 wh [...]
 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"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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 [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 8c933bb..291f0f6 100644
--- a/docs/apisix/2.5/plugins/request-id/index.html
+++ b/docs/apisix/2.5/plugins/request-id/index.html
@@ -18,15 +18,15 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/ [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 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 anchor__h2 anchorWithHideOnScrollNavbar_3R7-" 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 [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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/ [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 0199c33..0557c95 100644
--- a/docs/apisix/2.5/plugins/request-validation/index.html
+++ b/docs/apisix/2.5/plugins/request-validation/index.html
@@ -18,15 +18,15 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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.o [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 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 anchor__h2 anchorWithHideOnScrollNavbar_3R7-" id="attributes"></a>Attributes<a class="hash-link" href="#attributes" title="Direct link to heading">#</a></h2><table>< [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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/ [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 332eb8b..14cca8d 100644
--- a/docs/apisix/2.5/plugins/response-rewrite/index.html
+++ b/docs/apisix/2.5/plugins/response-rewrite/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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 [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -28,7 +28,7 @@
 </span></span><span 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"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 e712f58..02f61ff 100644
--- a/docs/apisix/2.5/plugins/server-info/index.html
+++ b/docs/apisix/2.5/plugins/server-info/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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 [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 4b57de0..475710b 100644
--- a/docs/apisix/2.5/plugins/serverless/index.html
+++ b/docs/apisix/2.5/plugins/serverless/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/ [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -27,7 +27,7 @@
 which indicates that the specified function is in effect.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor anchor__h2 anchorWithHideOnScrollNavbar_3R7-" 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"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 8ed3b10..dd15302 100644
--- a/docs/apisix/2.5/plugins/skywalking/index.html
+++ b/docs/apisix/2.5/plugins/skywalking/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/ [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -39,7 +39,7 @@ you need to comment out in the <code>config.yaml</code>:</p><div class="codeBloc
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">import org.springframework.web.bind.annotation.PathVariable;</span></span><span class="token-line" style="color:#393A34"><span class="token plain">import org.springframework.web.bind.annotation.RequestMapping;</span></span><span class="token-line" style="color:#393A34"><span class="token plain">import org.springframework.web.bind.annotation.RestController;</span></span><span class="token-line" style="c [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">/**</span></span><span class="token-line" style="color:#393A34"><span class="token plain"> * @author cyxinda</span></span><span class="token-line" style="color:#393A34"><span class="token plain"> * @create 2020-05-29 14:02</span></span><span class="token-line" style="color:#393A34"><span class="token plain"> * @desc skywalking test controller</span></span><span class="token-line" style="color:#393A34"> [...]
 update the file of agent/config/agent.config</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 70b9897..d9d740e 100644
--- a/docs/apisix/2.5/plugins/sls-logger/index.html
+++ b/docs/apisix/2.5/plugins/sls-logger/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/ [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -27,7 +27,7 @@
 <a href="/docs/apisix/2.5/batch-processor">Batch-Processor</a></p><h2><a aria-hidden="true" tabindex="-1" class="anchor anchor__h2 anchorWithHideOnScrollNavbar_3R7-" 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=" [...]
 </span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">Copy</button></div></div><h2><a aria-hidden="true" tabindex="-1" class="anchor anchor__h2 anchorWithHideOnScrollNavbar_3R7-" 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"><pre tabindex="0" class="prism [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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:// [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 963c70b..0b338b6 100644
--- a/docs/apisix/2.5/plugins/syslog/index.html
+++ b/docs/apisix/2.5/plugins/syslog/index.html
@@ -18,14 +18,14 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/favi [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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:// [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 494e893..5a4a8e5 100644
--- a/docs/apisix/2.5/plugins/tcp-logger/index.html
+++ b/docs/apisix/2.5/plugins/tcp-logger/index.html
@@ -18,15 +18,15 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/ [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 <a href="/docs/apisix/2.5/batch-processor">Batch-Processor</a></p><h2><a aria-hidden="true" tabindex="-1" class="anchor anchor__h2 anchorWithHideOnScrollNavbar_3R7-" 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 [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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:// [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 7508eb4..49b3468 100644
--- a/docs/apisix/2.5/plugins/traffic-split/index.html
+++ b/docs/apisix/2.5/plugins/traffic-split/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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//i [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -38,7 +38,7 @@ service_name, discovery_type, checks, retries, desc, scheme, labels, create_time
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">world </span><span class="token number" style="color:#36acaa">1981</span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">Copy</button></div></div><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-col [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">hello </span><span class="token number" style="color:#36acaa">1980</span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">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 [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">hello </span><span class="token number" style="color:#36acaa">1980</span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">Copy</button></div></div><h2><a aria-hidden="true" tabindex="-1" class="anchor anchor__h2 anchorWithHideOnScrollNavbar_3R7-" id="disable-plugin"></a>Disable Plugin<a class="hash-link" href="#disable-plugin" title="Direct [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 c45e911..5a78e67 100644
--- a/docs/apisix/2.5/plugins/udp-logger/index.html
+++ b/docs/apisix/2.5/plugins/udp-logger/index.html
@@ -18,15 +18,15 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/ [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 <a href="/docs/apisix/2.5/batch-processor">Batch-Processor</a></p><h2><a aria-hidden="true" tabindex="-1" class="anchor anchor__h2 anchorWithHideOnScrollNavbar_3R7-" 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 [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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:// [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 711938e..d9f222a 100644
--- a/docs/apisix/2.5/plugins/uri-blocker/index.html
+++ b/docs/apisix/2.5/plugins/uri-blocker/index.html
@@ -18,14 +18,14 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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 [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 </span></span><span 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></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">Copy</button></div></div><h2><a aria-hidden="true" tabindex="-1" class="anchor anchor__h2 a [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 fe7f047..bdd3223 100644
--- a/docs/apisix/2.5/plugins/wolf-rbac/index.html
+++ b/docs/apisix/2.5/plugins/wolf-rbac/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/f [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -46,7 +46,7 @@ The rbac feature is provided by <a href="https://github.com/iGeeky/wolf" target=
 </span></span><span 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></span><span 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 stri [...]
 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"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 4994815..7fde1fc 100644
--- a/docs/apisix/2.5/plugins/zipkin/index.html
+++ b/docs/apisix/2.5/plugins/zipkin/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/favi [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -32,7 +32,7 @@ no need to restart the service, it will take effect immediately:</p><div class="
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">    tracer := GetTracer(...)</span></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">    // use middleware to extract parentID from http header that injected by APISIX</span></span><span class="token-line" style="color:#393A34"><span class="token plain">    r.Use(func(c *gin.Context) {</span></span><span class="token-line" style="color:#393A34"><span class="token plain">        span := this.Tracer.Extract(b3.ExtractHTTP(c.Request))</span></span><span class="token-line" style="color:#39 [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">}</span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">Copy</button></div></div></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/plugins/zipkin.md" target="_blank" rel="noreferrer noopener" class="th [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 9844dee..59f35cc 100644
--- a/docs/apisix/2.5/powered-by/index.html
+++ b/docs/apisix/2.5/powered-by/index.html
@@ -18,14 +18,14 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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.ap [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 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.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 d4a39f2..f8aa7d3 100644
--- a/docs/apisix/2.5/profile/index.html
+++ b/docs/apisix/2.5/profile/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:image" content="https://apisix.apache.org//img/favicon.png"><meta data-react-helmet="true" name="twitte [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -30,7 +30,7 @@ requirements, we need to change the parameters in the configuration file to the
 development environment. You have to change it back. It&#x27;s very easy to make mistakes.</p><p>The solution to the above problem is to distinguish the current running environment through environment variables, and switch
 between different configuration files through environment variables. The corresponding environment variable in APISIX is: <code>APISIX_PROFILE</code></p><p>When <code>APISIX_PROFILE</code> is not set, the following three configuration files are used by default:</p><ul><li>conf/config.yaml</li><li>conf/apisix.yaml</li><li>conf/debug.yaml</li></ul><p>If the value of <code>APISIX_PROFILE</code> is set to <code>prod</code>, the following three configuration files are used:</p><ul><li>conf/co [...]
 tools such as git can be configured, and version management can be better achieved.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/profile.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_2_ui" aria-hidden="true"><g><path d="m34.5 11.7l [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 0387502..305720b 100644
--- a/docs/apisix/2.5/router-radixtree/index.html
+++ b/docs/apisix/2.5/router-radixtree/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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 [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -28,7 +28,7 @@
 here is an simple example:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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 </s [...]
 data from the request body. This limitation is configured via:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><pre tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">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><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/router-radixtree.md [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 37ee44f..459daaa 100644
--- a/docs/apisix/2.5/stand-alone/index.html
+++ b/docs/apisix/2.5/stand-alone/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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 [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -27,7 +27,7 @@
 the APISIX will check if this file has any changed every second.
 If the file changed and we found <code>#END</code> at the end of the file,
 APISIX will load the rules in this file and update to memory of APISIX.</p><p>Here is a mini example:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><pre tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">routes</span><span class="token punctuation" sty [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 be9a619..c623bf0 100644
--- a/docs/apisix/2.5/stream-proxy/index.html
+++ b/docs/apisix/2.5/stream-proxy/index.html
@@ -18,14 +18,14 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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//im [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 By default, no any stream proxy is enabled.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><pre tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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"></spa [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/2.5/tags/index.html b/docs/apisix/2.5/tags/index.html
index 10f953a..030ad4d 100644
--- a/docs/apisix/2.5/tags/index.html
+++ b/docs/apisix/2.5/tags/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Tags | Apache APISIX® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="Tags | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:image" content="https://apisix.apache.org//img [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 5bd6baf..6fbe324 100644
--- a/docs/apisix/2.6/FAQ/index.html
+++ b/docs/apisix/2.6/FAQ/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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 [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -32,7 +32,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 anchor__h2 anchorWithHideOnScrollNavbar_3R7-" 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 [...]
 </span></span><span 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></span><span 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></span><span class="token-line" style="color:#393A34"> [...]
 </span></span><span 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></span><span 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></span></code></pr [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 8b5ac71..9ddfbec 100644
--- a/docs/apisix/2.6/IGNORE_DOC/index.html
+++ b/docs/apisix/2.6/IGNORE_DOC/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/ [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 3806627..c643aaa 100644
--- a/docs/apisix/2.6/admin-api/index.html
+++ b/docs/apisix/2.6/admin-api/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/f [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -86,7 +86,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"><pre tabindex="0" class="prism-code language-json codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span class="token-line" style="color:#393A34"><span class="tok [...]
 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 anchor__h2 anchorWithHideOnScrollNavbar_3R7-" 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 Met [...]
 </span></span><span 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.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 bd3a834..8d727d5 100644
--- a/docs/apisix/2.6/architecture-design/apisix/index.html
+++ b/docs/apisix/2.6/architecture-design/apisix/index.html
@@ -18,15 +18,15 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/favi [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 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"><pre tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">apisix</span><span class="token punctuati [...]
 </span></span><span 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></span><span 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.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 1cb62f0..ea3bfd9 100644
--- a/docs/apisix/2.6/architecture-design/consumer/index.html
+++ b/docs/apisix/2.6/architecture-design/consumer/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/fa [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -31,7 +31,7 @@
 </span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">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"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6 [...]
 </span></span><span 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></span><span 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><spa [...]
 </span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">Copy</button></div></div></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row 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" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBo [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 26cf6f1..f4b5c40 100644
--- a/docs/apisix/2.6/architecture-design/debug-mode/index.html
+++ b/docs/apisix/2.6/architecture-design/debug-mode/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/ [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -27,7 +27,7 @@
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">hello world</span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">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 anchor__h3 anchorWithHideOnScrollNavbar_3R7-" 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 re [...]
 </span></span><span 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></span><span class="token-line" style="color:#393A34"><span class="token plain">  </ [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 4be31cb..5cdd4bc 100644
--- a/docs/apisix/2.6/architecture-design/global-rule/index.html
+++ b/docs/apisix/2.6/architecture-design/global-rule/index.html
@@ -18,14 +18,14 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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 [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 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"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token  [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 7d15f44..83f8770 100644
--- a/docs/apisix/2.6/architecture-design/index.html
+++ b/docs/apisix/2.6/architecture-design/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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. [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -44,7 +44,7 @@ will be merged into it. The same plugin in the plugin config will override one i
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">hello world</span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">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 anchor__h3 anchorWithHideOnScrollNavbar_3R7-" 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 re [...]
 </span></span><span 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></span><span class="token-line" style="color:#393A34"><span class="token plain">  </ [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 26d2a88..377a5d2 100644
--- a/docs/apisix/2.6/architecture-design/plugin-config/index.html
+++ b/docs/apisix/2.6/architecture-design/plugin-config/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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//i [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -27,7 +27,7 @@
 bind it with a route directly.</p><p>For instance, you can do something like:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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></span><span 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></span><span 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: [...]
 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"><pre tabindex="0" class="prism-code language-bash codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span class="token-line" style="color:#393A34"><span class="token punctuation" style="col [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 0cb7c28..1884bd6 100644
--- a/docs/apisix/2.6/architecture-design/plugin/index.html
+++ b/docs/apisix/2.6/architecture-design/plugin/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/favi [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 81b3367..4212451 100644
--- a/docs/apisix/2.6/architecture-design/route/index.html
+++ b/docs/apisix/2.6/architecture-design/route/index.html
@@ -18,15 +18,15 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/favic [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 </span></span><span 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></span><span 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 [...]
 </span></span><span 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.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 431307e..fa495e3 100644
--- a/docs/apisix/2.6/architecture-design/router/index.html
+++ b/docs/apisix/2.6/architecture-design/router/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/favi [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 101d26d..76f6932 100644
--- a/docs/apisix/2.6/architecture-design/script/index.html
+++ b/docs/apisix/2.6/architecture-design/script/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/favi [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 2971ca1..1fcbab8 100644
--- a/docs/apisix/2.6/architecture-design/service/index.html
+++ b/docs/apisix/2.6/architecture-design/service/index.html
@@ -18,15 +18,15 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/fav [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 </span></span><span 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></span><span 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><s [...]
 </span></span><span 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></span><span class="token-line" styl [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 b21c054..7d17c0b 100644
--- a/docs/apisix/2.6/architecture-design/upstream/index.html
+++ b/docs/apisix/2.6/architecture-design/upstream/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/fa [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 cd2b974..2ea101a 100644
--- a/docs/apisix/2.6/aws/index.html
+++ b/docs/apisix/2.6/aws/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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:/ [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -46,7 +46,7 @@
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">Non-authoritative answer:</span></span><span class="token-line" style="color:#393A34"><span class="token plain">Name:   apiSi-PhpSe-FOL2MM4TW7G8-09029e095ab36fcc.elb.us-west-2.amazonaws.com</span></span><span 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></span><sp [...]
 <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 anchor__h2 anchorWithHideOnScrollNavbar_3R7-" 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/apis [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 f75a3eb..ae64ed3 100644
--- a/docs/apisix/2.6/batch-processor/index.html
+++ b/docs/apisix/2.6/batch-processor/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/ [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -34,7 +34,7 @@ argument and the batch configuration as the second parameter.</p><div class="cod
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">if batch_processor then</span></span><span class="token-line" style="color:#393A34"><span class="token plain">    batch_processor:push({hello=&#x27;world&#x27;})</span></span><span class="token-line" style="color:#393A34"><span class="token plain">end</span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">Copy</button></div></div><p>Note: P [...]
 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><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/batch-processor.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_2_ui" aria-hidden="true"><g><path d="m [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 a099fe9..0569eda 100644
--- a/docs/apisix/2.6/benchmark/index.html
+++ b/docs/apisix/2.6/benchmark/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/f [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -29,7 +29,7 @@ and the response size was 1KB.</p><h4><a aria-hidden="true" tabindex="-1" class=
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/flamegraph-1.jpg" alt="flamegraph-1"></p><p>And if you want to run the benchmark test in your machine, you should run another Nginx to listen 80 port.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span class=" [...]
 and the response size was 1KB.</p><h4><a aria-hidden="true" tabindex="-1" class="anchor anchor__h4 anchorWithHideOnScrollNavbar_3R7-" 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 anchor__h4 ancho [...]
 <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"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span class=" [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 cc8000e..f2f7a6a 100644
--- a/docs/apisix/2.6/control-api/index.html
+++ b/docs/apisix/2.6/control-api/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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 [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -29,7 +29,7 @@ If a plugin adds such a control API, please refer to each plugin&#x27;s document
 of fields like <code>consumer_schema</code> or <code>type</code>, it is depended on by the plugin&#x27;s
 definition.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor anchor__h3 anchorWithHideOnScrollNavbar_3R7-" 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"><pre tabindex="0"  [...]
 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.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 8ef5f75..e87276c 100644
--- a/docs/apisix/2.6/customize-nginx-configuration/index.html
+++ b/docs/apisix/2.6/customize-nginx-configuration/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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://apis [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -27,7 +27,7 @@
 </span></span><span 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></span><span class="token-line" style="color:#393A34"><span class="token plain">                req_status_show;</span></span><span class="token-line" style="color:#393A34"><span class="token plain">                allow 127.0.0.1;</span></span><span class="token-line" [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">        chunked_transfer_encoding on;</span></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
 </span></span><span 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></span><span class="token-line" style="color:#393A34"><span class="token scalar  [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 3ecc48e..5cf5cff 100644
--- a/docs/apisix/2.6/debug-function/index.html
+++ b/docs/apisix/2.6/debug-function/index.html
@@ -18,14 +18,14 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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// [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 </span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">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"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 984da9e..586971b 100644
--- a/docs/apisix/2.6/discovery/consul_kv/index.html
+++ b/docs/apisix/2.6/discovery/consul_kv/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/f [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -27,7 +27,7 @@
 <img src="https://user-images.githubusercontent.com/548385/107141841-6ced3e00-6966-11eb-8aa4-bc790a4ad113.png"></p><h2><a aria-hidden="true" tabindex="-1" class="anchor anchor__h2 anchorWithHideOnScrollNavbar_3R7-" 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 anchor__h3 anchorWithHideOnScrollNavbar_ [...]
 </span></span><span 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></span><span 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></span><span c [...]
 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 anchor__h3 anchorWithHideOnScrollNavbar_3R7-" 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 [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 a65ac6a..230a830 100644
--- a/docs/apisix/2.6/discovery/dns/index.html
+++ b/docs/apisix/2.6/discovery/dns/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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 [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -33,7 +33,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><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/discovery/dns.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_2_ui" aria-hidden="true"><g><path d="m34.5 11 [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 0a7ea0c..999e0f5 100644
--- a/docs/apisix/2.6/discovery/eureka/index.html
+++ b/docs/apisix/2.6/discovery/eureka/index.html
@@ -18,14 +18,14 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/favi [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 reading from <a href="/docs/apisix/2.6/discovery#supported-discovery-registries">Supported discovery registries</a>.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/discovery/eureka.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_2_ui"  [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 8d83dd0..2a5486c 100644
--- a/docs/apisix/2.6/discovery/index.html
+++ b/docs/apisix/2.6/discovery/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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="htt [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -35,7 +35,7 @@
 </span></span><span 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></span><span 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 [...]
 </span></span><span 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></span><span 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></span><span class="token-line" s [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 ca52d35..b9470ac 100644
--- a/docs/apisix/2.6/discovery/nacos/index.html
+++ b/docs/apisix/2.6/discovery/nacos/index.html
@@ -18,13 +18,13 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/favic [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 bcf16fd..71e06fe 100644
--- a/docs/apisix/2.6/dns/index.html
+++ b/docs/apisix/2.6/dns/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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 [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -31,7 +31,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><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/dns.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_2_ui" aria-hidden="true"> [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 b092dfb..9e11fbb 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
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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://a [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -58,7 +58,7 @@
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">--to base64</span></span><span class="token-line" style="color:#393A34"><span class="token plain">ngx.say(ngx.encode_base64(digest))</span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">Copy</button></div></div><h2><a aria-hidden="true" tabindex="-1" class="anchor anchor__h2 anchorWithHideOnScrollNavbar_3R7-" id="shell"></a>Shell<a class= [...]
 </span></span><span 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></span><span 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><span 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></span><span 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 [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 c6649c5..bbab485 100644
--- a/docs/apisix/2.6/getting-started/index.html
+++ b/docs/apisix/2.6/getting-started/index.html
@@ -18,14 +18,14 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/ [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 the proxy-rewrite plugin to do it.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly bash"><pre tabindex="0" class="prism-code language-bash codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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="col [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 221bc50..8dfa661 100644
--- a/docs/apisix/2.6/grpc-proxy/index.html
+++ b/docs/apisix/2.6/grpc-proxy/index.html
@@ -18,14 +18,14 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/ [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 gRPC client -&gt; APISIX -&gt; gRPC/gRPCS server</p><h2><a aria-hidden="true" tabindex="-1" class="anchor anchor__h2 anchorWithHideOnScrollNavbar_3R7-" 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>< [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 e73d6fa..f84b199 100644
--- a/docs/apisix/2.6/health-check/index.html
+++ b/docs/apisix/2.6/health-check/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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//im [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -28,7 +28,7 @@ you can use it for upstream.</p><p>Note:</p><ul><li>We only start the health che
 There won&#x27;t be any health check if an upstream is configured but isn&#x27;t in used.</li><li>If there is no healthy node can be chosen, we will continue to access the upstream.</li><li>We won&#x27;t start the health check when the upstream only has one node, as we will access
 it whether this unique node is healthy or not.</li></ul><p>The following is an example of health check:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> http://1 [...]
 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.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 071b262..6e1b92f 100644
--- a/docs/apisix/2.6/how-to-build/index.html
+++ b/docs/apisix/2.6/how-to-build/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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. [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -36,7 +36,7 @@ Here is an example:</p><div class="codeBlockContainer_K1bP"><div class="codeBloc
 </span></span><span 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></span><span class="token-line" style="color:#393A34"><span class="token plain">HTTP/1.1 </span><span class="token number" style="co [...]
 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 anchor__h2 anchorWithHideOnScrollNavbar_3R7-" 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 packa [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 2e0eca0..18e7c5c 100644
--- a/docs/apisix/2.6/https/index.html
+++ b/docs/apisix/2.6/https/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/favic [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -39,7 +39,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><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/https.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_2_ui" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6 [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 39799aa..37b539f 100644
--- a/docs/apisix/2.6/install-dependencies/index.html
+++ b/docs/apisix/2.6/install-dependencies/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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 [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -43,7 +43,7 @@
 </span></span><span 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></span><span 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></span></code></pre [...]
 </span></span><span 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></span><span class="token-line" style="color:#393A34"><span class="token plain">brew services start etcd</span></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
 </span></span><span 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></span><span 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:# [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 9f31e76..79c57c6 100644
--- a/docs/apisix/2.6/mtls/index.html
+++ b/docs/apisix/2.6/mtls/index.html
@@ -18,14 +18,14 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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="ht [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 </span></span><span 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></span><span 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">:</sp [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 09a90dd..54a44b7 100644
--- a/docs/apisix/2.6/plugin-develop/index.html
+++ b/docs/apisix/2.6/plugin-develop/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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// [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -56,7 +56,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 anchor__h3 anchorWithHideOnScrollNavbar_3R7-" 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> [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">function _M.control_api()</span></span><span class="token-line" style="color:#393A34"><span class="token plain">    return {</span></span><span class="token-line" style="color:#393A34"><span class="token plain">        {</span></span><span class="token-line" style="color:#393A34"><span class="token plain">            methods = {&quot;GET&quot;},</span></span><span class="token-line" style="color:#393A3 [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 7b14d58..461ac18 100644
--- a/docs/apisix/2.6/plugin-interceptors/index.html
+++ b/docs/apisix/2.6/plugin-interceptors/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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. [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -29,7 +29,7 @@ to run rules to protect them.</p><p>Here is an example to limit the access of <c
 to clients in <code>10.0.0.0/24</code>:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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/pl [...]
 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><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/plugin-interceptors.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this- [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 a83a4c1..d2ebc35 100644
--- a/docs/apisix/2.6/plugins/api-breaker/index.html
+++ b/docs/apisix/2.6/plugins/api-breaker/index.html
@@ -18,14 +18,14 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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 [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 </span></span><span 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></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">Copy</button></div></div><h2><a aria-hidden="true" tabindex="-1" class="anchor anchor__h2 a [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 c146841..358aee6 100644
--- a/docs/apisix/2.6/plugins/authz-keycloak/index.html
+++ b/docs/apisix/2.6/plugins/authz-keycloak/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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// [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -50,7 +50,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"><pre tabindex="0" class="prism-code language-bash codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span class="token-line" style="color:#393A34"><span class="token plain">docker run -e </span><span class=" [...]
 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><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row 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" class="theme-edit-this-pag [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 598ee12..397a994 100644
--- a/docs/apisix/2.6/plugins/basic-auth/index.html
+++ b/docs/apisix/2.6/plugins/basic-auth/index.html
@@ -18,15 +18,15 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/ [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 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"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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 [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 5b2d87f..0086bff 100644
--- a/docs/apisix/2.6/plugins/batch-requests/index.html
+++ b/docs/apisix/2.6/plugins/batch-requests/index.html
@@ -18,15 +18,15 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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// [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 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 anchor__h2 anchorWithHideOnScrollNavbar_3R7-" 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 anchor__h2 anchorWithHideOnScrollNavbar_3R7-" id="how-to-configure"></a>How To Configure<a cla [...]
 You can configure it via <code>apisix/admin/plugin_metadata/batch-requests</code>:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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/ [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 4fb47f2..1e1d5f4 100644
--- a/docs/apisix/2.6/plugins/consumer-restriction/index.html
+++ b/docs/apisix/2.6/plugins/consumer-restriction/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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 [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -29,7 +29,7 @@
 </span></span><span 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></span><span class="token-line" styl [...]
 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"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 0231b68..10c096e 100644
--- a/docs/apisix/2.6/plugins/cors/index.html
+++ b/docs/apisix/2.6/plugins/cors/index.html
@@ -18,14 +18,14 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/favico [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 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 anchor__h2 anchorWithHideOnScrollNavbar_3R7-" 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 con [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 d9c3c12..608175e 100644
--- a/docs/apisix/2.6/plugins/dubbo-proxy/index.html
+++ b/docs/apisix/2.6/plugins/dubbo-proxy/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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 [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -30,7 +30,7 @@ They should provide the same result.</p><p>The returned data from upstream dubbo
 you can delete the corresponding json configuration in the plugin configuration,
 no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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 [...]
 you need to comment out in the <code>config.yaml</code>:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><pre tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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="toke [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 4154515..2aabb12 100644
--- a/docs/apisix/2.6/plugins/echo/index.html
+++ b/docs/apisix/2.6/plugins/echo/index.html
@@ -18,14 +18,14 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/favico [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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:// [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 c0666b8..f0ca05a 100644
--- a/docs/apisix/2.6/plugins/error-log-logger/index.html
+++ b/docs/apisix/2.6/plugins/error-log-logger/index.html
@@ -18,15 +18,15 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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 [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 <a href="/docs/apisix/2.6/batch-processor">Batch-Processor</a></p><h2><a aria-hidden="true" tabindex="-1" class="anchor anchor__h2 anchorWithHideOnScrollNavbar_3R7-" 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 [...]
 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"><pre tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">plugins</span><span class="token punc [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 88b4769..5dfd083 100644
--- a/docs/apisix/2.6/plugins/fault-injection/index.html
+++ b/docs/apisix/2.6/plugins/fault-injection/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/ [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -44,7 +44,7 @@
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">Fault Injection</span><span class="token operator" style="color:#393A34">!</span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">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="codeBlockC [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">Fault Injection</span><span class="token operator" style="color:#393A34">!</span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">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="codeBlockConte [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">hello</span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">Copy</button></div></div><h2><a aria-hidden="true" tabindex="-1" class="anchor anchor__h2 anchorWithHideOnScrollNavbar_3R7-" 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  [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 224f804..2ca44d7 100644
--- a/docs/apisix/2.6/plugins/grpc-transcode/index.html
+++ b/docs/apisix/2.6/plugins/grpc-transcode/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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// [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -27,7 +27,7 @@
 </span></span><span 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></span></code></pre><button type="button" aria-label="Copy code to clipbo [...]
 </span></span><span 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><spa [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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/ [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 5b81389..bc70d89 100644
--- a/docs/apisix/2.6/plugins/hmac-auth/index.html
+++ b/docs/apisix/2.6/plugins/hmac-auth/index.html
@@ -18,8 +18,8 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/f [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -36,7 +36,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"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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 [...]
 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.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 753d12d..f61ea68 100644
--- a/docs/apisix/2.6/plugins/http-logger/index.html
+++ b/docs/apisix/2.6/plugins/http-logger/index.html
@@ -18,14 +18,14 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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 [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><pre tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span 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:// [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
-<script src="/assets/js/main.9fcdcf0c.js"></script>
+<script src="/assets/js/runtime~main.5aaddfd3.js"></script>
+<script src="/assets/js/main.ee3bde9c.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 cc76731..b46091a 100644
--- a/docs/apisix/2.6/plugins/index.html
+++ b/docs/apisix/2.6/plugins/index.html
@@ -18,14 +18,14 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><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/fav [...]
-<link rel="preload" href="/assets/js/runtime~main.9cf8bcef.js" as="script">
-<link rel="preload" href="/assets/js/main.9fcdcf0c.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.5aaddfd3.js" as="script">
+<link rel="preload" href="/assets/js/main.ee3bde9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
 <div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><div class="announcementBar_3WsW" style="background-color:#e8433e;color:white" role="banner"><div class="announcementBarPlaceholder_2m9F"></div><div class="announcementBarContent_3EUC">🤔 Have queries regarding apache APISIX, Join slack channel to discuss them <a target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/the-asf/shared_invite/zt-nggtva4i-hDCsW1S35MuZ2g_2DgVDGg">join #apisix channel</a> [...]
 the its execution will be skipped.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor anchor__h3 anchorWithHideOnScrollNavbar_3R7-" 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><footer class="theme-doc-footer docusaurus-mt-lg"><div cla [...]
-<script src="/assets/js/runtime~main.9cf8bcef.js"></script>
... 41953 lines suppressed ...