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/11/02 10:40:20 UTC

[apisix-website] branch asf-site updated: deploy: 037c94dc3c8c370444673f940efca0e60accc360

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 55a2594  deploy: 037c94dc3c8c370444673f940efca0e60accc360
55a2594 is described below

commit 55a2594d0a5e3271316252778b54609a4997de12
Author: juzhiyuan <ju...@users.noreply.github.com>
AuthorDate: Tue Nov 2 10:40:09 2021 +0000

    deploy: 037c94dc3c8c370444673f940efca0e60accc360
---
 404.html                                           |  8 +-
 .../index.html                                     |  8 +-
 .../index.html                                     | 12 +--
 .../Apache-APISIX-Incubator-Journey/index.html     |  8 +-
 .../Apache-APISIX-Kubernetes-Ingress/index.html    |  8 +-
 .../Apache-APISIX-in-China-Mobile-Cloud/index.html | 12 +--
 .../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 +-
 assets/js/034277d8.0a5a4055.js                     |  1 -
 assets/js/034277d8.394923de.js                     |  1 +
 assets/js/047905fd.b591623e.js                     |  1 +
 assets/js/047905fd.cb10bcdc.js                     |  1 -
 assets/js/06e982b6.a67b3fbf.js                     |  1 -
 assets/js/06e982b6.e79c8cab.js                     |  1 +
 assets/js/09b17eb5.18304210.js                     |  1 -
 assets/js/09b17eb5.7ff54d0c.js                     |  1 +
 assets/js/163cd848.39a37859.js                     |  1 +
 assets/js/163cd848.d581db16.js                     |  1 -
 assets/js/18e8ef3f.41ef369d.js                     |  1 +
 assets/js/18e8ef3f.4906895f.js                     |  1 -
 assets/js/197d8149.4453a417.js                     |  1 -
 assets/js/197d8149.d31823f8.js                     |  1 +
 assets/js/19945770.5e86ba65.js                     |  1 -
 assets/js/19945770.794e17e0.js                     |  1 +
 assets/js/228e983c.01382677.js                     |  1 +
 assets/js/228e983c.775fd8dc.js                     |  1 -
 assets/js/271d3cbf.b3b75d31.js                     |  1 +
 assets/js/271d3cbf.f2f14913.js                     |  1 -
 assets/js/2a20b1ec.25c3bb3c.js                     |  1 -
 assets/js/2a20b1ec.e015b37c.js                     |  1 +
 assets/js/2a47f4b7.2f8d959a.js                     |  1 +
 assets/js/2a8d6e85.89b720f4.js                     |  1 -
 assets/js/2a8d6e85.ba35ee7f.js                     |  1 +
 assets/js/2d8d472d.1e666e80.js                     |  1 +
 assets/js/2d8d472d.665052d9.js                     |  1 -
 assets/js/3393d167.4e9c2a26.js                     |  1 +
 assets/js/3393d167.584f172c.js                     |  1 -
 assets/js/344147af.014802a2.js                     |  1 -
 assets/js/344147af.77761b76.js                     |  1 +
 assets/js/358566b4.87b43330.js                     |  1 -
 assets/js/358566b4.9b671ba3.js                     |  1 +
 assets/js/3665a1a6.39a10119.js                     |  1 -
 assets/js/3665a1a6.6499a68b.js                     |  1 +
 assets/js/3697b036.a02c1363.js                     |  1 +
 assets/js/3697b036.d395c862.js                     |  1 -
 assets/js/399975a8.26724919.js                     |  1 -
 assets/js/399975a8.8f52f014.js                     |  1 +
 assets/js/3dc9f306.35f13d24.js                     |  1 -
 assets/js/3dc9f306.5657c26c.js                     |  1 +
 assets/js/4011bb80.82dab056.js                     |  1 +
 assets/js/4011bb80.8f219ae2.js                     |  1 -
 assets/js/40fb2fae.ad144744.js                     |  1 -
 assets/js/40fb2fae.cebe1a5d.js                     |  1 +
 assets/js/412de8f2.52828e15.js                     |  1 -
 assets/js/412de8f2.ff0b86cf.js                     |  1 +
 assets/js/41c5d441.0dc22466.js                     |  1 -
 assets/js/41c5d441.565ff7e7.js                     |  1 +
 assets/js/456135ba.55782058.js                     |  1 +
 assets/js/456135ba.d5d418ba.js                     |  1 -
 assets/js/484f9e40.8e7db018.js                     |  1 -
 assets/js/484f9e40.e0a74a76.js                     |  1 +
 assets/js/4c20006b.00ff7a0b.js                     |  1 +
 assets/js/4c20006b.d2d07acb.js                     |  1 -
 assets/js/4f34f66f.8baf06ec.js                     |  1 +
 assets/js/4f34f66f.ee7215ae.js                     |  1 -
 assets/js/4f9f5708.0f0e93ac.js                     |  1 +
 assets/js/4f9f5708.8e569c13.js                     |  1 -
 assets/js/507e1a4c.e97ecea7.js                     |  1 +
 assets/js/507e1a4c.f7a12673.js                     |  1 -
 assets/js/50facf8e.3cb970b9.js                     |  1 -
 assets/js/50facf8e.b6c0dd9c.js                     |  1 +
 assets/js/542fd41f.04569452.js                     |  1 -
 assets/js/542fd41f.6bd7ea40.js                     |  1 +
 assets/js/601c6eaa.87351037.js                     |  1 +
 assets/js/601c6eaa.da3d1166.js                     |  1 -
 assets/js/6154e14a.3fa143fd.js                     |  1 +
 assets/js/6154e14a.56247593.js                     |  1 -
 assets/js/642095a6.178d6c37.js                     |  1 +
 assets/js/642095a6.b6175817.js                     |  1 -
 assets/js/65099176.0d78c1f4.js                     |  1 -
 assets/js/65099176.943017cd.js                     |  1 +
 assets/js/66fbb9c2.08064daa.js                     |  1 -
 assets/js/66fbb9c2.af591ecb.js                     |  1 +
 assets/js/69b3d367.d86845a4.js                     |  1 -
 assets/js/69b3d367.e7f8a9a0.js                     |  1 +
 assets/js/6c6914ee.5e213ab1.js                     |  1 +
 assets/js/6c6914ee.71a1c896.js                     |  1 -
 assets/js/739cb065.2e44dbcf.js                     |  1 -
 assets/js/739cb065.b81b60ce.js                     |  1 +
 assets/js/73d26235.9bf8c920.js                     |  1 -
 assets/js/73d26235.cf2a85a2.js                     |  1 +
 assets/js/7445b6d6.5aa670b2.js                     |  1 -
 assets/js/7445b6d6.d79892d8.js                     |  1 +
 assets/js/74f28d06.5d576a8d.js                     |  1 -
 assets/js/74f28d06.af9acfd7.js                     |  1 +
 assets/js/782df5ce.0f2d1e62.js                     |  1 -
 assets/js/782df5ce.bd28875f.js                     |  1 +
 assets/js/7af3052c.742ea0cc.js                     |  1 -
 assets/js/7af3052c.ac339e97.js                     |  1 +
 assets/js/80791de8.3cf7355f.js                     |  1 -
 assets/js/80791de8.921decf6.js                     |  1 +
 assets/js/814f3328.123578ad.js                     |  1 +
 assets/js/814f3328.36200711.js                     |  1 -
 assets/js/81ba4894.1bb77994.js                     |  1 +
 assets/js/81ba4894.dade6360.js                     |  1 -
 assets/js/81f18807.23d3dfd1.js                     |  1 +
 assets/js/81f18807.532043de.js                     |  1 -
 assets/js/84d2a1f2.1c930a7d.js                     |  1 -
 assets/js/84d2a1f2.3fe016fb.js                     |  1 +
 assets/js/893d9d75.3ab05994.js                     |  1 +
 assets/js/893d9d75.6611bef0.js                     |  1 -
 assets/js/8e784bf3.7cf47466.js                     |  1 +
 assets/js/8e784bf3.9cec79a7.js                     |  1 -
 assets/js/8f700fa6.0f53a015.js                     |  1 +
 assets/js/8f700fa6.5397418e.js                     |  1 -
 assets/js/90fc8a94.358b29dc.js                     |  1 +
 assets/js/90fc8a94.d4c7625c.js                     |  1 -
 assets/js/941960b1.05b85e61.js                     |  1 -
 assets/js/941960b1.c1d2853f.js                     |  1 +
 assets/js/a3962fc7.078c16f2.js                     |  1 -
 assets/js/a3962fc7.ce97d6da.js                     |  1 +
 assets/js/a9bef4c0.06063f72.js                     |  1 -
 assets/js/a9bef4c0.54df127b.js                     |  1 +
 assets/js/ac3e62c6.2a7f772a.js                     |  1 +
 assets/js/ac3e62c6.6fed33bf.js                     |  1 -
 assets/js/adbb350b.51a6aa3d.js                     |  1 +
 assets/js/adbb350b.c99cf19f.js                     |  1 -
 assets/js/b2f554cd.c46dd2df.js                     |  1 +
 assets/js/b2f554cd.fc1fc113.js                     |  1 -
 assets/js/b328a5d9.1bd99898.js                     |  1 -
 assets/js/b328a5d9.9198f8df.js                     |  1 +
 assets/js/ba3aa933.615ab398.js                     |  1 +
 assets/js/ba3aa933.fd2b6e48.js                     |  1 -
 assets/js/bd3a6b69.062f65a5.js                     |  1 +
 assets/js/bd3a6b69.2fd41175.js                     |  1 -
 assets/js/c4ffe840.a9f4c3a6.js                     |  1 -
 assets/js/c4ffe840.f66cc781.js                     |  1 +
 assets/js/c9c13a6e.4403d8f8.js                     |  1 +
 assets/js/c9c13a6e.501c120f.js                     |  1 -
 assets/js/ce1b383a.e4c9a614.js                     |  1 +
 assets/js/ce1b383a.e64652d2.js                     |  1 -
 assets/js/cf93e86b.2f40a83a.js                     |  1 -
 assets/js/cf93e86b.88d99cd6.js                     |  1 +
 assets/js/d18db9b0.53b0d5f6.js                     |  1 +
 assets/js/d18db9b0.e145b3aa.js                     |  1 -
 assets/js/db717246.1c4c8790.js                     |  1 -
 assets/js/db717246.1e46ad1b.js                     |  1 +
 assets/js/e2abbbc0.1539cc0a.js                     |  1 -
 assets/js/e2abbbc0.54624ba1.js                     |  1 +
 assets/js/e52e9411.17998dac.js                     |  1 -
 assets/js/e52e9411.932984dd.js                     |  1 +
 assets/js/ed4d0ee9.21f5e8ad.js                     |  1 -
 assets/js/ed4d0ee9.312a6b93.js                     |  1 +
 assets/js/eed2ba9c.85c18dbd.js                     |  1 +
 assets/js/eed2ba9c.a9075caf.js                     |  1 -
 assets/js/f243156b.a5f96709.js                     |  1 -
 assets/js/f243156b.b037fdf0.js                     |  1 +
 assets/js/f4e9d3f4.1ecc522f.js                     |  1 -
 assets/js/f4e9d3f4.d13d5c6a.js                     |  1 +
 assets/js/f6c26454.d88974b6.js                     |  1 -
 assets/js/f6c26454.ed17bab3.js                     |  1 +
 assets/js/f74a08e8.bbe2afe9.js                     |  1 -
 assets/js/f74a08e8.e62df1b0.js                     |  1 +
 assets/js/main.29a8b3b7.js                         |  2 -
 assets/js/main.dacd1b62.js                         |  2 +
 .../js/main.dacd1b62.js.LICENSE.txt                |  0
 assets/js/runtime~main.243b80db.js                 |  1 -
 assets/js/runtime~main.75486ee8.js                 |  1 +
 .../index.html                                     | 10 +--
 .../index.html                                     | 10 +--
 .../index.html                                     | 10 +--
 .../index.html                                     | 10 +--
 .../21/run-ingress-apisix-on-amazon-eks/index.html | 10 +--
 .../index.html                                     | 10 +--
 .../index.html                                     | 10 +--
 .../index.html                                     | 10 +--
 blog/2021/05/24/Tencent-Games/index.html           | 10 +--
 .../05/25/Apache APISIX 2.6.0-Release/index.html   | 10 +--
 .../index.html                                     | 10 +--
 blog/2021/06/06/apisix-two-years/index.html        | 10 +--
 .../index.html                                     | 10 +--
 .../index.html                                     | 10 +--
 .../index.html                                     | 10 +--
 .../index.html                                     | 10 +--
 .../index.html                                     | 10 +--
 .../index.html                                     | 10 +--
 .../index.html                                     | 10 +--
 .../06/28/why-we-need-Apache-APISIX/index.html     | 10 +--
 .../06/29/release-apache-apisix-2.7/index.html     | 10 +--
 .../etcd3-support-HTTP-access-perfectly/index.html | 10 +--
 .../07/06/celebrate-200-contributors/index.html    | 10 +--
 .../index.html                                     | 10 +--
 .../2021/07/21/Apache-APISIX-Kubernetes/index.html | 10 +--
 blog/2021/07/25/apachecon-asia/index.html          | 10 +--
 .../index.html                                     | 10 +--
 .../07/28/release-apache-apisix-2.8/index.html     | 10 +--
 blog/2021/08/05/Kong-to-APISIX/index.html          | 12 +--
 .../index.html                                     | 16 ++--
 .../Apache-APISIX-in-China-Mobile-Cloud/index.html | 10 +--
 .../08/09/Apache-APISIX-in-Quliankeji/index.html   | 12 +--
 blog/2021/08/10/apisix-nginx/index.html            | 33 ++++----
 blog/2021/08/11/interview-TuZhengsong/index.html   | 12 +--
 .../index.html                                     | 10 +--
 .../index.html                                     | 10 +--
 .../index.html                                     | 16 ++--
 blog/2021/08/17/interview-airwallex/index.html     | 12 +--
 .../Auth-with-Casbin-in-Apache-APISIX/index.html   | 24 +++---
 .../08/19/go-makes-Apache-APISIX-better/index.html | 18 ++---
 blog/2021/08/19/weekly-report/index.html           | 12 +--
 blog/2021/08/21/shanghai-meetup/index.html         | 12 +--
 blog/2021/08/23/ApacheCon-Asia-2021/index.html     | 12 +--
 blog/2021/08/23/weekly-report/index.html           | 12 +--
 blog/2021/08/24/shanghai-meetup-recap/index.html   | 12 +--
 .../Auth-with-Casbin-in-Apache-APISIX/index.html   | 12 +--
 .../index.html                                     | 21 ++---
 .../index.html                                     | 12 +--
 .../08/27/release-apache-apisix-2.9/index.html     | 10 +--
 blog/2021/08/30/Ingress-Meeting/index.html         | 16 ++--
 blog/2021/08/30/weekly-report/index.html           | 12 +--
 .../index.html"                                    | 14 ++--
 .../index.html                                     | 12 +--
 blog/2021/09/07/how-to-use-apisix-auth/index.html  | 10 +--
 blog/2021/09/07/iQIYI-usercase/index.html          | 10 +--
 .../index.html                                     | 10 +--
 .../09/13/china-mobile-cloud-usercase/index.html   | 10 +--
 blog/2021/09/14/youzan/index.html                  | 10 +--
 blog/2021/09/15/weekly-report/index.html           | 10 +--
 blog/2021/09/16/tencent-cloud/index.html           | 10 +--
 blog/2021/09/18/xiaodian-usercase/index.html       | 10 +--
 blog/2021/09/24/youpaicloud-usercase/index.html    | 10 +--
 blog/2021/09/28/WPS-usercase/index.html            | 10 +--
 .../09/29/release-apache-apisix-2.10/index.html    | 10 +--
 blog/2021/09/30/weekly-report/index.html           | 10 +--
 blog/2021/10/01/openEuler/index.html               | 10 +--
 blog/2021/10/09/apisix-ingress-techblog/index.html | 10 +--
 .../index.html                                     | 10 +--
 blog/2021/10/14/weekly-report-1014/index.html      | 10 +--
 blog/2021/10/18/meetup/index.html                  | 10 +--
 blog/2021/10/22/cert-manager-in-ingress/index.html | 10 +--
 blog/2021/10/26/APISIX-Ingress/index.html          | 10 +--
 blog/2021/10/29/Extension-guide/index.html         | 10 +--
 blog/2021/11/02/weekly-report-1031/index.html      | 10 +--
 blog/archive/index.html                            | 10 +--
 blog/atom.xml                                      | 92 +++++++++++-----------
 blog/index.html                                    | 10 +--
 blog/page/2/index.html                             | 10 +--
 blog/page/3/index.html                             | 12 +--
 blog/page/4/index.html                             | 10 +--
 blog/page/5/index.html                             | 10 +--
 blog/page/6/index.html                             | 10 +--
 blog/page/7/index.html                             | 10 +--
 blog/page/8/index.html                             | 10 +--
 blog/rss.xml                                       | 74 ++++++++---------
 blog/tags/community/index.html                     | 10 +--
 blog/tags/events/index.html                        | 10 +--
 blog/tags/index.html                               | 10 +--
 blog/tags/interview/index.html                     | 10 +--
 blog/tags/practical-case/index.html                | 12 +--
 blog/tags/release/index.html                       | 10 +--
 blog/tags/security/index.html                      | 10 +--
 blog/tags/technology/index.html                    | 10 +--
 blog/tags/user-case/index.html                     | 10 +--
 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/2.9/FAQ/index.html                     |  8 +-
 docs/apisix/2.9/IGNORE_DOC/index.html              |  8 +-
 docs/apisix/2.9/admin-api/index.html               |  8 +-
 .../2.9/architecture-design/apisix/index.html      |  8 +-
 .../2.9/architecture-design/consumer/index.html    |  8 +-
 .../2.9/architecture-design/debug-mode/index.html  |  8 +-
 .../2.9/architecture-design/global-rule/index.html |  8 +-
 docs/apisix/2.9/architecture-design/index.html     |  8 +-
 .../architecture-design/plugin-config/index.html   |  8 +-
 .../2.9/architecture-design/plugin/index.html      |  8 +-
 .../2.9/architecture-design/route/index.html       |  8 +-
 .../2.9/architecture-design/router/index.html      |  8 +-
 .../2.9/architecture-design/script/index.html      |  8 +-
 .../2.9/architecture-design/service/index.html     |  8 +-
 .../2.9/architecture-design/upstream/index.html    |  8 +-
 docs/apisix/2.9/aws/index.html                     |  8 +-
 docs/apisix/2.9/batch-processor/index.html         |  8 +-
 docs/apisix/2.9/benchmark/index.html               |  8 +-
 docs/apisix/2.9/certificate/index.html             |  8 +-
 docs/apisix/2.9/control-api/index.html             |  8 +-
 .../2.9/customize-nginx-configuration/index.html   |  8 +-
 docs/apisix/2.9/debug-function/index.html          |  8 +-
 docs/apisix/2.9/discovery/consul_kv/index.html     |  8 +-
 docs/apisix/2.9/discovery/dns/index.html           |  8 +-
 docs/apisix/2.9/discovery/eureka/index.html        |  8 +-
 docs/apisix/2.9/discovery/index.html               |  8 +-
 docs/apisix/2.9/discovery/nacos/index.html         |  8 +-
 docs/apisix/2.9/dns/index.html                     |  8 +-
 .../index.html                                     |  8 +-
 docs/apisix/2.9/external-plugin/index.html         |  8 +-
 docs/apisix/2.9/getting-started/index.html         |  8 +-
 docs/apisix/2.9/grpc-proxy/index.html              |  8 +-
 docs/apisix/2.9/health-check/index.html            |  8 +-
 docs/apisix/2.9/how-to-build/index.html            |  8 +-
 docs/apisix/2.9/https/index.html                   |  8 +-
 docs/apisix/2.9/install-dependencies/index.html    |  8 +-
 .../2.9/internal/testing-framework/index.html      |  8 +-
 docs/apisix/2.9/mtls/index.html                    |  8 +-
 docs/apisix/2.9/plugin-develop/index.html          |  8 +-
 docs/apisix/2.9/plugin-interceptors/index.html     |  8 +-
 docs/apisix/2.9/plugins/api-breaker/index.html     |  8 +-
 docs/apisix/2.9/plugins/authz-casbin/index.html    |  8 +-
 docs/apisix/2.9/plugins/authz-keycloak/index.html  |  8 +-
 docs/apisix/2.9/plugins/basic-auth/index.html      |  8 +-
 docs/apisix/2.9/plugins/batch-requests/index.html  |  8 +-
 docs/apisix/2.9/plugins/client-control/index.html  |  8 +-
 .../2.9/plugins/consumer-restriction/index.html    |  8 +-
 docs/apisix/2.9/plugins/cors/index.html            |  8 +-
 docs/apisix/2.9/plugins/dubbo-proxy/index.html     |  8 +-
 docs/apisix/2.9/plugins/echo/index.html            |  8 +-
 .../apisix/2.9/plugins/error-log-logger/index.html |  8 +-
 .../2.9/plugins/ext-plugin-post-req/index.html     |  8 +-
 .../2.9/plugins/ext-plugin-pre-req/index.html      |  8 +-
 docs/apisix/2.9/plugins/fault-injection/index.html |  8 +-
 docs/apisix/2.9/plugins/grpc-transcode/index.html  |  8 +-
 docs/apisix/2.9/plugins/gzip/index.html            |  8 +-
 docs/apisix/2.9/plugins/hmac-auth/index.html       |  8 +-
 docs/apisix/2.9/plugins/http-logger/index.html     |  8 +-
 docs/apisix/2.9/plugins/index.html                 |  8 +-
 docs/apisix/2.9/plugins/ip-restriction/index.html  |  8 +-
 docs/apisix/2.9/plugins/jwt-auth/index.html        |  8 +-
 docs/apisix/2.9/plugins/kafka-logger/index.html    |  8 +-
 docs/apisix/2.9/plugins/key-auth/index.html        |  8 +-
 docs/apisix/2.9/plugins/limit-conn/index.html      |  8 +-
 docs/apisix/2.9/plugins/limit-count/index.html     |  8 +-
 docs/apisix/2.9/plugins/limit-req/index.html       |  8 +-
 docs/apisix/2.9/plugins/log-rotate/index.html      |  8 +-
 docs/apisix/2.9/plugins/mqtt-proxy/index.html      |  8 +-
 docs/apisix/2.9/plugins/node-status/index.html     |  8 +-
 docs/apisix/2.9/plugins/openid-connect/index.html  |  8 +-
 docs/apisix/2.9/plugins/prometheus/index.html      |  8 +-
 docs/apisix/2.9/plugins/proxy-cache/index.html     |  8 +-
 docs/apisix/2.9/plugins/proxy-mirror/index.html    |  8 +-
 docs/apisix/2.9/plugins/proxy-rewrite/index.html   |  8 +-
 docs/apisix/2.9/plugins/real-ip/index.html         |  8 +-
 docs/apisix/2.9/plugins/redirect/index.html        |  8 +-
 .../2.9/plugins/referer-restriction/index.html     |  8 +-
 docs/apisix/2.9/plugins/request-id/index.html      |  8 +-
 .../2.9/plugins/request-validation/index.html      |  8 +-
 .../apisix/2.9/plugins/response-rewrite/index.html |  8 +-
 docs/apisix/2.9/plugins/server-info/index.html     |  8 +-
 docs/apisix/2.9/plugins/serverless/index.html      |  8 +-
 docs/apisix/2.9/plugins/skywalking/index.html      |  8 +-
 docs/apisix/2.9/plugins/sls-logger/index.html      |  8 +-
 docs/apisix/2.9/plugins/syslog/index.html          |  8 +-
 docs/apisix/2.9/plugins/tcp-logger/index.html      |  8 +-
 docs/apisix/2.9/plugins/traffic-split/index.html   |  8 +-
 docs/apisix/2.9/plugins/ua-restriction/index.html  |  8 +-
 docs/apisix/2.9/plugins/udp-logger/index.html      |  8 +-
 docs/apisix/2.9/plugins/uri-blocker/index.html     |  8 +-
 docs/apisix/2.9/plugins/wolf-rbac/index.html       |  8 +-
 docs/apisix/2.9/plugins/zipkin/index.html          |  8 +-
 docs/apisix/2.9/powered-by/index.html              |  8 +-
 docs/apisix/2.9/profile/index.html                 |  8 +-
 docs/apisix/2.9/router-radixtree/index.html        |  8 +-
 docs/apisix/2.9/stand-alone/index.html             |  8 +-
 docs/apisix/2.9/stream-proxy/index.html            |  8 +-
 docs/apisix/2.9/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/ldap-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/next/wasm/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/2.8/FAQ/index.html                  |  8 +-
 docs/dashboard/2.8/I18N_USER_GUIDE/index.html      |  8 +-
 docs/dashboard/2.8/IGNORE_DOC/index.html           |  8 +-
 .../2.8/IMPORT_OPENAPI_USER_GUIDE/index.html       |  8 +-
 docs/dashboard/2.8/USER_GUIDE/index.html           |  8 +-
 docs/dashboard/2.8/api/api/index.html              |  8 +-
 docs/dashboard/2.8/back-end-tests/index.html       |  8 +-
 docs/dashboard/2.8/deploy-with-docker/index.html   |  8 +-
 docs/dashboard/2.8/deploy-with-rpm/index.html      |  8 +-
 docs/dashboard/2.8/deploy/index.html               |  8 +-
 docs/dashboard/2.8/develop/index.html              |  8 +-
 docs/dashboard/2.8/front-end-e2e/index.html        |  8 +-
 docs/dashboard/2.8/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             | 10 +--
 docs/dashboard/next/back-end-tests/index.html      |  8 +-
 docs/dashboard/next/deploy-with-docker/index.html  | 14 ++--
 docs/dashboard/next/deploy-with-rpm/index.html     | 12 +--
 docs/dashboard/next/deploy/index.html              | 12 +--
 docs/dashboard/next/develop/index.html             | 10 +--
 docs/dashboard/next/front-end-e2e/index.html       |  8 +-
 docs/dashboard/next/install/index.html             | 35 ++++++++
 docs/dashboard/next/tags/index.html                |  8 +-
 docs/dashboard/tags/index.html                     |  8 +-
 docs/docker/IGNORE_DOC/index.html                  |  8 +-
 docs/docker/apisix-2.10.0/IGNORE_DOC/index.html    |  8 +-
 docs/docker/apisix-2.10.0/build/index.html         |  8 +-
 docs/docker/apisix-2.10.0/example/index.html       |  8 +-
 docs/docker/apisix-2.10.0/manual/index.html        |  8 +-
 docs/docker/apisix-2.10.0/tags/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/dashboard-2.7.1/IGNORE_DOC/index.html  |  8 +-
 docs/docker/dashboard-2.7.1/build/index.html       |  8 +-
 docs/docker/dashboard-2.7.1/example/index.html     |  8 +-
 docs/docker/dashboard-2.7.1/manual/index.html      |  8 +-
 docs/docker/dashboard-2.7.1/tags/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/community/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 +-
 .../index.html                                     |  8 +-
 .../index.html                                     |  8 +-
 docs/ingress-controller/practices/mtls/index.html  |  8 +-
 .../practices/proxy-grpc-service/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/index.html                               |  8 +-
 events/archive/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 +-
 .../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                                  |  8 +-
 sections/architecture/index.html                   |  8 +-
 sections/benefits/index.html                       |  8 +-
 sections/comparison/index.html                     |  8 +-
 sections/components/arrowAnim/index.html           |  8 +-
 sections/components/eventPosterCard/index.html     |  8 +-
 sections/components/heroCanvas/index.html          |  8 +-
 sections/components/ossCanvas/index.html           |  8 +-
 sections/endcta/index.html                         |  8 +-
 sections/features/index.html                       |  8 +-
 sections/heroSection/index.html                    |  8 +-
 sections/home-events-section/index.html            |  8 +-
 sections/opensourcePromo/index.html                |  8 +-
 showcase/index.html                                |  8 +-
 sitemap.xml                                        |  2 +-
 team/index.html                                    |  8 +-
 zh/404.html                                        |  8 +-
 .../index.html                                     |  8 +-
 .../index.html                                     | 12 +--
 .../Apache-APISIX-Incubator-Journey/index.html     |  8 +-
 .../Apache-APISIX-Kubernetes-Ingress/index.html    |  8 +-
 .../Apache-APISIX-in-China-Mobile-Cloud/index.html | 12 +--
 .../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 +-
 zh/assets/js/034277d8.cbbb017d.js                  |  1 -
 zh/assets/js/034277d8.ff18914b.js                  |  1 +
 zh/assets/js/09b17eb5.c1032360.js                  |  1 +
 zh/assets/js/09b17eb5.db8f8982.js                  |  1 -
 zh/assets/js/19945770.52f60e2a.js                  |  1 -
 zh/assets/js/19945770.d2ae52eb.js                  |  1 +
 zh/assets/js/2a47f4b7.27060439.js                  |  1 +
 zh/assets/js/3393d167.010b17fc.js                  |  1 +
 zh/assets/js/3393d167.d3153ca9.js                  |  1 -
 zh/assets/js/358566b4.57eb8635.js                  |  1 +
 zh/assets/js/358566b4.88d85924.js                  |  1 -
 zh/assets/js/3dc9f306.01ef5e7b.js                  |  1 +
 zh/assets/js/3dc9f306.98a38e88.js                  |  1 -
 zh/assets/js/40fb2fae.06d1d697.js                  |  1 -
 zh/assets/js/40fb2fae.5c8616d6.js                  |  1 +
 zh/assets/js/4c20006b.732e402a.js                  |  1 -
 zh/assets/js/4c20006b.9004d17e.js                  |  1 +
 zh/assets/js/4f34f66f.4a0e578d.js                  |  1 +
 zh/assets/js/4f34f66f.bb64471c.js                  |  1 -
 zh/assets/js/4f9f5708.8fe86b7e.js                  |  1 -
 zh/assets/js/4f9f5708.be12e0e9.js                  |  1 +
 zh/assets/js/50facf8e.8456019e.js                  |  1 -
 zh/assets/js/50facf8e.b808f93e.js                  |  1 +
 zh/assets/js/542fd41f.70496dad.js                  |  1 -
 zh/assets/js/542fd41f.a6c38139.js                  |  1 +
 zh/assets/js/5b0fa993.1867de56.js                  |  1 -
 zh/assets/js/5b0fa993.fb5304ae.js                  |  1 +
 zh/assets/js/601c6eaa.2a2a378b.js                  |  1 -
 zh/assets/js/601c6eaa.54c46dbc.js                  |  1 +
 zh/assets/js/65099176.43abd54c.js                  |  1 +
 zh/assets/js/65099176.a6ed2a04.js                  |  1 -
 zh/assets/js/66fbb9c2.c85262ea.js                  |  1 +
 zh/assets/js/66fbb9c2.f01441ba.js                  |  1 -
 zh/assets/js/7af3052c.1a0c576d.js                  |  1 -
 zh/assets/js/7af3052c.2ef4cdbc.js                  |  1 +
 zh/assets/js/80791de8.622c0beb.js                  |  1 +
 zh/assets/js/80791de8.c9c6b9c5.js                  |  1 -
 zh/assets/js/81f18807.a1095e17.js                  |  1 -
 zh/assets/js/81f18807.d221180c.js                  |  1 +
 zh/assets/js/84d2a1f2.50fb1369.js                  |  1 -
 zh/assets/js/84d2a1f2.da2bcd92.js                  |  1 +
 zh/assets/js/8e784bf3.791646cc.js                  |  1 +
 zh/assets/js/8e784bf3.851e97ae.js                  |  1 -
 zh/assets/js/8f700fa6.825c4c0f.js                  |  1 +
 zh/assets/js/8f700fa6.bfbca60f.js                  |  1 -
 zh/assets/js/90fc8a94.38c41e5c.js                  |  1 -
 zh/assets/js/90fc8a94.e071fdde.js                  |  1 +
 zh/assets/js/927d70e2.18046d11.js                  |  1 +
 zh/assets/js/927d70e2.d0456092.js                  |  1 -
 zh/assets/js/941960b1.2db5fe0a.js                  |  1 +
 zh/assets/js/941960b1.7c8ecc82.js                  |  1 -
 zh/assets/js/adbb350b.88e13ab2.js                  |  1 +
 zh/assets/js/adbb350b.abca80c6.js                  |  1 -
 zh/assets/js/bd3a6b69.c42856fc.js                  |  1 -
 zh/assets/js/bd3a6b69.cd092955.js                  |  1 +
 zh/assets/js/bd42b48a.4279b45f.js                  |  1 +
 zh/assets/js/bd42b48a.54e9f158.js                  |  1 -
 zh/assets/js/d18db9b0.6de5dd1d.js                  |  1 +
 zh/assets/js/d18db9b0.92e65845.js                  |  1 -
 zh/assets/js/f243156b.a8f59618.js                  |  1 +
 zh/assets/js/f243156b.af350867.js                  |  1 -
 zh/assets/js/f4e9d3f4.0472b541.js                  |  1 +
 zh/assets/js/f4e9d3f4.ae42e287.js                  |  1 -
 zh/assets/js/main.10a6664e.js                      |  2 +
 .../assets/js/main.10a6664e.js.LICENSE.txt         |  0
 zh/assets/js/main.c8b4690f.js                      |  2 -
 zh/assets/js/runtime~main.82560ac8.js              |  1 -
 zh/assets/js/runtime~main.fca2fccf.js              |  1 +
 .../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 +-
 zh/blog/2021/05/24/Tencent-Games/index.html        |  8 +-
 .../05/25/Apache APISIX 2.6.0-Release/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/index.html     |  8 +-
 .../etcd3-support-HTTP-access-perfectly/index.html |  8 +-
 .../07/06/celebrate-200-contributors/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 +-
 .../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         | 14 ++--
 .../2021/08/11/interview-TuZhengsong/index.html    |  8 +-
 .../index.html                                     |  8 +-
 .../index.html                                     |  8 +-
 .../index.html                                     | 16 ++--
 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 +-
 zh/blog/2021/08/19/weekly-report/index.html        |  8 +-
 zh/blog/2021/08/21/shanghai-meetup/index.html      |  8 +-
 zh/blog/2021/08/23/ApacheCon-Asia-2021/index.html  |  8 +-
 zh/blog/2021/08/23/weekly-report/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 +-
 zh/blog/2021/08/30/weekly-report/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                                     |  8 +-
 .../09/13/china-mobile-cloud-usercase/index.html   |  8 +-
 zh/blog/2021/09/14/youzan/index.html               |  8 +-
 zh/blog/2021/09/15/weekly-report/index.html        |  8 +-
 zh/blog/2021/09/16/tencent-cloud/index.html        |  8 +-
 zh/blog/2021/09/18/xiaodian-usercase/index.html    |  8 +-
 zh/blog/2021/09/24/youpaicloud-usercase/index.html |  8 +-
 zh/blog/2021/09/28/WPS-usercase/index.html         |  8 +-
 .../09/29/release-apache-apisix-2.10/index.html    |  8 +-
 zh/blog/2021/09/30/weekly-report/index.html        |  8 +-
 zh/blog/2021/10/01/openEuler/index.html            |  8 +-
 .../2021/10/09/apisix-ingress-techblog/index.html  |  8 +-
 .../index.html                                     |  8 +-
 zh/blog/2021/10/14/weekly-report-1014/index.html   |  8 +-
 zh/blog/2021/10/18/meetup/index.html               |  8 +-
 .../2021/10/22/cert-manager-in-ingress/index.html  |  8 +-
 zh/blog/2021/10/26/APISIX-Ingress/index.html       |  8 +-
 zh/blog/2021/10/29/Extension-guide/index.html      |  8 +-
 zh/blog/2021/11/02/weekly-report-1031/index.html   |  8 +-
 zh/blog/archive/index.html                         |  8 +-
 zh/blog/index.html                                 |  8 +-
 zh/blog/page/2/index.html                          |  8 +-
 zh/blog/page/3/index.html                          |  8 +-
 zh/blog/page/4/index.html                          | 10 +--
 zh/blog/page/5/index.html                          |  8 +-
 zh/blog/page/6/index.html                          |  8 +-
 zh/blog/page/7/index.html                          |  8 +-
 zh/blog/page/8/index.html                          |  8 +-
 zh/blog/tags/community/index.html                  |  8 +-
 zh/blog/tags/events/index.html                     |  8 +-
 zh/blog/tags/index.html                            |  8 +-
 zh/blog/tags/interview/index.html                  |  8 +-
 zh/blog/tags/practical-case/index.html             | 10 +--
 zh/blog/tags/release/index.html                    |  8 +-
 zh/blog/tags/security/index.html                   |  8 +-
 zh/blog/tags/technology/index.html                 |  8 +-
 zh/blog/tags/user-case/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/2.9/FAQ/index.html                  |  8 +-
 zh/docs/apisix/2.9/IGNORE_DOC/index.html           |  8 +-
 zh/docs/apisix/2.9/admin-api/index.html            |  8 +-
 .../2.9/architecture-design/apisix/index.html      |  8 +-
 .../2.9/architecture-design/consumer/index.html    |  8 +-
 .../2.9/architecture-design/debug-mode/index.html  |  8 +-
 .../2.9/architecture-design/global-rule/index.html |  8 +-
 zh/docs/apisix/2.9/architecture-design/index.html  |  8 +-
 .../architecture-design/plugin-config/index.html   |  8 +-
 .../2.9/architecture-design/plugin/index.html      |  8 +-
 .../2.9/architecture-design/route/index.html       |  8 +-
 .../2.9/architecture-design/router/index.html      |  8 +-
 .../2.9/architecture-design/script/index.html      |  8 +-
 .../2.9/architecture-design/service/index.html     |  8 +-
 .../2.9/architecture-design/upstream/index.html    |  8 +-
 zh/docs/apisix/2.9/aws/index.html                  |  8 +-
 zh/docs/apisix/2.9/batch-processor/index.html      |  8 +-
 zh/docs/apisix/2.9/benchmark/index.html            |  8 +-
 zh/docs/apisix/2.9/certificate/index.html          |  8 +-
 zh/docs/apisix/2.9/control-api/index.html          |  8 +-
 .../2.9/customize-nginx-configuration/index.html   |  8 +-
 zh/docs/apisix/2.9/debug-function/index.html       |  8 +-
 zh/docs/apisix/2.9/discovery/consul_kv/index.html  |  8 +-
 zh/docs/apisix/2.9/discovery/dns/index.html        |  8 +-
 zh/docs/apisix/2.9/discovery/eureka/index.html     |  8 +-
 zh/docs/apisix/2.9/discovery/index.html            |  8 +-
 zh/docs/apisix/2.9/discovery/nacos/index.html      |  8 +-
 zh/docs/apisix/2.9/dns/index.html                  |  8 +-
 .../index.html                                     |  8 +-
 zh/docs/apisix/2.9/external-plugin/index.html      |  8 +-
 zh/docs/apisix/2.9/getting-started/index.html      |  8 +-
 zh/docs/apisix/2.9/grpc-proxy/index.html           |  8 +-
 zh/docs/apisix/2.9/health-check/index.html         |  8 +-
 zh/docs/apisix/2.9/how-to-build/index.html         |  8 +-
 zh/docs/apisix/2.9/https/index.html                |  8 +-
 zh/docs/apisix/2.9/install-dependencies/index.html |  8 +-
 .../2.9/internal/testing-framework/index.html      |  8 +-
 zh/docs/apisix/2.9/mtls/index.html                 |  8 +-
 zh/docs/apisix/2.9/plugin-develop/index.html       |  8 +-
 zh/docs/apisix/2.9/plugin-interceptors/index.html  |  8 +-
 zh/docs/apisix/2.9/plugins/api-breaker/index.html  |  8 +-
 zh/docs/apisix/2.9/plugins/authz-casbin/index.html |  8 +-
 .../apisix/2.9/plugins/authz-keycloak/index.html   |  8 +-
 zh/docs/apisix/2.9/plugins/basic-auth/index.html   |  8 +-
 .../apisix/2.9/plugins/batch-requests/index.html   |  8 +-
 .../apisix/2.9/plugins/client-control/index.html   |  8 +-
 .../2.9/plugins/consumer-restriction/index.html    |  8 +-
 zh/docs/apisix/2.9/plugins/cors/index.html         |  8 +-
 zh/docs/apisix/2.9/plugins/dubbo-proxy/index.html  |  8 +-
 zh/docs/apisix/2.9/plugins/echo/index.html         |  8 +-
 .../apisix/2.9/plugins/error-log-logger/index.html |  8 +-
 .../2.9/plugins/ext-plugin-post-req/index.html     |  8 +-
 .../2.9/plugins/ext-plugin-pre-req/index.html      |  8 +-
 .../apisix/2.9/plugins/fault-injection/index.html  |  8 +-
 .../apisix/2.9/plugins/grpc-transcode/index.html   |  8 +-
 zh/docs/apisix/2.9/plugins/gzip/index.html         |  8 +-
 zh/docs/apisix/2.9/plugins/hmac-auth/index.html    |  8 +-
 zh/docs/apisix/2.9/plugins/http-logger/index.html  |  8 +-
 zh/docs/apisix/2.9/plugins/index.html              |  8 +-
 .../apisix/2.9/plugins/ip-restriction/index.html   |  8 +-
 zh/docs/apisix/2.9/plugins/jwt-auth/index.html     |  8 +-
 zh/docs/apisix/2.9/plugins/kafka-logger/index.html |  8 +-
 zh/docs/apisix/2.9/plugins/key-auth/index.html     |  8 +-
 zh/docs/apisix/2.9/plugins/limit-conn/index.html   |  8 +-
 zh/docs/apisix/2.9/plugins/limit-count/index.html  |  8 +-
 zh/docs/apisix/2.9/plugins/limit-req/index.html    |  8 +-
 zh/docs/apisix/2.9/plugins/log-rotate/index.html   |  8 +-
 zh/docs/apisix/2.9/plugins/mqtt-proxy/index.html   |  8 +-
 zh/docs/apisix/2.9/plugins/node-status/index.html  |  8 +-
 .../apisix/2.9/plugins/openid-connect/index.html   |  8 +-
 zh/docs/apisix/2.9/plugins/prometheus/index.html   |  8 +-
 zh/docs/apisix/2.9/plugins/proxy-cache/index.html  |  8 +-
 zh/docs/apisix/2.9/plugins/proxy-mirror/index.html |  8 +-
 .../apisix/2.9/plugins/proxy-rewrite/index.html    |  8 +-
 zh/docs/apisix/2.9/plugins/real-ip/index.html      |  8 +-
 zh/docs/apisix/2.9/plugins/redirect/index.html     |  8 +-
 .../2.9/plugins/referer-restriction/index.html     |  8 +-
 zh/docs/apisix/2.9/plugins/request-id/index.html   |  8 +-
 .../2.9/plugins/request-validation/index.html      |  8 +-
 .../apisix/2.9/plugins/response-rewrite/index.html |  8 +-
 zh/docs/apisix/2.9/plugins/server-info/index.html  |  8 +-
 zh/docs/apisix/2.9/plugins/serverless/index.html   |  8 +-
 zh/docs/apisix/2.9/plugins/skywalking/index.html   |  8 +-
 zh/docs/apisix/2.9/plugins/sls-logger/index.html   |  8 +-
 zh/docs/apisix/2.9/plugins/syslog/index.html       |  8 +-
 zh/docs/apisix/2.9/plugins/tcp-logger/index.html   |  8 +-
 .../apisix/2.9/plugins/traffic-split/index.html    |  8 +-
 .../apisix/2.9/plugins/ua-restriction/index.html   |  8 +-
 zh/docs/apisix/2.9/plugins/udp-logger/index.html   |  8 +-
 zh/docs/apisix/2.9/plugins/uri-blocker/index.html  |  8 +-
 zh/docs/apisix/2.9/plugins/wolf-rbac/index.html    |  8 +-
 zh/docs/apisix/2.9/plugins/zipkin/index.html       |  8 +-
 zh/docs/apisix/2.9/powered-by/index.html           |  8 +-
 zh/docs/apisix/2.9/profile/index.html              |  8 +-
 zh/docs/apisix/2.9/router-radixtree/index.html     |  8 +-
 zh/docs/apisix/2.9/stand-alone/index.html          |  8 +-
 zh/docs/apisix/2.9/stream-proxy/index.html         |  8 +-
 zh/docs/apisix/2.9/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/ldap-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/next/wasm/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/2.8/FAQ/index.html               |  8 +-
 zh/docs/dashboard/2.8/I18N_USER_GUIDE/index.html   |  8 +-
 zh/docs/dashboard/2.8/IGNORE_DOC/index.html        |  8 +-
 .../2.8/IMPORT_OPENAPI_USER_GUIDE/index.html       |  8 +-
 zh/docs/dashboard/2.8/USER_GUIDE/index.html        |  8 +-
 zh/docs/dashboard/2.8/api/api/index.html           |  8 +-
 zh/docs/dashboard/2.8/back-end-tests/index.html    |  8 +-
 .../dashboard/2.8/deploy-with-docker/index.html    |  8 +-
 zh/docs/dashboard/2.8/deploy-with-rpm/index.html   |  8 +-
 zh/docs/dashboard/2.8/deploy/index.html            |  8 +-
 zh/docs/dashboard/2.8/develop/index.html           |  8 +-
 zh/docs/dashboard/2.8/front-end-e2e/index.html     |  8 +-
 zh/docs/dashboard/2.8/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          | 10 +--
 zh/docs/dashboard/next/back-end-tests/index.html   |  8 +-
 .../dashboard/next/deploy-with-docker/index.html   | 14 ++--
 zh/docs/dashboard/next/deploy-with-rpm/index.html  | 12 +--
 zh/docs/dashboard/next/deploy/index.html           | 12 +--
 zh/docs/dashboard/next/develop/index.html          | 10 +--
 zh/docs/dashboard/next/front-end-e2e/index.html    |  8 +-
 zh/docs/dashboard/next/install/index.html          | 35 ++++++++
 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.10.0/IGNORE_DOC/index.html |  8 +-
 zh/docs/docker/apisix-2.10.0/build/index.html      |  8 +-
 zh/docs/docker/apisix-2.10.0/example/index.html    |  8 +-
 zh/docs/docker/apisix-2.10.0/manual/index.html     |  8 +-
 zh/docs/docker/apisix-2.10.0/tags/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 +-
 .../docker/dashboard-2.7.1/IGNORE_DOC/index.html   |  8 +-
 zh/docs/docker/dashboard-2.7.1/build/index.html    |  8 +-
 zh/docs/docker/dashboard-2.7.1/example/index.html  |  8 +-
 zh/docs/docker/dashboard-2.7.1/manual/index.html   |  8 +-
 zh/docs/docker/dashboard-2.7.1/tags/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/community/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 +-
 .../index.html                                     |  8 +-
 .../index.html                                     |  8 +-
 .../ingress-controller/practices/mtls/index.html   |  8 +-
 .../practices/proxy-grpc-service/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/index.html                            |  8 +-
 zh/events/archive/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 +-
 .../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/sections/architecture/index.html                |  8 +-
 zh/sections/benefits/index.html                    |  8 +-
 zh/sections/comparison/index.html                  |  8 +-
 zh/sections/components/arrowAnim/index.html        |  8 +-
 zh/sections/components/eventPosterCard/index.html  |  8 +-
 zh/sections/components/heroCanvas/index.html       |  8 +-
 zh/sections/components/ossCanvas/index.html        |  8 +-
 zh/sections/endcta/index.html                      |  8 +-
 zh/sections/features/index.html                    |  8 +-
 zh/sections/heroSection/index.html                 |  8 +-
 zh/sections/home-events-section/index.html         |  8 +-
 zh/sections/opensourcePromo/index.html             |  8 +-
 zh/showcase/index.html                             |  8 +-
 zh/sitemap.xml                                     |  2 +-
 zh/team/index.html                                 |  8 +-
 2496 files changed, 9532 insertions(+), 9458 deletions(-)

diff --git a/404.html b/404.html
index 8a16f7e..7496c62 100644
--- a/404.html
+++ b/404.html
@@ -16,13 +16,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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 7aeaad9..a01e860 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
@@ -16,13 +16,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" 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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 d1d902a..5196766 100644
--- a/articles/Apache-APISIX-From-OpenSource-Commercialization/index.html
+++ b/articles/Apache-APISIX-From-OpenSource-Commercialization/index.html
@@ -15,14 +15,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">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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.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">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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 ff444fc..5425b8b 100644
--- a/articles/Apache-APISIX-Incubator-Journey/index.html
+++ b/articles/Apache-APISIX-Incubator-Journey/index.html
@@ -16,13 +16,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" 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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 d354c4d..c923584 100644
--- a/articles/Apache-APISIX-Kubernetes-Ingress/index.html
+++ b/articles/Apache-APISIX-Kubernetes-Ingress/index.html
@@ -16,13 +16,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" 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="h [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 48d090a..72b047e 100644
--- a/articles/Apache-APISIX-in-China-Mobile-Cloud/index.html
+++ b/articles/Apache-APISIX-in-China-Mobile-Cloud/index.html
@@ -15,14 +15,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">Apache APISIX 在移动云对象存储 EOS 的应用与实践 | 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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.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">Apache APISIX 在移动云对象存储 EOS 的应用与实践 | 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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 fd77e92..2eb7826 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
@@ -16,13 +16,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" 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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 6825336..613b965 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
@@ -16,13 +16,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" 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.apa [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 ebc19ed..ce14be9 100644
--- a/articles/Rendering-Community-Events-Using-ECharts/index.html
+++ b/articles/Rendering-Community-Events-Using-ECharts/index.html
@@ -16,13 +16,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" 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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 f5e6dd4..94c9cd7 100644
--- a/articles/Speed-Limiting-With-Apache-APISIX/index.html
+++ b/articles/Speed-Limiting-With-Apache-APISIX/index.html
@@ -16,13 +16,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" 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.apac [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 c1f2b2d..3dedcb7 100644
--- a/articles/Test-Apache-APISIX-Resilience-With-Chaos-Mesh/index.html
+++ b/articles/Test-Apache-APISIX-Resilience-With-Chaos-Mesh/index.html
@@ -16,13 +16,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" 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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 c924685..9687764 100644
--- a/articles/The-Appeal-of-OpenSource/index.html
+++ b/articles/The-Appeal-of-OpenSource/index.html
@@ -16,13 +16,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" 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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 d929ece..b5b152c 100644
--- a/articles/The-Evolution-of-Apache-APISIX/index.html
+++ b/articles/The-Evolution-of-Apache-APISIX/index.html
@@ -16,13 +16,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" 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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 e7a3108..bf98ab7 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
@@ -16,13 +16,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" 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.apa [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/articles/archive/index.html b/articles/archive/index.html
index 4053ade..a8699a4 100644
--- a/articles/archive/index.html
+++ b/articles/archive/index.html
@@ -16,13 +16,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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/articles/atom.xml b/articles/atom.xml
index 02bb558..1942359 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-11-02T05:04:11.998Z</updated>
+    <updated>2021-11-02T10:25:21.559Z</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-11-02T05:04:11.998Z</updated>
+        <updated>2021-11-02T10:25:21.559Z</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-11-02T05:04:11.998Z</updated>
+        <updated>2021-11-02T10:25:21.559Z</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 30afc23..2966747 100644
--- a/articles/index.html
+++ b/articles/index.html
@@ -16,13 +16,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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 335a518..6730873 100644
--- a/articles/page/2/index.html
+++ b/articles/page/2/index.html
@@ -16,13 +16,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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/articles/rss.xml b/articles/rss.xml
index 57d3863..3dccde1 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>Tue, 02 Nov 2021 05:04:11 GMT</lastBuildDate>
+        <lastBuildDate>Tue, 02 Nov 2021 10:25:21 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>Tue, 02 Nov 2021 05:04:11 GMT</pubDate>
+            <pubDate>Tue, 02 Nov 2021 10:25:21 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>Tue, 02 Nov 2021 05:04:11 GMT</pubDate>
+            <pubDate>Tue, 02 Nov 2021 10:25:21 GMT</pubDate>
             <description><![CDATA[该演讲主题主要是讲述 Apache APISIX 在中国移动公有云对象存储 EOS 中的应用与实践经验分享。首先介绍了中国移动公有云建设规划及对象存储产品发展演进历程,然后阐述了我们为什么选择 APISIX 作为负载均衡网关,并对 EOS 流量治理架构演进三个阶段进行进行了详细介绍。同时,我们还分享了基于 APISIX 我们解决了哪些实际生产问题,做了哪些方案及开发工作,最后对我们未来的演进做了一些规划说明。]]></description>
         </item>
         <item>
diff --git a/assets/js/034277d8.0a5a4055.js b/assets/js/034277d8.0a5a4055.js
deleted file mode 100644
index 050855c..0000000
--- a/assets/js/034277d8.0a5a4055.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[42223],{3905:function(t,a,e){e.d(a,{Zo:function(){return k},kt:function(){return g}});var n=e(67294);function r(t,a,e){return a in t?Object.defineProperty(t,a,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[a]=e,t}function l(t,a){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);a&&(n=n.filter((function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable}))),e.push.apply(e [...]
\ No newline at end of file
diff --git a/assets/js/034277d8.394923de.js b/assets/js/034277d8.394923de.js
new file mode 100644
index 0000000..228e2c8
--- /dev/null
+++ b/assets/js/034277d8.394923de.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[42223],{3905:function(t,a,e){e.d(a,{Zo:function(){return k},kt:function(){return g}});var n=e(67294);function r(t,a,e){return a in t?Object.defineProperty(t,a,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[a]=e,t}function l(t,a){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);a&&(n=n.filter((function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable}))),e.push.apply(e [...]
\ No newline at end of file
diff --git a/assets/js/047905fd.b591623e.js b/assets/js/047905fd.b591623e.js
new file mode 100644
index 0000000..741b546
--- /dev/null
+++ b/assets/js/047905fd.b591623e.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[56335],{3905:function(e,t,a){a.d(t,{Zo:function(){return l},kt:function(){return d}});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(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/047905fd.cb10bcdc.js b/assets/js/047905fd.cb10bcdc.js
deleted file mode 100644
index 96344ff..0000000
--- a/assets/js/047905fd.cb10bcdc.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[56335],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return I}});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n [...]
\ No newline at end of file
diff --git a/assets/js/06e982b6.a67b3fbf.js b/assets/js/06e982b6.a67b3fbf.js
deleted file mode 100644
index 81cf46c..0000000
--- a/assets/js/06e982b6.a67b3fbf.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[73838],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return d}});var a=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n [...]
\ No newline at end of file
diff --git a/assets/js/06e982b6.e79c8cab.js b/assets/js/06e982b6.e79c8cab.js
new file mode 100644
index 0000000..1a57a53
--- /dev/null
+++ b/assets/js/06e982b6.e79c8cab.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[73838],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return d}});var a=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n [...]
\ No newline at end of file
diff --git a/assets/js/09b17eb5.18304210.js b/assets/js/09b17eb5.18304210.js
deleted file mode 100644
index 4748bac..0000000
--- a/assets/js/09b17eb5.18304210.js
+++ /dev/null
@@ -1 +0,0 @@
-"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 o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r [...]
\ No newline at end of file
diff --git a/assets/js/09b17eb5.7ff54d0c.js b/assets/js/09b17eb5.7ff54d0c.js
new file mode 100644
index 0000000..aea59cc
--- /dev/null
+++ b/assets/js/09b17eb5.7ff54d0c.js
@@ -0,0 +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 o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r [...]
\ No newline at end of file
diff --git a/assets/js/163cd848.39a37859.js b/assets/js/163cd848.39a37859.js
new file mode 100644
index 0000000..de10472
--- /dev/null
+++ b/assets/js/163cd848.39a37859.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9864],{3905:function(e,t,n){n.d(t,{Zo:function(){return p},kt:function(){return m}});var a=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n, [...]
\ No newline at end of file
diff --git a/assets/js/163cd848.d581db16.js b/assets/js/163cd848.d581db16.js
deleted file mode 100644
index f3eb554..0000000
--- a/assets/js/163cd848.d581db16.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9864],{3905:function(e,t,a){a.d(t,{Zo:function(){return A},kt:function(){return I}});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(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/18e8ef3f.41ef369d.js b/assets/js/18e8ef3f.41ef369d.js
new file mode 100644
index 0000000..7a8261e
--- /dev/null
+++ b/assets/js/18e8ef3f.41ef369d.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[65417],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return d}});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function 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/18e8ef3f.4906895f.js b/assets/js/18e8ef3f.4906895f.js
deleted file mode 100644
index fad7384..0000000
--- a/assets/js/18e8ef3f.4906895f.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[65417],{3905:function(e,t,r){r.d(t,{Zo:function(){return l},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 o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r [...]
\ No newline at end of file
diff --git a/assets/js/197d8149.4453a417.js b/assets/js/197d8149.4453a417.js
deleted file mode 100644
index cab9648..0000000
--- a/assets/js/197d8149.4453a417.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[23680],{3905:function(e,t,n){n.d(t,{Zo:function(){return o},kt:function(){return s}});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n [...]
\ No newline at end of file
diff --git a/assets/js/197d8149.d31823f8.js b/assets/js/197d8149.d31823f8.js
new file mode 100644
index 0000000..5b6bf47
--- /dev/null
+++ b/assets/js/197d8149.d31823f8.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[23680],{3905:function(e,t,a){a.d(t,{Zo:function(){return p},kt:function(){return d}});var i=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a [...]
\ No newline at end of file
diff --git a/assets/js/19945770.5e86ba65.js b/assets/js/19945770.5e86ba65.js
deleted file mode 100644
index 8216fcc..0000000
--- a/assets/js/19945770.5e86ba65.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 p},kt:function(){return m}});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.794e17e0.js b/assets/js/19945770.794e17e0.js
new file mode 100644
index 0000000..6333c14
--- /dev/null
+++ b/assets/js/19945770.794e17e0.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[55067],{3905:function(e,t,n){n.d(t,{Zo:function(){return p},kt:function(){return m}});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/228e983c.01382677.js b/assets/js/228e983c.01382677.js
new file mode 100644
index 0000000..e1c3af2
--- /dev/null
+++ b/assets/js/228e983c.01382677.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[36493],{3905:function(e,t,n){n.d(t,{Zo:function(){return p},kt:function(){return m}});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(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/228e983c.775fd8dc.js b/assets/js/228e983c.775fd8dc.js
deleted file mode 100644
index df2c941..0000000
--- a/assets/js/228e983c.775fd8dc.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[36493],{3905:function(e,t,n){n.d(t,{Zo:function(){return l},kt:function(){return b}});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(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/271d3cbf.b3b75d31.js b/assets/js/271d3cbf.b3b75d31.js
new file mode 100644
index 0000000..37c75db
--- /dev/null
+++ b/assets/js/271d3cbf.b3b75d31.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[75692],{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/271d3cbf.f2f14913.js b/assets/js/271d3cbf.f2f14913.js
deleted file mode 100644
index dab664e..0000000
--- a/assets/js/271d3cbf.f2f14913.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[75692],{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/2a20b1ec.25c3bb3c.js b/assets/js/2a20b1ec.25c3bb3c.js
deleted file mode 100644
index c4b3471..0000000
--- a/assets/js/2a20b1ec.25c3bb3c.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[21972],{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/2a20b1ec.e015b37c.js b/assets/js/2a20b1ec.e015b37c.js
new file mode 100644
index 0000000..8e800a1
--- /dev/null
+++ b/assets/js/2a20b1ec.e015b37c.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[21972],{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/2a47f4b7.2f8d959a.js b/assets/js/2a47f4b7.2f8d959a.js
new file mode 100644
index 0000000..980d7c4
--- /dev/null
+++ b/assets/js/2a47f4b7.2f8d959a.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[10806],{3905:function(e,a,t){t.d(a,{Zo:function(){return p},kt:function(){return m}});var n=t(67294);function r(e,a,t){return a in e?Object.defineProperty(e,a,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[a]=t,e}function i(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/2a8d6e85.89b720f4.js b/assets/js/2a8d6e85.89b720f4.js
deleted file mode 100644
index eeff690..0000000
--- a/assets/js/2a8d6e85.89b720f4.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[30420],{3905:function(e,t,n){n.d(t,{Zo:function(){return l},kt:function(){return m}});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/2a8d6e85.ba35ee7f.js b/assets/js/2a8d6e85.ba35ee7f.js
new file mode 100644
index 0000000..5ce550e
--- /dev/null
+++ b/assets/js/2a8d6e85.ba35ee7f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[30420],{3905:function(e,t,n){n.d(t,{Zo:function(){return l},kt:function(){return m}});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/2d8d472d.1e666e80.js b/assets/js/2d8d472d.1e666e80.js
new file mode 100644
index 0000000..c26f50b
--- /dev/null
+++ b/assets/js/2d8d472d.1e666e80.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[89360],{3905:function(e,t,n){n.d(t,{Zo:function(){return l},kt:function(){return m}});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(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/2d8d472d.665052d9.js b/assets/js/2d8d472d.665052d9.js
deleted file mode 100644
index 19437b8..0000000
--- a/assets/js/2d8d472d.665052d9.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[89360],{3905:function(e,t,n){n.d(t,{Zo:function(){return l},kt:function(){return m}});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(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.4e9c2a26.js b/assets/js/3393d167.4e9c2a26.js
new file mode 100644
index 0000000..cf2b30e
--- /dev/null
+++ b/assets/js/3393d167.4e9c2a26.js
@@ -0,0 +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
diff --git a/assets/js/3393d167.584f172c.js b/assets/js/3393d167.584f172c.js
deleted file mode 100644
index cc4c81a..0000000
--- a/assets/js/3393d167.584f172c.js
+++ /dev/null
@@ -1 +0,0 @@
-"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/344147af.014802a2.js b/assets/js/344147af.014802a2.js
deleted file mode 100644
index 5e7381b..0000000
--- a/assets/js/344147af.014802a2.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9329],{3905:function(e,t,n){n.d(t,{Zo:function(){return c},kt:function(){return g}});var o=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n, [...]
\ No newline at end of file
diff --git a/assets/js/344147af.77761b76.js b/assets/js/344147af.77761b76.js
new file mode 100644
index 0000000..e093b3d
--- /dev/null
+++ b/assets/js/344147af.77761b76.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9329],{3905:function(e,t,n){n.d(t,{Zo:function(){return c},kt:function(){return g}});var o=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n, [...]
\ No newline at end of file
diff --git a/assets/js/358566b4.87b43330.js b/assets/js/358566b4.87b43330.js
deleted file mode 100644
index 0c9a3d6..0000000
--- a/assets/js/358566b4.87b43330.js
+++ /dev/null
@@ -1 +0,0 @@
-"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/assets/js/358566b4.9b671ba3.js b/assets/js/358566b4.9b671ba3.js
new file mode 100644
index 0000000..576380c
--- /dev/null
+++ b/assets/js/358566b4.9b671ba3.js
@@ -0,0 +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
diff --git a/assets/js/3665a1a6.39a10119.js b/assets/js/3665a1a6.39a10119.js
deleted file mode 100644
index b0d762b..0000000
--- a/assets/js/3665a1a6.39a10119.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[98275],{3905:function(e,n,t){t.d(n,{Zo:function(){return u},kt:function(){return h}});var a=t(67294);function i(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function r(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t [...]
\ No newline at end of file
diff --git a/assets/js/3665a1a6.6499a68b.js b/assets/js/3665a1a6.6499a68b.js
new file mode 100644
index 0000000..6a75e37
--- /dev/null
+++ b/assets/js/3665a1a6.6499a68b.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[98275],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return d}});var a=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n [...]
\ No newline at end of file
diff --git a/assets/js/3697b036.a02c1363.js b/assets/js/3697b036.a02c1363.js
new file mode 100644
index 0000000..9755fce
--- /dev/null
+++ b/assets/js/3697b036.a02c1363.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[29486],{3905:function(e,t,n){n.d(t,{Zo:function(){return l},kt:function(){return h}});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(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/3697b036.d395c862.js b/assets/js/3697b036.d395c862.js
deleted file mode 100644
index 39ad211..0000000
--- a/assets/js/3697b036.d395c862.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[29486],{3905:function(e,t,n){n.d(t,{Zo:function(){return l},kt:function(){return m}});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/399975a8.26724919.js b/assets/js/399975a8.26724919.js
deleted file mode 100644
index 915b12b..0000000
--- a/assets/js/399975a8.26724919.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[93482],{3905:function(e,t,a){a.d(t,{Zo:function(){return c},kt:function(){return m}});var p=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var p=Object.getOwnPropertySymbols(e);t&&(p=p.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a [...]
\ No newline at end of file
diff --git a/assets/js/399975a8.8f52f014.js b/assets/js/399975a8.8f52f014.js
new file mode 100644
index 0000000..4d9a08e
--- /dev/null
+++ b/assets/js/399975a8.8f52f014.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[93482],{3905:function(e,t,a){a.d(t,{Zo:function(){return c},kt:function(){return m}});var p=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var p=Object.getOwnPropertySymbols(e);t&&(p=p.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a [...]
\ No newline at end of file
diff --git a/assets/js/3dc9f306.35f13d24.js b/assets/js/3dc9f306.35f13d24.js
deleted file mode 100644
index 37abfae..0000000
--- a/assets/js/3dc9f306.35f13d24.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[38393],{3905:function(t,e,o){o.d(e,{Zo:function(){return l},kt:function(){return d}});var n=o(67294);function r(t,e,o){return e in t?Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[e]=o,t}function a(t,e){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),o.push.apply(o [...]
\ No newline at end of file
diff --git a/assets/js/3dc9f306.5657c26c.js b/assets/js/3dc9f306.5657c26c.js
new file mode 100644
index 0000000..b2f16ae
--- /dev/null
+++ b/assets/js/3dc9f306.5657c26c.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[38393],{3905:function(t,e,o){o.d(e,{Zo:function(){return l},kt:function(){return d}});var n=o(67294);function r(t,e,o){return e in t?Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[e]=o,t}function a(t,e){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),o.push.apply(o [...]
\ No newline at end of file
diff --git a/assets/js/4011bb80.82dab056.js b/assets/js/4011bb80.82dab056.js
new file mode 100644
index 0000000..5064a15
--- /dev/null
+++ b/assets/js/4011bb80.82dab056.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[915],{3905:function(e,t,n){n.d(t,{Zo:function(){return p},kt:function(){return m}});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,r [...]
\ No newline at end of file
diff --git a/assets/js/4011bb80.8f219ae2.js b/assets/js/4011bb80.8f219ae2.js
deleted file mode 100644
index b69ea3c..0000000
--- a/assets/js/4011bb80.8f219ae2.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[915],{3905:function(e,t,n){n.d(t,{Zo:function(){return l},kt:function(){return m}});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,r [...]
\ No newline at end of file
diff --git a/assets/js/40fb2fae.ad144744.js b/assets/js/40fb2fae.ad144744.js
deleted file mode 100644
index a2acb99..0000000
--- a/assets/js/40fb2fae.ad144744.js
+++ /dev/null
@@ -1 +0,0 @@
-"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/40fb2fae.cebe1a5d.js b/assets/js/40fb2fae.cebe1a5d.js
new file mode 100644
index 0000000..4d1ff9c
--- /dev/null
+++ b/assets/js/40fb2fae.cebe1a5d.js
@@ -0,0 +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
diff --git a/assets/js/412de8f2.52828e15.js b/assets/js/412de8f2.52828e15.js
deleted file mode 100644
index aab2da3..0000000
--- a/assets/js/412de8f2.52828e15.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[64210],{3905:function(e,t,r){r.d(t,{Zo:function(){return i},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/412de8f2.ff0b86cf.js b/assets/js/412de8f2.ff0b86cf.js
new file mode 100644
index 0000000..a24619a
--- /dev/null
+++ b/assets/js/412de8f2.ff0b86cf.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[64210],{3905:function(e,t,r){r.d(t,{Zo:function(){return u},kt:function(){return h}});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 o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r [...]
\ No newline at end of file
diff --git a/assets/js/41c5d441.0dc22466.js b/assets/js/41c5d441.0dc22466.js
deleted file mode 100644
index f1b0fa6..0000000
--- a/assets/js/41c5d441.0dc22466.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5968],{3905:function(e,a,t){t.d(a,{Zo:function(){return A},kt:function(){return h}});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 l(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/41c5d441.565ff7e7.js b/assets/js/41c5d441.565ff7e7.js
new file mode 100644
index 0000000..b5e7d9f
--- /dev/null
+++ b/assets/js/41c5d441.565ff7e7.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5968],{3905:function(e,t,i){i.d(t,{Zo:function(){return h},kt:function(){return d}});var a=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 o(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i, [...]
\ No newline at end of file
diff --git a/assets/js/456135ba.55782058.js b/assets/js/456135ba.55782058.js
new file mode 100644
index 0000000..f8c79f2
--- /dev/null
+++ b/assets/js/456135ba.55782058.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[33026],{3905:function(e,t,n){n.d(t,{Zo:function(){return l},kt:function(){return d}});var r=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function 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/456135ba.d5d418ba.js b/assets/js/456135ba.d5d418ba.js
deleted file mode 100644
index 251c009..0000000
--- a/assets/js/456135ba.d5d418ba.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[33026],{3905:function(e,t,r){r.d(t,{Zo:function(){return l},kt:function(){return I}});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/484f9e40.8e7db018.js b/assets/js/484f9e40.8e7db018.js
deleted file mode 100644
index 5b803e7..0000000
--- a/assets/js/484f9e40.8e7db018.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[82552],{3905:function(e,t,n){n.d(t,{Zo:function(){return p},kt:function(){return h}});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(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/484f9e40.e0a74a76.js b/assets/js/484f9e40.e0a74a76.js
new file mode 100644
index 0000000..b67c9ae
--- /dev/null
+++ b/assets/js/484f9e40.e0a74a76.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[82552],{3905:function(e,t,n){n.d(t,{Zo:function(){return p},kt:function(){return h}});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(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/4c20006b.00ff7a0b.js b/assets/js/4c20006b.00ff7a0b.js
new file mode 100644
index 0000000..0a362d1
--- /dev/null
+++ b/assets/js/4c20006b.00ff7a0b.js
@@ -0,0 +1 @@
+"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/4c20006b.d2d07acb.js b/assets/js/4c20006b.d2d07acb.js
deleted file mode 100644
index f78ca3b..0000000
--- a/assets/js/4c20006b.d2d07acb.js
+++ /dev/null
@@ -1 +0,0 @@
-"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/4f34f66f.8baf06ec.js b/assets/js/4f34f66f.8baf06ec.js
new file mode 100644
index 0000000..c2a6bd6
--- /dev/null
+++ b/assets/js/4f34f66f.8baf06ec.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[93330],{3905:function(e,t,r){r.d(t,{Zo:function(){return c},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 o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r [...]
\ No newline at end of file
diff --git a/assets/js/4f34f66f.ee7215ae.js b/assets/js/4f34f66f.ee7215ae.js
deleted file mode 100644
index c34f5a0..0000000
--- a/assets/js/4f34f66f.ee7215ae.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[93330],{3905:function(e,t,r){r.d(t,{Zo:function(){return u},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/4f9f5708.0f0e93ac.js b/assets/js/4f9f5708.0f0e93ac.js
new file mode 100644
index 0000000..ea133ba
--- /dev/null
+++ b/assets/js/4f9f5708.0f0e93ac.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[79578],{3905:function(e,t,n){n.d(t,{Zo:function(){return s},kt:function(){return d}});var r=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(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/4f9f5708.8e569c13.js b/assets/js/4f9f5708.8e569c13.js
deleted file mode 100644
index 81154c9..0000000
--- a/assets/js/4f9f5708.8e569c13.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[79578],{3905:function(e,t,n){n.d(t,{Zo:function(){return s},kt:function(){return d}});var r=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(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/507e1a4c.e97ecea7.js b/assets/js/507e1a4c.e97ecea7.js
new file mode 100644
index 0000000..5774079
--- /dev/null
+++ b/assets/js/507e1a4c.e97ecea7.js
@@ -0,0 +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
diff --git a/assets/js/507e1a4c.f7a12673.js b/assets/js/507e1a4c.f7a12673.js
deleted file mode 100644
index 64344ae..0000000
--- a/assets/js/507e1a4c.f7a12673.js
+++ /dev/null
@@ -1 +0,0 @@
-"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/assets/js/50facf8e.3cb970b9.js b/assets/js/50facf8e.3cb970b9.js
deleted file mode 100644
index 9356ef4..0000000
--- a/assets/js/50facf8e.3cb970b9.js
+++ /dev/null
@@ -1 +0,0 @@
-"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/50facf8e.b6c0dd9c.js b/assets/js/50facf8e.b6c0dd9c.js
new file mode 100644
index 0000000..3830a4e
--- /dev/null
+++ b/assets/js/50facf8e.b6c0dd9c.js
@@ -0,0 +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
diff --git a/assets/js/542fd41f.04569452.js b/assets/js/542fd41f.04569452.js
deleted file mode 100644
index d519e6d..0000000
--- a/assets/js/542fd41f.04569452.js
+++ /dev/null
@@ -1 +0,0 @@
-"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/542fd41f.6bd7ea40.js b/assets/js/542fd41f.6bd7ea40.js
new file mode 100644
index 0000000..413beb3
--- /dev/null
+++ b/assets/js/542fd41f.6bd7ea40.js
@@ -0,0 +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
diff --git a/assets/js/601c6eaa.87351037.js b/assets/js/601c6eaa.87351037.js
new file mode 100644
index 0000000..33328b6
--- /dev/null
+++ b/assets/js/601c6eaa.87351037.js
@@ -0,0 +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
diff --git a/assets/js/601c6eaa.da3d1166.js b/assets/js/601c6eaa.da3d1166.js
deleted file mode 100644
index b565753..0000000
--- a/assets/js/601c6eaa.da3d1166.js
+++ /dev/null
@@ -1 +0,0 @@
-"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
diff --git a/assets/js/6154e14a.3fa143fd.js b/assets/js/6154e14a.3fa143fd.js
new file mode 100644
index 0000000..ee35493
--- /dev/null
+++ b/assets/js/6154e14a.3fa143fd.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[59852],{3905:function(e,t,n){n.d(t,{Zo:function(){return p},kt:function(){return h}});var r=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n [...]
\ No newline at end of file
diff --git a/assets/js/6154e14a.56247593.js b/assets/js/6154e14a.56247593.js
deleted file mode 100644
index 49df266..0000000
--- a/assets/js/6154e14a.56247593.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[59852],{3905:function(e,t,n){n.d(t,{Zo:function(){return l},kt:function(){return f}});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(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/642095a6.178d6c37.js b/assets/js/642095a6.178d6c37.js
new file mode 100644
index 0000000..b98893f
--- /dev/null
+++ b/assets/js/642095a6.178d6c37.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[52285],{3905:function(e,t,n){n.d(t,{Zo:function(){return p},kt:function(){return m}});var a=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n [...]
\ No newline at end of file
diff --git a/assets/js/642095a6.b6175817.js b/assets/js/642095a6.b6175817.js
deleted file mode 100644
index 8c5470f..0000000
--- a/assets/js/642095a6.b6175817.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[52285],{3905:function(e,t,n){n.d(t,{Zo:function(){return p},kt:function(){return m}});var a=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n [...]
\ No newline at end of file
diff --git a/assets/js/65099176.0d78c1f4.js b/assets/js/65099176.0d78c1f4.js
deleted file mode 100644
index 6afef74..0000000
--- a/assets/js/65099176.0d78c1f4.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[37724],{3905:function(e,t,n){n.d(t,{Zo:function(){return s},kt:function(){return h}});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/65099176.943017cd.js b/assets/js/65099176.943017cd.js
new file mode 100644
index 0000000..7b90a01
--- /dev/null
+++ b/assets/js/65099176.943017cd.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[37724],{3905:function(e,t,n){n.d(t,{Zo:function(){return s},kt:function(){return h}});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/66fbb9c2.08064daa.js b/assets/js/66fbb9c2.08064daa.js
deleted file mode 100644
index 24c1409..0000000
--- a/assets/js/66fbb9c2.08064daa.js
+++ /dev/null
@@ -1 +0,0 @@
-"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/66fbb9c2.af591ecb.js b/assets/js/66fbb9c2.af591ecb.js
new file mode 100644
index 0000000..b1b7b46
--- /dev/null
+++ b/assets/js/66fbb9c2.af591ecb.js
@@ -0,0 +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
diff --git a/assets/js/69b3d367.d86845a4.js b/assets/js/69b3d367.d86845a4.js
deleted file mode 100644
index e135266..0000000
--- a/assets/js/69b3d367.d86845a4.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3530],{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/69b3d367.e7f8a9a0.js b/assets/js/69b3d367.e7f8a9a0.js
new file mode 100644
index 0000000..b1aa16a
--- /dev/null
+++ b/assets/js/69b3d367.e7f8a9a0.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3530],{3905:function(e,t,r){r.d(t,{Zo:function(){return p},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/6c6914ee.5e213ab1.js b/assets/js/6c6914ee.5e213ab1.js
new file mode 100644
index 0000000..3ad1233
--- /dev/null
+++ b/assets/js/6c6914ee.5e213ab1.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[81943],{3905:function(e,t,n){n.d(t,{Zo:function(){return p},kt:function(){return d}});var a=n(67294);function r(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 a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n [...]
\ No newline at end of file
diff --git a/assets/js/6c6914ee.71a1c896.js b/assets/js/6c6914ee.71a1c896.js
deleted file mode 100644
index c5dcfdd..0000000
--- a/assets/js/6c6914ee.71a1c896.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[81943],{3905:function(e,t,n){n.d(t,{Zo:function(){return l},kt:function(){return h}});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(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/739cb065.2e44dbcf.js b/assets/js/739cb065.2e44dbcf.js
deleted file mode 100644
index ba138ec..0000000
--- a/assets/js/739cb065.2e44dbcf.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[21645],{3905:function(e,t,n){n.d(t,{Zo:function(){return c},kt:function(){return I}});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n [...]
\ No newline at end of file
diff --git a/assets/js/739cb065.b81b60ce.js b/assets/js/739cb065.b81b60ce.js
new file mode 100644
index 0000000..846cba5
--- /dev/null
+++ b/assets/js/739cb065.b81b60ce.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[21645],{3905:function(e,t,n){n.d(t,{Zo:function(){return c},kt:function(){return d}});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n [...]
\ No newline at end of file
diff --git a/assets/js/73d26235.9bf8c920.js b/assets/js/73d26235.9bf8c920.js
deleted file mode 100644
index c9aa69f..0000000
--- a/assets/js/73d26235.9bf8c920.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[68867],{3905:function(e,a,t){t.d(a,{Zo:function(){return o},kt:function(){return u}});var n=t(67294);function p(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/73d26235.cf2a85a2.js b/assets/js/73d26235.cf2a85a2.js
new file mode 100644
index 0000000..16babde
--- /dev/null
+++ b/assets/js/73d26235.cf2a85a2.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[68867],{3905:function(e,t,a){a.d(t,{Zo:function(){return p},kt:function(){return d}});var n=a(67294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(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/7445b6d6.5aa670b2.js b/assets/js/7445b6d6.5aa670b2.js
deleted file mode 100644
index 420d2e2..0000000
--- a/assets/js/7445b6d6.5aa670b2.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3242],{3905:function(e,t,a){a.d(t,{Zo:function(){return l},kt:function(){return m}});var r=a(67294);function p(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a, [...]
\ No newline at end of file
diff --git a/assets/js/7445b6d6.d79892d8.js b/assets/js/7445b6d6.d79892d8.js
new file mode 100644
index 0000000..7494c77
--- /dev/null
+++ b/assets/js/7445b6d6.d79892d8.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3242],{3905:function(e,t,a){a.d(t,{Zo:function(){return l},kt:function(){return m}});var r=a(67294);function p(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a, [...]
\ No newline at end of file
diff --git a/assets/js/74f28d06.5d576a8d.js b/assets/js/74f28d06.5d576a8d.js
deleted file mode 100644
index 72a08ca..0000000
--- a/assets/js/74f28d06.5d576a8d.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[68237],{3905:function(e,t,n){n.d(t,{Zo:function(){return c},kt:function(){return m}});var a=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 r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n [...]
\ No newline at end of file
diff --git a/assets/js/74f28d06.af9acfd7.js b/assets/js/74f28d06.af9acfd7.js
new file mode 100644
index 0000000..7dbd47d
--- /dev/null
+++ b/assets/js/74f28d06.af9acfd7.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[68237],{3905:function(e,t,n){n.d(t,{Zo:function(){return c},kt:function(){return m}});var a=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 r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n [...]
\ No newline at end of file
diff --git a/assets/js/782df5ce.0f2d1e62.js b/assets/js/782df5ce.0f2d1e62.js
deleted file mode 100644
index c302d1a..0000000
--- a/assets/js/782df5ce.0f2d1e62.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[81885],{3905:function(e,t,n){n.d(t,{Zo:function(){return o},kt:function(){return h}});var l=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n [...]
\ No newline at end of file
diff --git a/assets/js/782df5ce.bd28875f.js b/assets/js/782df5ce.bd28875f.js
new file mode 100644
index 0000000..2325bec
--- /dev/null
+++ b/assets/js/782df5ce.bd28875f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[81885],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return d}});var o=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n [...]
\ No newline at end of file
diff --git a/assets/js/7af3052c.742ea0cc.js b/assets/js/7af3052c.742ea0cc.js
deleted file mode 100644
index 004ef20..0000000
--- a/assets/js/7af3052c.742ea0cc.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.ac339e97.js b/assets/js/7af3052c.ac339e97.js
new file mode 100644
index 0000000..b712982
--- /dev/null
+++ b/assets/js/7af3052c.ac339e97.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/80791de8.3cf7355f.js b/assets/js/80791de8.3cf7355f.js
deleted file mode 100644
index 7048cf2..0000000
--- a/assets/js/80791de8.3cf7355f.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 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 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/80791de8.921decf6.js b/assets/js/80791de8.921decf6.js
new file mode 100644
index 0000000..d0b850c
--- /dev/null
+++ b/assets/js/80791de8.921decf6.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[50466],{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/814f3328.123578ad.js b/assets/js/814f3328.123578ad.js
new file mode 100644
index 0000000..13f695c
--- /dev/null
+++ b/assets/js/814f3328.123578ad.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[52535],{45641:function(e){e.exports=JSON.parse('{"title":"All posts","items":[{"title":"Weekly Report\uff5c10.15-10.31 Feature Highlights Update in Progress","permalink":"/blog/2021/11/02/weekly-report-1031"},{"title":"Apache APISIX Extensions Guide","permalink":"/blog/2021/10/29/Extension-guide"},{"title":"From 0 to 1, How APISIX Ingress Has Grown and Gained Since Joining The Community","permalink":"/blog/2021/10/26/APISIX-In [...]
\ No newline at end of file
diff --git a/assets/js/814f3328.36200711.js b/assets/js/814f3328.36200711.js
deleted file mode 100644
index 8e1be00..0000000
--- a/assets/js/814f3328.36200711.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[52535],{45641:function(e){e.exports=JSON.parse('{"title":"All posts","items":[{"title":"Weekly Report\uff5c10.15-10.31 Feature Highlights Update in Progress","permalink":"/blog/2021/11/02/weekly-report-1031"},{"title":"Apache APISIX Extensions Guide","permalink":"/blog/2021/10/29/Extension-guide"},{"title":"From 0 to 1, How APISIX Ingress Has Grown and Gained Since Joining The Community","permalink":"/blog/2021/10/26/APISIX-In [...]
\ No newline at end of file
diff --git a/assets/js/81ba4894.1bb77994.js b/assets/js/81ba4894.1bb77994.js
new file mode 100644
index 0000000..5271266
--- /dev/null
+++ b/assets/js/81ba4894.1bb77994.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[23318],{3905:function(e,t,n){n.d(t,{Zo:function(){return l},kt:function(){return f}});var r=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n [...]
\ No newline at end of file
diff --git a/assets/js/81ba4894.dade6360.js b/assets/js/81ba4894.dade6360.js
deleted file mode 100644
index b624795..0000000
--- a/assets/js/81ba4894.dade6360.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[23318],{3905:function(e,t,n){n.d(t,{Zo:function(){return l},kt:function(){return A}});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(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/81f18807.23d3dfd1.js b/assets/js/81f18807.23d3dfd1.js
new file mode 100644
index 0000000..075628b
--- /dev/null
+++ b/assets/js/81f18807.23d3dfd1.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[46129],{3905:function(e,t,n){n.d(t,{Zo:function(){return s},kt:function(){return h}});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(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/81f18807.532043de.js b/assets/js/81f18807.532043de.js
deleted file mode 100644
index 97ac740..0000000
--- a/assets/js/81f18807.532043de.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[46129],{3905:function(e,t,n){n.d(t,{Zo:function(){return s},kt:function(){return h}});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(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/84d2a1f2.1c930a7d.js b/assets/js/84d2a1f2.1c930a7d.js
deleted file mode 100644
index 7d11fb6..0000000
--- a/assets/js/84d2a1f2.1c930a7d.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[50414],{3905:function(e,t,n){n.d(t,{Zo:function(){return c},kt:function(){return m}});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(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/84d2a1f2.3fe016fb.js b/assets/js/84d2a1f2.3fe016fb.js
new file mode 100644
index 0000000..3062ee7
--- /dev/null
+++ b/assets/js/84d2a1f2.3fe016fb.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[50414],{3905:function(e,t,n){n.d(t,{Zo:function(){return c},kt:function(){return m}});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(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/893d9d75.3ab05994.js b/assets/js/893d9d75.3ab05994.js
new file mode 100644
index 0000000..ccc1fe4
--- /dev/null
+++ b/assets/js/893d9d75.3ab05994.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[81664],{3905:function(e,t,n){n.d(t,{Zo:function(){return p},kt:function(){return h}});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/893d9d75.6611bef0.js b/assets/js/893d9d75.6611bef0.js
deleted file mode 100644
index b4af91c..0000000
--- a/assets/js/893d9d75.6611bef0.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[81664],{3905:function(e,t,r){r.d(t,{Zo:function(){return s},kt:function(){return I}});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 o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r [...]
\ No newline at end of file
diff --git a/assets/js/8e784bf3.7cf47466.js b/assets/js/8e784bf3.7cf47466.js
new file mode 100644
index 0000000..3b972b5
--- /dev/null
+++ b/assets/js/8e784bf3.7cf47466.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 i(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function n(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.9cec79a7.js b/assets/js/8e784bf3.9cec79a7.js
deleted file mode 100644
index d99e8f3..0000000
--- a/assets/js/8e784bf3.9cec79a7.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 i(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function n(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.0f53a015.js b/assets/js/8f700fa6.0f53a015.js
new file mode 100644
index 0000000..140492a
--- /dev/null
+++ b/assets/js/8f700fa6.0f53a015.js
@@ -0,0 +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 o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r [...]
\ No newline at end of file
diff --git a/assets/js/8f700fa6.5397418e.js b/assets/js/8f700fa6.5397418e.js
deleted file mode 100644
index 9b49804..0000000
--- a/assets/js/8f700fa6.5397418e.js
+++ /dev/null
@@ -1 +0,0 @@
-"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 o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r [...]
\ No newline at end of file
diff --git a/assets/js/90fc8a94.358b29dc.js b/assets/js/90fc8a94.358b29dc.js
new file mode 100644
index 0000000..6a5bb80
--- /dev/null
+++ b/assets/js/90fc8a94.358b29dc.js
@@ -0,0 +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 o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r [...]
\ No newline at end of file
diff --git a/assets/js/90fc8a94.d4c7625c.js b/assets/js/90fc8a94.d4c7625c.js
deleted file mode 100644
index 9ed5811..0000000
--- a/assets/js/90fc8a94.d4c7625c.js
+++ /dev/null
@@ -1 +0,0 @@
-"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 o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r [...]
\ No newline at end of file
diff --git a/assets/js/941960b1.05b85e61.js b/assets/js/941960b1.05b85e61.js
deleted file mode 100644
index 18effc0..0000000
--- a/assets/js/941960b1.05b85e61.js
+++ /dev/null
@@ -1 +0,0 @@
-"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 o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r [...]
\ No newline at end of file
diff --git a/assets/js/941960b1.c1d2853f.js b/assets/js/941960b1.c1d2853f.js
new file mode 100644
index 0000000..8230315
--- /dev/null
+++ b/assets/js/941960b1.c1d2853f.js
@@ -0,0 +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 o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r [...]
\ No newline at end of file
diff --git a/assets/js/a3962fc7.078c16f2.js b/assets/js/a3962fc7.078c16f2.js
deleted file mode 100644
index a12e783..0000000
--- a/assets/js/a3962fc7.078c16f2.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[30382],{3905:function(e,n,t){t.d(n,{Zo:function(){return c},kt:function(){return k}});var r=t(67294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function p(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t [...]
\ No newline at end of file
diff --git a/assets/js/a3962fc7.ce97d6da.js b/assets/js/a3962fc7.ce97d6da.js
new file mode 100644
index 0000000..761e09e
--- /dev/null
+++ b/assets/js/a3962fc7.ce97d6da.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[30382],{3905:function(e,n,t){t.d(n,{Zo:function(){return s},kt:function(){return h}});var a=t(67294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t [...]
\ No newline at end of file
diff --git a/assets/js/a9bef4c0.06063f72.js b/assets/js/a9bef4c0.06063f72.js
deleted file mode 100644
index ee4cffa..0000000
--- a/assets/js/a9bef4c0.06063f72.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[22774],{3905:function(t,e,a){a.d(e,{Zo:function(){return s},kt:function(){return I}});var n=a(67294);function r(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function i(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a [...]
\ No newline at end of file
diff --git a/assets/js/a9bef4c0.54df127b.js b/assets/js/a9bef4c0.54df127b.js
new file mode 100644
index 0000000..0c5cfb1
--- /dev/null
+++ b/assets/js/a9bef4c0.54df127b.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[22774],{3905:function(e,t,a){a.d(t,{Zo:function(){return p},kt:function(){return u}});var n=a(67294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(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/ac3e62c6.2a7f772a.js b/assets/js/ac3e62c6.2a7f772a.js
new file mode 100644
index 0000000..2505653
--- /dev/null
+++ b/assets/js/ac3e62c6.2a7f772a.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[62630],{3905:function(e,t,n){n.d(t,{Zo:function(){return p},kt:function(){return h}});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/ac3e62c6.6fed33bf.js b/assets/js/ac3e62c6.6fed33bf.js
deleted file mode 100644
index 118d006..0000000
--- a/assets/js/ac3e62c6.6fed33bf.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[62630],{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/adbb350b.51a6aa3d.js b/assets/js/adbb350b.51a6aa3d.js
new file mode 100644
index 0000000..fde4b66
--- /dev/null
+++ b/assets/js/adbb350b.51a6aa3d.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/adbb350b.c99cf19f.js b/assets/js/adbb350b.c99cf19f.js
deleted file mode 100644
index 91b7e39..0000000
--- a/assets/js/adbb350b.c99cf19f.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 a(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function n(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/b2f554cd.c46dd2df.js b/assets/js/b2f554cd.c46dd2df.js
new file mode 100644
index 0000000..3132b5c
--- /dev/null
+++ b/assets/js/b2f554cd.c46dd2df.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[11477],{30010:function(e){e.exports=JSON.parse('{"blogPosts":[{"id":"Weekly Report\uff5c10.15-10.31 Feature Highlights Update in Progress","metadata":{"permalink":"/blog/2021/11/02/weekly-report-1031","source":"@site/blog/2021/11/02/weekly-report-1031.md","title":"Weekly Report\uff5c10.15-10.31 Feature Highlights Update in Progress","description":"The Apache APISIX Community Weekly Report hopes to help community members better [...]
\ No newline at end of file
diff --git a/assets/js/b2f554cd.fc1fc113.js b/assets/js/b2f554cd.fc1fc113.js
deleted file mode 100644
index c53fb81..0000000
--- a/assets/js/b2f554cd.fc1fc113.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[11477],{30010:function(e){e.exports=JSON.parse('{"blogPosts":[{"id":"Weekly Report\uff5c10.15-10.31 Feature Highlights Update in Progress","metadata":{"permalink":"/blog/2021/11/02/weekly-report-1031","source":"@site/blog/2021/11/02/weekly-report-1031.md","title":"Weekly Report\uff5c10.15-10.31 Feature Highlights Update in Progress","description":"The Apache APISIX Community Weekly Report hopes to help community members better [...]
\ No newline at end of file
diff --git a/assets/js/b328a5d9.1bd99898.js b/assets/js/b328a5d9.1bd99898.js
deleted file mode 100644
index 07799cf..0000000
--- a/assets/js/b328a5d9.1bd99898.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[50509],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return s}});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n [...]
\ No newline at end of file
diff --git a/assets/js/b328a5d9.9198f8df.js b/assets/js/b328a5d9.9198f8df.js
new file mode 100644
index 0000000..1236b5c
--- /dev/null
+++ b/assets/js/b328a5d9.9198f8df.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[50509],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return s}});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n [...]
\ No newline at end of file
diff --git a/assets/js/ba3aa933.615ab398.js b/assets/js/ba3aa933.615ab398.js
new file mode 100644
index 0000000..107cff5
--- /dev/null
+++ b/assets/js/ba3aa933.615ab398.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[80273],{3905:function(e,t,n){n.d(t,{Zo:function(){return l},kt:function(){return f}});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(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/ba3aa933.fd2b6e48.js b/assets/js/ba3aa933.fd2b6e48.js
deleted file mode 100644
index 2a18617..0000000
--- a/assets/js/ba3aa933.fd2b6e48.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[80273],{3905:function(e,t,n){n.d(t,{Zo:function(){return l},kt:function(){return f}});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(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/bd3a6b69.062f65a5.js b/assets/js/bd3a6b69.062f65a5.js
new file mode 100644
index 0000000..d88d495
--- /dev/null
+++ b/assets/js/bd3a6b69.062f65a5.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[11003],{3905:function(e,t,n){n.d(t,{Zo:function(){return d},kt:function(){return m}});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n [...]
\ No newline at end of file
diff --git a/assets/js/bd3a6b69.2fd41175.js b/assets/js/bd3a6b69.2fd41175.js
deleted file mode 100644
index 97bff8a..0000000
--- a/assets/js/bd3a6b69.2fd41175.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[11003],{3905:function(e,t,n){n.d(t,{Zo:function(){return d},kt:function(){return m}});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n [...]
\ No newline at end of file
diff --git a/assets/js/c4ffe840.a9f4c3a6.js b/assets/js/c4ffe840.a9f4c3a6.js
deleted file mode 100644
index 12928c4..0000000
--- a/assets/js/c4ffe840.a9f4c3a6.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[29339],{3905:function(e,t,a){a.d(t,{Zo:function(){return o},kt:function(){return m}});var r=a(67294);function n(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 r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a [...]
\ No newline at end of file
diff --git a/assets/js/c4ffe840.f66cc781.js b/assets/js/c4ffe840.f66cc781.js
new file mode 100644
index 0000000..0335fce
--- /dev/null
+++ b/assets/js/c4ffe840.f66cc781.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[29339],{3905:function(e,t,a){a.d(t,{Zo:function(){return u},kt:function(){return m}});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a [...]
\ No newline at end of file
diff --git a/assets/js/c9c13a6e.4403d8f8.js b/assets/js/c9c13a6e.4403d8f8.js
new file mode 100644
index 0000000..8fc3608
--- /dev/null
+++ b/assets/js/c9c13a6e.4403d8f8.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[76255],{3905:function(e,n,t){t.d(n,{Zo:function(){return h},kt:function(){return m}});var a=t(67294);function i(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function r(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t [...]
\ No newline at end of file
diff --git a/assets/js/c9c13a6e.501c120f.js b/assets/js/c9c13a6e.501c120f.js
deleted file mode 100644
index 17e6c4e..0000000
--- a/assets/js/c9c13a6e.501c120f.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[76255],{3905:function(e,n,t){t.d(n,{Zo:function(){return h},kt:function(){return m}});var a=t(67294);function i(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function r(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t [...]
\ No newline at end of file
diff --git a/assets/js/ce1b383a.e4c9a614.js b/assets/js/ce1b383a.e4c9a614.js
new file mode 100644
index 0000000..bda6b8c
--- /dev/null
+++ b/assets/js/ce1b383a.e4c9a614.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[87339],{3905:function(e,t,r){r.d(t,{Zo:function(){return l},kt:function(){return g}});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/ce1b383a.e64652d2.js b/assets/js/ce1b383a.e64652d2.js
deleted file mode 100644
index 13851a3..0000000
--- a/assets/js/ce1b383a.e64652d2.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[87339],{3905:function(e,t,r){r.d(t,{Zo:function(){return l},kt:function(){return g}});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/cf93e86b.2f40a83a.js b/assets/js/cf93e86b.2f40a83a.js
deleted file mode 100644
index f6e1959..0000000
--- a/assets/js/cf93e86b.2f40a83a.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[95137],{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/cf93e86b.88d99cd6.js b/assets/js/cf93e86b.88d99cd6.js
new file mode 100644
index 0000000..f613639
--- /dev/null
+++ b/assets/js/cf93e86b.88d99cd6.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[95137],{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/d18db9b0.53b0d5f6.js b/assets/js/d18db9b0.53b0d5f6.js
new file mode 100644
index 0000000..d1f8113
--- /dev/null
+++ b/assets/js/d18db9b0.53b0d5f6.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[17825],{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/d18db9b0.e145b3aa.js b/assets/js/d18db9b0.e145b3aa.js
deleted file mode 100644
index 91dd40e..0000000
--- a/assets/js/d18db9b0.e145b3aa.js
+++ /dev/null
@@ -1 +0,0 @@
-"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/db717246.1c4c8790.js b/assets/js/db717246.1c4c8790.js
deleted file mode 100644
index 5c8670f..0000000
--- a/assets/js/db717246.1c4c8790.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[30523],{3905:function(e,n,t){t.d(n,{Zo:function(){return s},kt:function(){return m}});var a=t(67294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t [...]
\ No newline at end of file
diff --git a/assets/js/db717246.1e46ad1b.js b/assets/js/db717246.1e46ad1b.js
new file mode 100644
index 0000000..463d924
--- /dev/null
+++ b/assets/js/db717246.1e46ad1b.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[30523],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return d}});var a=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n [...]
\ No newline at end of file
diff --git a/assets/js/e2abbbc0.1539cc0a.js b/assets/js/e2abbbc0.1539cc0a.js
deleted file mode 100644
index 71c7fdd..0000000
--- a/assets/js/e2abbbc0.1539cc0a.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[53529],{3905:function(e,t,n){n.d(t,{Zo:function(){return l},kt:function(){return d}});var o=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n [...]
\ No newline at end of file
diff --git a/assets/js/e2abbbc0.54624ba1.js b/assets/js/e2abbbc0.54624ba1.js
new file mode 100644
index 0000000..fdede13
--- /dev/null
+++ b/assets/js/e2abbbc0.54624ba1.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[53529],{3905:function(e,t,n){n.d(t,{Zo:function(){return l},kt:function(){return d}});var o=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n [...]
\ No newline at end of file
diff --git a/assets/js/e52e9411.17998dac.js b/assets/js/e52e9411.17998dac.js
deleted file mode 100644
index 3b3b1b2..0000000
--- a/assets/js/e52e9411.17998dac.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[74245],{3905:function(e,t,n){n.d(t,{Zo:function(){return l},kt:function(){return g}});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/e52e9411.932984dd.js b/assets/js/e52e9411.932984dd.js
new file mode 100644
index 0000000..ffe7b0d
--- /dev/null
+++ b/assets/js/e52e9411.932984dd.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[74245],{3905:function(e,n,t){t.d(n,{Zo:function(){return u},kt:function(){return m}});var r=t(67294);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t [...]
\ No newline at end of file
diff --git a/assets/js/ed4d0ee9.21f5e8ad.js b/assets/js/ed4d0ee9.21f5e8ad.js
deleted file mode 100644
index 37c0487..0000000
--- a/assets/js/ed4d0ee9.21f5e8ad.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[45521],{3905:function(e,t,n){n.d(t,{Zo:function(){return p},kt:function(){return f}});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(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/ed4d0ee9.312a6b93.js b/assets/js/ed4d0ee9.312a6b93.js
new file mode 100644
index 0000000..ad38331
--- /dev/null
+++ b/assets/js/ed4d0ee9.312a6b93.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[45521],{3905:function(e,t,n){n.d(t,{Zo:function(){return p},kt:function(){return f}});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(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/eed2ba9c.85c18dbd.js b/assets/js/eed2ba9c.85c18dbd.js
new file mode 100644
index 0000000..2561d76
--- /dev/null
+++ b/assets/js/eed2ba9c.85c18dbd.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[57293],{3905:function(e,t,r){r.d(t,{Zo:function(){return l},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 o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r [...]
\ No newline at end of file
diff --git a/assets/js/eed2ba9c.a9075caf.js b/assets/js/eed2ba9c.a9075caf.js
deleted file mode 100644
index 22f3b19..0000000
--- a/assets/js/eed2ba9c.a9075caf.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[57293],{3905:function(e,t,r){r.d(t,{Zo:function(){return l},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 o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r [...]
\ No newline at end of file
diff --git a/assets/js/f243156b.a5f96709.js b/assets/js/f243156b.a5f96709.js
deleted file mode 100644
index 6959405..0000000
--- a/assets/js/f243156b.a5f96709.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[22037],{82549:function(e){e.exports=JSON.parse('{"pluginId":"docs-apisix-dashboard","version":"current","label":"Next","banner":"unreleased","badge":true,"className":"docs-version-current","isLast":false,"docsSidebars":{"docs":[{"type":"category","label":"Getting Started","items":[{"type":"link","label":"User Guide","href":"/docs/dashboard/next/USER_GUIDE"},{"type":"link","label":"Import OpenAPI Guide","href":"/docs/dashboard/ [...]
\ No newline at end of file
diff --git a/assets/js/f243156b.b037fdf0.js b/assets/js/f243156b.b037fdf0.js
new file mode 100644
index 0000000..780e216
--- /dev/null
+++ b/assets/js/f243156b.b037fdf0.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[22037],{82549:function(e){e.exports=JSON.parse('{"pluginId":"docs-apisix-dashboard","version":"current","label":"Next","banner":"unreleased","badge":true,"className":"docs-version-current","isLast":false,"docsSidebars":{"docs":[{"type":"category","label":"Getting Started","items":[{"type":"link","label":"User Guide","href":"/docs/dashboard/next/USER_GUIDE"},{"type":"link","label":"Import OpenAPI Guide","href":"/docs/dashboard/ [...]
\ No newline at end of file
diff --git a/assets/js/f4e9d3f4.1ecc522f.js b/assets/js/f4e9d3f4.1ecc522f.js
deleted file mode 100644
index 2c3f0aa..0000000
--- a/assets/js/f4e9d3f4.1ecc522f.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[94279],{3905:function(e,t,n){n.d(t,{Zo:function(){return p},kt:function(){return u}});var a=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n [...]
\ No newline at end of file
diff --git a/assets/js/f4e9d3f4.d13d5c6a.js b/assets/js/f4e9d3f4.d13d5c6a.js
new file mode 100644
index 0000000..d6fa78b
--- /dev/null
+++ b/assets/js/f4e9d3f4.d13d5c6a.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[94279],{3905:function(e,t,n){n.d(t,{Zo:function(){return p},kt:function(){return u}});var a=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n [...]
\ No newline at end of file
diff --git a/assets/js/f6c26454.d88974b6.js b/assets/js/f6c26454.d88974b6.js
deleted file mode 100644
index 6def4ef..0000000
--- a/assets/js/f6c26454.d88974b6.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[63248],{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 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
diff --git a/assets/js/f6c26454.ed17bab3.js b/assets/js/f6c26454.ed17bab3.js
new file mode 100644
index 0000000..5db86c1
--- /dev/null
+++ b/assets/js/f6c26454.ed17bab3.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[63248],{3905:function(e,n,t){t.d(n,{Zo:function(){return u},kt:function(){return f}});var r=t(67294);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t [...]
\ No newline at end of file
diff --git a/assets/js/f74a08e8.bbe2afe9.js b/assets/js/f74a08e8.bbe2afe9.js
deleted file mode 100644
index 18945f3..0000000
--- a/assets/js/f74a08e8.bbe2afe9.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[29628],{3905:function(e,t,a){a.d(t,{Zo:function(){return u},kt:function(){return h}});var n=a(67294);function p(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(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/f74a08e8.e62df1b0.js b/assets/js/f74a08e8.e62df1b0.js
new file mode 100644
index 0000000..70dcb9c
--- /dev/null
+++ b/assets/js/f74a08e8.e62df1b0.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[29628],{3905:function(e,t,a){a.d(t,{Zo:function(){return u},kt:function(){return h}});var n=a(67294);function p(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(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/main.29a8b3b7.js b/assets/js/main.29a8b3b7.js
deleted file mode 100644
index 34e622e..0000000
--- a/assets/js/main.29a8b3b7.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/*! For license information please see main.29a8b3b7.js.LICENSE.txt */
-(self.webpackChunk=self.webpackChunk||[]).push([[40179],{99782:function(e,n,i){"use strict";i.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 mana [...]
\ No newline at end of file
diff --git a/assets/js/main.dacd1b62.js b/assets/js/main.dacd1b62.js
new file mode 100644
index 0000000..f6ef0e0
--- /dev/null
+++ b/assets/js/main.dacd1b62.js
@@ -0,0 +1,2 @@
+/*! For license information please see main.dacd1b62.js.LICENSE.txt */
+(self.webpackChunk=self.webpackChunk||[]).push([[40179],{99782:function(e,n,i){"use strict";i.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 mana [...]
\ No newline at end of file
diff --git a/zh/assets/js/main.c8b4690f.js.LICENSE.txt b/assets/js/main.dacd1b62.js.LICENSE.txt
similarity index 100%
rename from zh/assets/js/main.c8b4690f.js.LICENSE.txt
rename to assets/js/main.dacd1b62.js.LICENSE.txt
diff --git a/assets/js/runtime~main.243b80db.js b/assets/js/runtime~main.243b80db.js
deleted file mode 100644
index b40e764..0000000
--- a/assets/js/runtime~main.243b80db.js
+++ /dev/null
@@ -1 +0,0 @@
-!function(){"use strict";var e,c,f,b,d={},a={};function t(e){var c=a[e];if(void 0!==c)return c.exports;var f=a[e]={id:e,loaded:!1,exports:{}};return d[e].call(f.exports,f,f.exports,t),f.loaded=!0,f.exports}t.m=d,t.c=a,e=[],t.O=function(c,f,b,d){if(!f){var a=1/0;for(u=0;u<e.length;u++){f=e[u][0],b=e[u][1],d=e[u][2];for(var n=!0,r=0;r<f.length;r++)(!1&d||a>=d)&&Object.keys(t.O).every((function(e){return t.O[e](f[r])}))?f.splice(r--,1):(n=!1,d<a&&(a=d));if(n){e.splice(u--,1);var o=b();void  [...]
\ No newline at end of file
diff --git a/assets/js/runtime~main.75486ee8.js b/assets/js/runtime~main.75486ee8.js
new file mode 100644
index 0000000..bb77e6d
--- /dev/null
+++ b/assets/js/runtime~main.75486ee8.js
@@ -0,0 +1 @@
+!function(){"use strict";var e,c,f,b,d={},a={};function t(e){var c=a[e];if(void 0!==c)return c.exports;var f=a[e]={id:e,loaded:!1,exports:{}};return d[e].call(f.exports,f,f.exports,t),f.loaded=!0,f.exports}t.m=d,t.c=a,e=[],t.O=function(c,f,b,d){if(!f){var a=1/0;for(u=0;u<e.length;u++){f=e[u][0],b=e[u][1],d=e[u][2];for(var n=!0,r=0;r<f.length;r++)(!1&d||a>=d)&&Object.keys(t.O).every((function(e){return t.O[e](f[r])}))?f.splice(r--,1):(n=!1,d<a&&(a=d));if(n){e.splice(u--,1);var o=b();void  [...]
\ 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 e76b6dc..bdfa0a7 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
@@ -16,15 +16,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" 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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 6cc351b..8e00149 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
@@ -16,15 +16,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" 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=" [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2020/12/18/first-look-at-kubernetes-service-api/index.html b/blog/2020/12/18/first-look-at-kubernetes-service-api/index.html
index 299db07..ee81596 100644
--- a/blog/2020/12/18/first-look-at-kubernetes-service-api/index.html
+++ b/blog/2020/12/18/first-look-at-kubernetes-service-api/index.html
@@ -16,13 +16,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">A First Look at Kubernetes Service APIs | 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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 ad5db55..31ac3c5 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
@@ -16,13 +16,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 Contributor Interview | Pengcheng Wang, Senior Security Consultant, PricewaterhouseCoopers China Data Security &amp; Privacy Team | 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="htt [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 82ff925..48b4020 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
@@ -16,14 +16,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" 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://ap [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 0da6836..e1c8627 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
@@ -16,16 +16,16 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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" 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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token number" style="color:#36acaa">2</span><span class="token plain">. Extract the selector and data as public variables.</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">To </span><span class="token function" style="color:#d73a49">make</span><span class="token plain"> it </span><span class="token function" style="color:#d73a49">more</span><span class="token plain"> intuitive </span><span class="token keyword" style="color:#00009f">for</span><span class="token plain"> the user to understand the meaning of the </span><span class="token builtin class-name">test</span><spa [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">```javaScript</span></span><span class="token-line" style="color:#393A34"><span class="token plain">  const data </span><span class="token operator" style="color:#393A34">=</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">    name: </span> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 0f9c61c..4526e4b 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
@@ -16,15 +16,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" 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="http [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">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           0.1.2           2.1.0           A Helm chart for Apache APISIX</span></span><span class="token-line" style="color:#393A34"><span class="token plain">apisix/apisix-dashboard 0.1.0           2.3.0           A Helm chart for Apach [...]
 </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 19 11:34:14 2021</span></span><span class="token-line" style="color:#393A34"><span class="token plain">NAMESPACE: default</span></span><span class="token-line" style="color:#393A34"><span class="token plain">STATUS: deployed</span></span><span class="token-line" style="color:#393 [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 a43bbfd..ded5091 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
@@ -16,13 +16,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" 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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 2a8db89..0dbc256 100644
--- a/blog/2021/05/24/Tencent-Games/index.html
+++ b/blog/2021/05/24/Tencent-Games/index.html
@@ -16,18 +16,18 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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" 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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
 (这里需要澄清的是,本文讨论的网关特指 API Gateway ,即针对后台服务以 API 提供服务的场景。)</p><p>在上面的这个图中,有时 LB 同时也起到网关的作用,比如 k8s 的 Ingress 组件。</p><p>有了网关这个组件后,我们就可以将传统架构的通用功能下沉到网关,这样一来我们获得了很多的好处:</p><ul><li>网关可以独立迭代,不再需要业务服务配合。</li><li>与语言无关,可以配置专门的团队维护。</li></ul><p>但是网关模式也有自己的缺点:</p><ul><li>多了一次转发,延迟变高,排查问题复杂度变高。</li><li>网关如果不能正常工作,可能会成为整个平台的瓶颈。</li></ul><p>如何平衡好网关模式的好处和缺点,不仅十分考验业务团队的实力,更是与网关的选型息息相关。接下来,我们要请出本文要介绍的两个重点对象:腾讯 OTeam 和 Apache APISIX。</p><h2><a aria-hidden="
 true" tabindex="-1" class="anchor anchor__h2 anchor [...]
 OTeam 的运作参考下图:</p><p><img src="https://static.apiseven.com/202108/1630640321189-46cf2163-552c-4816-bdf6-ef4f58702667.png" alt="OTeam 的运营策略"></p><p>可以看到 OTeam 的特性迭代是一个完整的闭环:</p><ul><li>用户通过 Issue 反馈问题和需求</li><li>OTeam 的成员 在 周会 上讨论解决方案,或者直接在 Issue 中跟进</li><li>按照解决方案实现特性 or 修复 Bug</li><li>代码 Review 后,经历 CI 合入到主干中,再视情况需不需要打包镜像发版
 这个流程其实和 GitHub 多数开源项目的贡献过程是没区别的,关键点在于:</li><li>解决了 Issue 后,腾讯工程师会判断这个问题对于社区来说,是否也是一个共性问题。如果是,则会发 PR 到社区的仓库去。</li><li>腾讯 OTeam 会定期 Review Apache APISIX 的新特性,判断其是否稳定、是否对腾讯内部也是一个痛点。如果答案是肯定的,合入相关代码。</li></ul><p>最早期的时候,OTeam 会每 12 小时,自动合入社区代码到内部仓库中,以保证我们与社区能够共同前进,但这种做法带来了几个问题:</p><ul><li>合入的代码通过目前的集成测试只能保证功能 正确性 却没法保证 稳定性,很多偶现的问题都是在并发中发生的。</li><li>合入的代码,有时会产生上游的多个 PR 在逻辑上出现冲突的问题,但是各自的 CI 无法检测出来,只有当合入主干后,才会发现主干的代码产生
 了问题。</li></ul><p>出于以上原因,现在 OTeam 转为定期 Review 后合入所需特性的代码的策略。</p><h2><a aria-hidd [...]
 我们希望这些例子能起到抛砖引玉的作用,鼓励大家去发掘更多 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 docusaurus-mt-lg blogPostDetailsFull_3kfx"><div class="col"><b>Tags:</b><ul class="tags_2ga9 padding--none margin-left--sm"><li class="tag_11ep"><a class="tag_1Okp tagRegular_3MiF" href="/blog/tags/user-c [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/05/25/Apache APISIX 2.6.0-Release/index.html b/blog/2021/05/25/Apache APISIX 2.6.0-Release/index.html
index e26a426..ad218da 100644
--- a/blog/2021/05/25/Apache APISIX 2.6.0-Release/index.html	
+++ b/blog/2021/05/25/Apache APISIX 2.6.0-Release/index.html	
@@ -16,14 +16,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 Officially Released | 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" cont [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
 Currently, the following external services are supported by APISIX built-in service discovery function.</p><ol><li>DNS</li><li>Consul KV mode</li><li>Eureka</li><li>Nacos</li></ol><h3><a aria-hidden="true" tabindex="-1" class="anchor anchor__h3 anchorWithHideOnScrollNavbar_3R7-" id="support-configuring-dns-resolver-for-ipv6"></a>Support: Configuring DNS resolver for IPv6<a class="hash-link" href="#support-configuring-dns-resolver-for-ipv6" title="Direct link to heading">#</a></h3><p>Prev [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 02536f4..bd5b872 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
@@ -16,13 +16,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">Experience sharing from Apache APISIX committer - Interview with Summer of Programming | 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- [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 a292ba4..cb5b648 100644
--- a/blog/2021/06/06/apisix-two-years/index.html
+++ b/blog/2021/06/06/apisix-two-years/index.html
@@ -16,13 +16,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 Open Source 2 Year Anniversary! | 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" conten [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 0d08a13..6a649e8 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
@@ -16,13 +16,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" 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" c [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 55d8721..00e6712 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
@@ -16,17 +16,17 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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 v.s Envoy: Which Has the Better Performance? | 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: [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">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 [...]
 是 CPU)</li></ul><p><img src="https://static.apiseven.com/202108/20210617003.png" alt="test result"></p><h2><a aria-hidden="true" tabindex="-1" class="anchor anchor__h2 anchorWithHideOnScrollNavbar_3R7-" id="route-configuration"></a>Route Configuration<a class="hash-link" href="#route-configuration" title="Direct link to heading">#</a></h2><p>First we find the Apache APISIX Getting Started configuration guide and we add a route to /hello with the following configuration:</p><div class="co [...]
 </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 [...]
 Apache APISIX</p></div><footer class="row docusaurus-mt-lg blogPostDetailsFull_3kfx"><div class="col"><b>Tags:</b><ul class="tags_2ga9 padding--none margin-left--sm"><li class="tag_11ep"><a class="tag_1Okp tagRegular_3MiF" href="/blog/tags/technology">Technology</a></li></ul></div></footer></article><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/16/Chaos-Mesh-helps-A [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 33370a7..abe7204 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
@@ -16,13 +16,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 Stability | 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" con [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 adee199..401ed02 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
@@ -16,13 +16,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 Access Control Bypass Vulnerability Advisory (CVE-2021-33190) | 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-h [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 888e97a..f4df22a 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
@@ -16,13 +16,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">The first GA release of Apache APISIX Ingress Controller v1.0 is now available! | 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= [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 21aaf93..050f624 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
@@ -16,12 +16,12 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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 Write an Apache APISIX Plugin in Java | 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 [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
 The plugin runner processes the RPC call, creates a simulated request inside it, and then runs the multiple programming languages written a plugin and returns the result to Apache APISIX.</p><p>The order of execution of multiple programming languages plugins is defined in the ext-plugin-* plugin configuration entry. Like other plugins, they can be enabled and redefined on the fly.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor anchor__h2 anchorWithHideOnScrollNavbar_3R7-" id="b [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">import org.apache.apisix.plugin.runner.HttpRequest;</span></span><span class="token-line" style="color:#393A34"><span class="token plain">import org.apache.apisix.plugin.runner.HttpResponse;</span></span><span class="token-line" style="color:#393A34"><span class="token plain">import org.springframework.stereotype.Component;</span></span><span class="token-line" style="color:#393A34"><span class="token  [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block">
@@ -37,7 +37,7 @@ The plugin runner processes the RPC call, creates a simulated request inside it,
 </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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 f94e5c5..653582d 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
@@ -16,13 +16,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">Deploy Apache APISIX and Apache APISIX Ingress Controller on Rancher | 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 [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 313dd2e..4f01a5b 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
@@ -16,16 +16,16 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Why do you need Apache APISIX when you have NGINX and Kong? | 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 [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
 <img src="https://static.apiseven.com/202108/20210625002.png" alt="membphis"></p><p>First of all, I would like to introduce myself, my name is Yuansheng Wang. I wrote an e-book called &quot;OpenResty Best Practices&quot; in 2015 and formed a community of over 10,000 people through this book. Since that time, I have become more and more interested in open source itself. Before 2015, I was basically mainly a user of open source software, then slowly became a co-organizer of the community,  [...]
 <img src="https://static.apiseven.com/202108/20210625004.png" alt="api7.ai team"></p><p>This is our team, we mainly collaborate remotely, and it&#x27;s harder to get everyone together. When there were only five or six people in the early stages of the company, it was relatively easy to get the team together, but it hasn&#x27;t been together since this year, and this is the most together we&#x27;ve had so far this year (but there are still a few students who didn&#x27;t make it together). [...]
 <img src="https://static.apiseven.com/202108/20210625005.png" alt="APISIX architecture"></p><p>The topic of this talk needs some background, so let&#x27;s start with the history of back-end architecture evolution. First, let&#x27;s review this diagram, the right part from top to bottom it is not a specific data flow diagram, it is the history of our backend architecture evolution. Spring Cloud architecture mainly serves JAVA language developers, Kubernetes is a container orchestration to [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 050d257..c38d9d3 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
@@ -16,13 +16,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" 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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 7b02fa5..7de49d4 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
@@ -16,15 +16,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">Does etcd 3 Support HTTP Access Perfectly? | 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=" [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
 One idea was to use incremental synchronization to simulate full synchronization, which has two drawbacks.</p><ol><li>It is complicated to implement and requires a lot of code changes.</li><li>It would extend the time required for synchronization.</li></ol><p>Another idea is to modify etcd. If you can remove the restrictions in etcdctl, why not treat gRPC-gateway the same way? The same change can be made to gRPC-gateway.
 We’ve adopted the second option, and have given etcd a PR: <a href="https://github.com/etcd-io/etcd/pull/13077" target="_blank" rel="noopener noreferrer">PR #13077</a>.</p><p><img alt="2021-06-30-1" src="/assets/images/2021-06-30-1-6eae65298ae03e3aafbcafffa6464321.png"></p><p>The latest release of v3.5.0 includes this change that we contributed. If you encounter “grpc: received message larger than max”, you may want to try this version. This change has also been back-ported to the 3.4 br [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 a6703a0..512c3af 100644
--- a/blog/2021/07/06/celebrate-200-contributors/index.html
+++ b/blog/2021/07/06/celebrate-200-contributors/index.html
@@ -16,15 +16,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" 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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">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 contributors 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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 f2514f0..cbad76e 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
@@ -16,14 +16,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">The Road to Customized Development of Sina Weibo API Gateway | 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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
 The full grayscale publishing feature requires some API support exposed on the gateway instance in addition to the administrative backend support.</p><p><img src="https://user-images.githubusercontent.com/23514812/125598577-bcf2b13d-031a-440c-9480-c68d41d5ca9c.png" alt="Support Grayscale Release2"></p><p>The above screenshot shows the screenshot when operating Grayscale Publishing to select a specific gateway instance.</p><p>The full grayscale publishing feature requires some API support [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 75aad64..e24fbe7 100644
--- a/blog/2021/07/21/Apache-APISIX-Kubernetes/index.html
+++ b/blog/2021/07/21/Apache-APISIX-Kubernetes/index.html
@@ -16,15 +16,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 x Kubernetes: Just Right|Live | 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= [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
 With 7 years in the industry, Jintao Zhang has a lot of practice and deep source code research on containerization technologies such as Docker and Kubernetes, and is one of the core organizers of PyCon China. He is also the author of &quot;Kubernetes Hands-on&quot; and &quot;Docker Core Knowledge Must Know&quot;. He runs the public number: MoeLove.</p><p>He is also the author of Kubernetes Hands-on and Docker Core Knowledge.
 <img src="https://static.apiseven.com/202108/1630382172445-cf20986b-c939-497e-86a4-92da7064ae97.PNG" alt="Lecturer-Jintao Zhang"></p><h2><a aria-hidden="true" tabindex="-1" class="anchor anchor__h2 anchorWithHideOnScrollNavbar_3R7-" id="about-apache-apisix"></a>About Apache APISIX<a class="hash-link" href="#about-apache-apisix" title="Direct link to heading">#</a></h2><p>Apache APISIX is a dynamic, real-time, high-performance open source API gateway that provides rich traffic management  [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 425e9cd..c2a9e2e 100644
--- a/blog/2021/07/25/apachecon-asia/index.html
+++ b/blog/2021/07/25/apachecon-asia/index.html
@@ -16,13 +16,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 Technical Topics | 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"  [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 a1af7ec..c7d9818 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
@@ -16,19 +16,19 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Applying Plugin Orchestration in 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" conte [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
 </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">   &quot;uri&quot;: &quot;/get&quot;,</span></span><span class="token-line" style="color:#393A34"><span class="token string" style="color:#e3116c">   &quot;methods&quot;: [&quot;GET&quot;],</span></span><span class="token-line" style="color:#393A34"><span class="token s [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token string" style="color:#e3116c">&quot;script&quot;</span><span class="token builtin class-name">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;local _M = {} </span><span class="token string entity" style="color:#36acaa">\n</span><span class="token string" style="color:#e3116c"> function _M.access(api_ctx) </span><span class="to [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" 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><h3><a aria-hidden="true" tabindex="-1" class="anchor anchor__h3 anchorWithHideOnScrollNavbar_3R7-" id="apache-apisix-dashboard"></a>Apache APISIX Dashboard<a class="hash-link" href="#apache-apisix-d [...]
 </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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 1ebbafd..31d1e73 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
@@ -16,14 +16,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" 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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 eb6cb08..b32be73 100644
--- a/blog/2021/08/05/Kong-to-APISIX/index.html
+++ b/blog/2021/08/05/Kong-to-APISIX/index.html
@@ -16,19 +16,19 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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 Migration Tool | 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://apisi [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token builtin class-name">cd</span><span class="token plain"> kong-to-apisix</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 function" style="color:#d73a49">make</span><span class="token plain"> build</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">./bin/kong-to-apisix migrate --input kong.yaml --output apisix.yaml</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"># migrate succeed</span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">Copy</button></div></div></li><li><p>Use <code>apisix.yaml</code> to configure APISIX, refer to <a href="https://apisix.apache.org/docs/apisix/stand-alone" target="_blank" rel="noopener noreferr [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token builtin class-name">cd</span><span class="token plain"> kong-to-apisix</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">./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></li><li><p>Add configuration to Kong and test it according to Kong&#x27;s Getting Started Guide.</p><ol><li>Expose services via Service and Route for routing and forwarding</li><li>Set up Rate Limiting and Proxy Caching plugins for flow limitin [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+</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></li><li><p>Add configuration to Kong and test it according to Kong&#x27;s Getting Started Guide.</p><ol><li>Expose services via Service and Route for routing and forwarding</li><li>Set up Rate Limiting and Proxy Caching plugins for flow limitin [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 a4c16f3..b261e94 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
@@ -15,16 +15,16 @@
 <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 APISX 提升 Nginx 的可观测性 | 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://ap [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.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">How to Improve the Observability of Nginx with Apache APISX | 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 [...]
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+If you install the collection module outside of Nginx, you are limited in the metrics you can collect, and you can only get the information exposed by Nginx, not the internal information that is not exposed.</p><p>In addition, because Nginx Amplify SaaS is a SaaS service, you need to transfer the collected data to the server through the public network, which can pose some security risks and keep some enterprise users out. Perhaps Nginx Amplify is targeted at enterprise users like Nginx p [...]
+When using Prometheus, if you configure the statistics of metrics at the URI level, the whole metrics will be inflated dramatically. Because there may be dozens of services at the URI level, each metrics may be followed by many labels, which will slow down the performance of the gateway and make the metrics more difficult to obtain. <strong>Use ALS solution to send the data to SkyWalking by streaming, leaving the calculation to SkyWalking and making it easy to query later</strong>, witho [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 f807954..c31e5f2 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
@@ -16,13 +16,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" 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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 2587c3f..77eea2b 100644
--- a/blog/2021/08/09/Apache-APISIX-in-Quliankeji/index.html
+++ b/blog/2021/08/09/Apache-APISIX-in-Quliankeji/index.html
@@ -16,14 +16,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" 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" con [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">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.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 0c8939a..bc6dcda 100644
--- a/blog/2021/08/10/apisix-nginx/index.html
+++ b/blog/2021/08/10/apisix-nginx/index.html
@@ -15,31 +15,32 @@
 <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 架构分析:如何动态管理 Nginx 集群? | 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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.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">Apache APISIX Architecture Analysis: How to Dynamically Manage Nginx Clustering? | 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 [...]
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<img src="https://static.apiseven.com/202108/1631170345853-f020a64d-3e97-49c0-8395-c9e4e9cf4233.jpeg" alt="基于 etcd 同步 nginx 配置"></li></ul><p>因此,不同于 Orange 和 Kong,Apache APISIX 采用了 etcd 作为中心化的配置组件。你可以在生产环境的 Apache APISIX 中通过 etcdctl 看到如下类似配置:</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 cl [...]
-</span></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">// 参见 ngx_proc.c 文件</span><span class="token plain"></span></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">void</span><span class="token plain"></span></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><sp [...]
+<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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<img src="https://static.apiseven.com/202108/1631170345853-f020a64d-3e97-49c0-8395-c9e4e9cf4233.jpeg" alt="etcd-based synchronization of nginx configuration"></li></ul><p>Therefore, unlike Orange and Kong, Apache APISIX uses etcd as the centralized configuration component. You can see a similar configuration in a production environment of Apache APISIX via etcdctl as follows.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><pre tabindex="0" class="prism-co [...]
+</span></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">// See the ngx_proc.c file</span><span class="token plain"></span></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">void</span><span class="token plain"></span></span><span class="token-line" style="color:#393A34"><span class="token plain"></s [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token function" style="color:#d73a49">lua_pushcfunction</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">L</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> ngx_http_lua_ngx_timer_at</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="c [...]
-</span></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token function" style="color:#d73a49">lua_setfield</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">L</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">-</span><span class="token number" style="color:#36acaa">2</span><span class="tok [...]
-</span></span><span class="token-line" style="color:#393A34"><span class="token plain">    local ok, err = util.write_file(env.apisix_home .. &quot;/conf/nginx.conf&quot;,</span></span><span class="token-line" style="color:#393A34"><span class="token plain">                                    ngxconf)</span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">Copy</button></div></div><p>当然,Apache APISIX 允许用户修改 nginx.conf 模板中的部分数据 [...]
-</span></span><span class="token-line" style="color:#393A34"><span class="token plain">    local_conf_path = profile:yaml_path(&quot;config&quot;)</span></span><span class="token-line" style="color:#393A34"><span class="token plain">    local user_conf_yaml, err = util.read_file(local_conf_path)</span></span><span class="token-line" style="color:#393A34"><span class="token plain">    ok, err = merge_conf(default_conf, user_conf)</span></span><span class="token-line" style="color:#393A34" [...]
+</span></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token function" style="color:#d73a49">lua_setfield</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">L</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">-</span><span class="token number" style="color:#36acaa">2</span><span class="tok [...]
+</span></span><span class="token-line" style="color:#393A34"><span class="token plain">    local ok, err = util.write_file(env.apisix_home .. &quot;/conf/nginx.conf&quot;,</span></span><span class="token-line" style="color:#393A34"><span class="token plain">                                    ngxconf)</span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">Copy</button></div></div><p>Of course, Apache APISIX allows you to modi [...]
+</span></span><span class="token-line" style="color:#393A34"><span class="token plain">    local_conf_path = profile:yaml_path(&quot;config&quot;)</span></span><span class="token-line" style="color:#393A34"><span class="token plain">    local user_conf_yaml, err = util.read_file(local_conf_path)</span></span><span class="token-line" style="color:#393A34"><span class="token plain">    ok, err = merge_conf(default_conf, user_conf)</span></span><span class="token-line" style="color:#393A34" [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">local function sync_data(self)</span></span><span class="token-line" style="color:#393A34"><span class="token plain">    local dir_res, err = waitdir(self.etcd_cli, self.key, self.prev_index + 1, self.timeout)</span></span><span class="token-line" style="color:#393A34"><span class="token plain">end</span></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inli [...]
-</span></span><span class="token-line" style="color:#393A34"><span class="token plain">local function waitdir(etcd_cli, key, modified_index, timeout)</span></span><span class="token-line" style="color:#393A34"><span class="token plain">    local res_func, func_err, http_cli = etcd_cli:watchdir(key, opts)</span></span><span class="token-line" style="color:#393A34"><span class="token plain">    if http_cli then</span></span><span class="token-line" style="color:#393A34"><span class="token  [...]
+</span></span><span class="token-line" style="color:#393A34"><span class="token plain">local function waitdir(etcd_cli, key, modified_index, timeout)</span></span><span class="token-line" style="color:#393A34"><span class="token plain">    local res_func, func_err, http_cli = etcd_cli:watchdir(key, opts)</span></span><span class="token-line" style="color:#393A34"><span class="token plain">    if http_cli then</span></span><span class="token-line" style="color:#393A34"><span class="token  [...]
+The HTTP2 protocol is very complex, and there is no HTTP2 cosocket library available for production environments.</li></ol><p>The lua-resty-etcd library using HTTP/1.1 is actually very inefficient, and if you capture packets on APISIX, you will see frequent POST messages with a URI of /v3/watch and a Base64-encoded watch directory with a body of</p><p><img src="https://static.apiseven.com/202108/1631170602368-d105d014-efe4-48c7-93b8-be5447c76a70.jpeg" alt="APISIX communicates with etcd o [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">local function watch(self, key, attr)</span></span><span class="token-line" style="color:#393A34"><span class="token plain">    callback_fun, err, http_cli = request_chunk(self, &#x27;POST&#x27;, &#x27;/watch&#x27;,</span></span><span class="token-line" style="color:#393A34"><span class="token plain">                                                opts, attr.timeout or self.timeout)</span></span><span  [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">local function request_chunk(self, method, path, opts, timeout)</span></span><span class="token-line" style="color:#393A34"><span class="token plain">    http_cli, err = utils.http.new()</span></span><span class="token-line" style="color:#393A34"><span class="token plain">    -- 发起 TCP 连接</span></span><span class="token-line" style="color:#393A34"><span class="token plain">    endpoint, err = http_requ [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">local function http_request_chunk(self, http_cli)</span></span><span class="token-line" style="color:#393A34"><span class="token plain">    local endpoint, err = choose_endpoint(self)</span></span><span class="token-line" style="color:#393A34"><span class="token plain">    ok, err = http_cli:connect({</span></span><span class="token-line" style="color:#393A34"><span class="token plain">        scheme = [...]
-</span></span><span class="token-line" style="color:#393A34"><span class="token plain">    return endpoint, err</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>可见,Apache APISIX 在每个 worker 进程中,<strong>通过 <code>ngx.timer.at</code> 和 lua-resty-etcd 库反复请求 etcd,以此保证每个 Worker 进程中都含有最新的配置。</strong></p><h2><a a [...]
+</span></span><span class="token-line" style="color:#393A34"><span class="token plain">    return endpoint, err</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>As you can see, Apache APISIX makes sure that each worker process contains the latest configuration by <strong>repeatedly requesting etcd throug [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">    location/apisix/admin </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">        content_by_lua_block </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span></span><span class="token-line" style="color:#393A34"><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>这样,Nginx 接收到的 /apisix/admin 请求将被 <code>http_admin</code> 函数处理:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly lua"><pre tabindex="0" class="prism-code language-lua codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_39YC"><span class="token-line" style="color:#393 [...]
+</span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o clean-btn">Copy</button></div></div><p>Thus, the /apisix/admin requests received by Nginx will be processed by the <code>http_admin</code> function.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly lua"><pre tabindex="0" class="prism-code language-lua codeBlock_23N8 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_3 [...]
 </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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+</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="to [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 84168df..3aac739 100644
--- a/blog/2021/08/11/interview-TuZhengsong/index.html
+++ b/blog/2021/08/11/interview-TuZhengsong/index.html
@@ -15,14 +15,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">从新手村出来,我在 Apache APISIX 社区发出了第一个 PR | 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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.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">I issued my first PR in the Apache APISIX community | 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"  [...]
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 d63b7de..11ff246 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
@@ -16,13 +16,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" 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:ima [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 dabdf96..351a776 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
@@ -16,15 +16,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" 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:ima [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">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>Behind these fast-growing numbers, open source maintainers did a lot of work on propaganda, article, media, Meetups, etc., to attract more developers for their projects, It’s a lot to take in.</p><p>So for developers, how can they find out which one is the best fit for their company among the hundreds of projects on GitHub?</p><p>V [...]
 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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 b243572..4c215f8 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
@@ -16,18 +16,18 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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" 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-helme [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<img alt="Create App Integration" src="/assets/images/2021-08-16-4-56246ab773e8514b6d7ff6e88a1ba575.png"></li><li>Select &quot;OIDC-OpenID Connect&quot; for the Sign-in method, and select &quot;Web Application&quot; for the  Application type.
+<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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<img alt="Create App Integration" src="/assets/images/2021-08-16-4-56246ab773e8514b6d7ff6e88a1ba575.png"></li><li>Select &quot;OIDC-OpenID Connect&quot; for the Sign-in method, and select &quot;Web Application&quot; for the Application type.
 <img alt="Create a new App Integration" src="/assets/images/2021-08-16-5-27949e296923f482ca03e52147040e5b.png"></li><li>Set the redirect URL for login and logout. The &quot;Sign-in redirect URIs&quot; are links a user can go to after a successful login, and the &quot;Sign-out redirect URIs&quot; are links a user goes to after a successful logout. In this example, we set both sign-in and sign-out redirect URIs to <code>http://127.0.0.1:9080/</code>.
 <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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<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"></li><li>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.</li><li>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.</li></ol><div class="codeBlockContain [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 44db70c..429f0c7 100644
--- a/blog/2021/08/17/interview-airwallex/index.html
+++ b/blog/2021/08/17/interview-airwallex/index.html
@@ -15,14 +15,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">Apache APISIX 在 Airwallex 的应用 | 专访 Airwallex 技术平台负责人李杨 | 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:imag [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.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">Apache APISIX in Airwallex | Interview with Yang Li, Head of Airwallex Technology Platform | 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-re [...]
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 5a52f2f..495451b 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
@@ -15,28 +15,28 @@
 <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 中使用 Casbin 进行授权 | 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://api [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.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">Licensing with Casbin in 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="http [...]
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<a href="https://github.com/apache/apisix/blob/d9b928321fcdd12eef024df8c7c410424c1e0c8b/docs/en/latest/plugins/authz-casbin.md" target="_blank" rel="noopener noreferrer">authz-casbin</a> 是一个基于 lua-casbin 的 Apache APISIX 插件,支持基于各种访问模型的强大授权。Casbin 是一个强大的、高效的开源访问控制框架,支持 ACL、RBAC、ABAC 等访问控制模型,lua-casbin 是 Casbin 访问控制框架的 Lua 版本实现。
-authz-casbin 插件可以把路由匹配和请求授权这两个功能很好地进行解耦,你可以将各种授权访问模型加载到 Apache APISIX 中,借助 lua-casbin 实现高效复杂的授权模式。</p><p><strong>注意</strong>:如果你想要实现身份验证(authentication),你需要使用其他插件或者自己来配置完成验证用户身份,比如 <a href="https://github.com/apache/apisix/blob/master/docs/zh/latest/plugins/jwt-auth.md" target="_blank" rel="noopener noreferrer">jwt-auth</a> 插件。</p><h2><a aria-hidden="true" tabindex="-1" class="anchor anchor__h2 anchorWithHideOnScrollNavbar_3R7-" id="authz-casbin-使用指南"></a>authz-casbin 使用指南<a class="hash- [...]
-假如,我们想要创建一个模型来访问三个资源:/,/res1,/res2,我们想要一个类似于这样的模型:</p><p><img alt="authz-casbin example" src="/assets/images/2021-08-18-1-5ecf309fec322291ce40b4fae7424acc.png"></p><p>在这个模型中,所有的用户,例如 Jack,可以访问主页面(/)。而像 Alice 和 Bob 具有管理员权限的用户则可以访问所有的页面和资源(/res1,/res2,/)。这样,我们就需要来限制没有管理员权限的用户只能使用 GET 请求方法访问特定的资源。所需要的模型如下:</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;bac [...]
+<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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<a href="https://github.com/apache/apisix/blob/d9b928321fcdd12eef024df8c7c410424c1e0c8b/docs/en/latest/plugins/authz-casbin.md" target="_blank" rel="noopener noreferrer">authz-casbin</a> is a lua-casbin based Apache APISIX plugin that supports powerful authorization based on various access models. casbin is a powerful and efficient open source access control framework that supports ACL, RBAC, ABAC and other access control models. lua-casbin is a Lua version implementation of the Casbin a [...]
+The authz-casbin plugin can decouple the two functions of route matching and request authorization very well. You can load various authorization access models into Apache APISIX and implement efficient and complex authorization models with the help of lua-casbin.</p><p><strong>Note</strong>: If you want to implement authentication, you need to use other plugins or configure yourself to complete the authentication of the user&#x27;s identity, for example <a href="https://github.com/apache [...]
+If we want to create a model to access three resources: /, /res1, /res2, we want a model like this</p><p><img alt="authz-casbin example" src="/assets/images/2021-08-18-1-5ecf309fec322291ce40b4fae7424acc.png"></p><p>In this model, all users, such as Jack, have access to the main page (/). And users like Alice and Bob with admin rights have access to all pages and resources (/res1, /res2, /). Thus, we need to restrict users without administrator privileges to access specific resources usin [...]
 </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">policy_definition</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">p </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> sub, obj, act</s [...]
 </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">role_definition</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">g </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> _, _</span></span> [...]
 </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">policy_effect</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">e </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> some</span><span cla [...]
-</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">matchers</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">m </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token [...]
-同样,你可以将模型和策略直接放到里面:</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 string" style="colo [...]
+</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">matchers</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">m </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token [...]
+Similarly, you can put models and policies directly into</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></span><span class="token-line" style="color:#393A34"><span class="token string" style="color:#e3116c">            [policy_definition]</span></span><span class="token-line" style="color:#393A34"><span class="token string" style="color:#e3116c">            p = sub, obj, act</span></span><span class="token-line" style="color:#393A34"><span class="token string" style="display:inline-block;color:#e3116c">
 </span></span><span class="token-line" style="color:#393A34"><span class="token string" style="color:#e3116c">            [role_definition]</span></span><span class="token-line" style="color:#393A34"><span class="token string" style="color:#e3116c">            g = _, _</span></span><span class="token-line" style="color:#393A34"><span class="token string" style="display:inline-block;color:#e3116c">
 </span></span><span class="token-line" style="color:#393A34"><span class="token string" style="color:#e3116c">            [policy_effect]</span></span><span class="token-line" style="color:#393A34"><span class="token string" style="color:#e3116c">            e = some(where (p.eft == allow))</span></span><span class="token-line" style="color:#393A34"><span class="token string" style="display:inline-block;color:#e3116c">
 </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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+</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.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 22ec8da..87a856d 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
@@ -15,17 +15,17 @@
 <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">Go 让 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.apac [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.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">Go gives Apache APISIX a run for its money | 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=" [...]
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-</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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+</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>You can see that the interface returns hello and does not access any upstream.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor anchor__h3 anchorWithHideOnScrollNavbar_3R7-" id="setting-up-apache-apisix-run"></a>Setting up Apache APISIX (run)<a  [...]
+Click to visit <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="related-reading"></a>Related reading<a class="hash-link" href="#related-reading" 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="n [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/08/19/weekly-report/index.html b/blog/2021/08/19/weekly-report/index.html
index 0286558..6bf6dd2b 100644
--- a/blog/2021/08/19/weekly-report/index.html
+++ b/blog/2021/08/19/weekly-report/index.html
@@ -16,12 +16,12 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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 社区周报 | 08-09 ~ 08-15 | 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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
 <strong>问题描述</strong>:Admin API 中关于创建 Route 入参 (vars) 的描述有错误.
 <img alt="issue" src="/assets/images/issue_photo-09addbbcbea6116f36fdad097e6c6265.png">
 <strong>解决方案</strong>:在 json 中,方括号表示数组,而花括号表示对象。这里明显是想表述是数组嵌套数组的方式,但是用两个花括号在 json 里面是错误的书写方式。所以这里应该是方括号。</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></s [...]
@@ -38,8 +38,8 @@
 本次 Meetup 由 API7.AI 发起,并邀请爱奇艺、空中云汇等合作伙伴共同为大家呈现。Apache APISIX PMC 成员、贡献者、社区技术专家汇聚一堂,共同探讨 Apache APISIX 社区发展、行业实践等话题。</p></li><li><p><a href="https://mp.weixin.qq.com/s/pyfBAHONGjkKJhwsjyhdUA" target="_blank" rel="noopener noreferrer">从新手村出来,我在 Apache APISIX 社区发出了第一个 PR</a><br>
 屠正松同学的采访文章,下回我们会采访哪位社区的小伙伴呢?快来 Apache APISIX 社区瞧一瞧吧!没准,下一位 committer 就是你!</p></li><li><p><a href="https://mp.weixin.qq.com/s/oARDFf_48X99MXBwoXcSHw" target="_blank" rel="noopener noreferrer">舍弃 Kong 和 Nginx,Apache APISIX 在趣链科技 BaaS 平台的落地实践</a><br>
 介绍了 Apache APISIX 在趣链科技 BaaS 平台中的落地实践情况,以及趣链科技在众多网关应用中选择 Apache APISIX 的原因。</p></li><li><p><a href="https://mp.weixin.qq.com/s/G1lQUdZ05_HlZLNcY9tflw" target="_blank" rel="noopener noreferrer">贡献者,是衡量开源项目的金指标</a><br>
-秉承 The Apache Way,我们相信,只有活跃的社区才能保证开源项目的未来。同时,我们也希望可以通过更加直观的图表来展示社区活跃度。</p></li></ul></div><footer class="row docusaurus-mt-lg blogPostDetailsFull_3kfx"><div class="col"><b>Tags:</b><ul class="tags_2ga9 padding--none margin-left--sm"><li class="tag_11ep"><a class="tag_1Okp tagRegular_3MiF" href="/blog/tags/events">Events</a></li></ul></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Blog post page navigation"><div class="pagination-nav__item"><a class="pagi [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+秉承 The Apache Way,我们相信,只有活跃的社区才能保证开源项目的未来。同时,我们也希望可以通过更加直观的图表来展示社区活跃度。</p></li></ul></div><footer class="row docusaurus-mt-lg blogPostDetailsFull_3kfx"><div class="col"><b>Tags:</b><ul class="tags_2ga9 padding--none margin-left--sm"><li class="tag_11ep"><a class="tag_1Okp tagRegular_3MiF" href="/blog/tags/events">Events</a></li></ul></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Blog post page navigation"><div class="pagination-nav__item"><a class="pagi [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/08/21/shanghai-meetup/index.html b/blog/2021/08/21/shanghai-meetup/index.html
index 01452c9..ae31f85 100644
--- a/blog/2021/08/21/shanghai-meetup/index.html
+++ b/blog/2021/08/21/shanghai-meetup/index.html
@@ -15,14 +15,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">8 月 21 日 Apache APISIX Meetup 上海站,欢迎报名参加! | 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="h [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.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">August 21 Apache APISIX Meetup Shanghai, welcome to register! | 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="twitt [...]
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/08/23/ApacheCon-Asia-2021/index.html b/blog/2021/08/23/ApacheCon-Asia-2021/index.html
index b9e5c92..9f4f226 100644
--- a/blog/2021/08/23/ApacheCon-Asia-2021/index.html
+++ b/blog/2021/08/23/ApacheCon-Asia-2021/index.html
@@ -15,14 +15,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">ApacheCon Asia 2021 | 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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.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">ApacheCon Asia 2021 | 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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/08/23/weekly-report/index.html b/blog/2021/08/23/weekly-report/index.html
index 0d66313..d5c57a5 100644
--- a/blog/2021/08/23/weekly-report/index.html
+++ b/blog/2021/08/23/weekly-report/index.html
@@ -16,12 +16,12 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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 社区周报 | 2021 8.16-8.22 | 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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
 <strong>相关 PR</strong>:<a href="https://github.com/apache/apisix/pull/4817" target="_blank" rel="noopener noreferrer">https://github.com/apache/apisix/pull/4817</a><br>
 <strong>贡献者</strong>:<a href="https://github.com/RocFang" target="_blank" rel="noopener noreferrer">RocFang</a>  </p></li><li><p><strong>ext-plugin 插件支持 ExtraInfo</strong><br>
 <strong>相关 PR</strong>:<a href="https://github.com/apache/apisix/pull/4835" target="_blank" rel="noopener noreferrer">https://github.com/apache/apisix/pull/4835</a><br>
@@ -32,8 +32,8 @@
 <strong>贡献者</strong>:<a href="https://github.com/okaybase" target="_blank" rel="noopener noreferrer">okaybase</a>  </p></li></ul><p>Apache APISIX 的<a href="https://apisix.apache.org/" target="_blank" rel="noopener noreferrer">项目官网</a>和 Github 上的 <a href="https://github.com/apache/apisix/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc" target="_blank" rel="noopener noreferrer">issue</a> 上已经积累了比较丰富的文档教程和使用经验,如果您遇到问题可以翻阅文档,用关键词在 issue 中搜索,也可以参与 issue 上的讨论,提出自己的想法和实践经验。</p><h2><a aria-hidd [...]
 这篇文章将详细讲解如何用 Go 来开发 Apache APISIX 插件。通过拥抱 Go 的生态圈,为 Apache APISIX 开创一片新天地,希望 Go 能让 Apache APISIX 如虎添翼!</p></li><li><p><a href="https://mp.weixin.qq.com/s?__biz=MzI1MDU3NjQ5OA==&amp;mid=2247486406&amp;idx=1&amp;sn=5d04353f3d8128f17fca138572667ddb&amp;chksm=e98160dbdef6e9cd19ddeed4267554a15bcd1a10decfa2c16f2989575bd9a1c9c95349b0c0cc&amp;token=1586118041&amp;lang=zh_CN#rd" target="_blank" rel="noopener noreferrer">Apache APISIX 在 Airwallex 的应用 | 专访 Airwallex 技术平台负责人李杨</a><br>
 Airwallex 空中云汇技术平台负责人李杨的专访,一起来听听空中云汇与 Apache APISIX 之间的故事。</p></li><li><p><a href="https://mp.weixin.qq.com/s?__biz=MzI1MDU3NjQ5OA==&amp;mid=2247486382&amp;idx=1&amp;sn=f041eb8c38dd528450e5bf4280b60b0f&amp;chksm=e98160b3def6e9a5331f9485d8a478f9546475f949a31f8142c4188d9c104d39eec9a281bbf2&amp;token=1586118041&amp;lang=zh_CN#rd" target="_blank" rel="noopener noreferrer">Apache APISIX 社区周报 | 2021 8.9-8.15</a><br>
-“独行者速,众行者远”。Apache APISIX 社区周报希望可以帮助社区小伙伴们更好地掌握 Apache APISIX 社区的每周进展,方便大家参与到 Apache APISIX 社区中来。</p></li></ul></div><footer class="row docusaurus-mt-lg blogPostDetailsFull_3kfx"><div class="col"><b>Tags:</b><ul class="tags_2ga9 padding--none margin-left--sm"><li class="tag_11ep"><a class="tag_1Okp tagRegular_3MiF" href="/blog/tags/events">Events</a></li></ul></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Blog post page navigation"><div class="paginatio [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+“独行者速,众行者远”。Apache APISIX 社区周报希望可以帮助社区小伙伴们更好地掌握 Apache APISIX 社区的每周进展,方便大家参与到 Apache APISIX 社区中来。</p></li></ul></div><footer class="row docusaurus-mt-lg blogPostDetailsFull_3kfx"><div class="col"><b>Tags:</b><ul class="tags_2ga9 padding--none margin-left--sm"><li class="tag_11ep"><a class="tag_1Okp tagRegular_3MiF" href="/blog/tags/events">Events</a></li></ul></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Blog post page navigation"><div class="paginatio [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 5f979c2..c815236 100644
--- a/blog/2021/08/24/shanghai-meetup-recap/index.html
+++ b/blog/2021/08/24/shanghai-meetup-recap/index.html
@@ -15,14 +15,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">Apache APISIX Meetup 上海站全程回顾 | 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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.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">Apache APISIX Meetup in Shanghai | 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://ap [...]
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 5ec6666..886d978 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
@@ -16,12 +16,12 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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" 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=" [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">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">policy_definition</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">p </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> sub, obj, act</s [...]
 </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">role_definition</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">g </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> _, _</span></span> [...]
 </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">policy_effect</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">e </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> some</span><span cla [...]
@@ -31,8 +31,8 @@
 </span></span><span class="token-line" style="color:#393A34"><span class="token string" style="color:#e3116c">            [policy_effect]</span></span><span class="token-line" style="color:#393A34"><span class="token string" style="color:#e3116c">            e = some(where (p.eft == allow))</span></span><span class="token-line" style="color:#393A34"><span class="token string" style="display:inline-block;color:#e3116c">
 </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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+</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.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 b918443..bcde2fd 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
@@ -15,18 +15,19 @@
 <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 的 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 [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.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">Centralized authentication using the OpenID Connect plug-in for 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="t [...]
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<img alt="创建一个 Okta 应用" src="/assets/images/2021-08-16-4-56246ab773e8514b6d7ff6e88a1ba575.png"><img alt="选择 OIDC 登录模式以及 Web Application 应用类型" src="/assets/images/2021-08-16-5-27949e296923f482ca03e52147040e5b.png"></li><li>设置登录和登出的跳转 URL。
-其中 “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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<img alt="Create an Okta application" src="/assets/images/2021-08-16-4-56246ab773e8514b6d7ff6e88a1ba575.png"><img alt="Select OIDC login mode and Web Application application type" src="/assets/images/2021-08-16-5-27949e296923f482ca03e52147040e5b.png"> 2.</li><li>Set the login and logout jump URLs.
+The &quot;Sign-in redirect URIs&quot; are the links that are allowed to be redirected after successful login, and the &quot;Sign-out redirect URIs&quot; are the links that are redirected after logging out. In this example, we set both the sign-in redirect and sign-out redirect URLs to <code>http://127.0.0.1:9080/</code>.
+<img alt="Set the login and logout URL" src="/assets/images/2021-08-16-6-f282419b7f52ab87487580f15b7789f3.png"></li><li>Click &quot;Save&quot; to save the changes after finishing the settings.
+<img alt="Save Changes" src="/assets/images/2021-08-16-7-b7ceb94a0cbdac698adcdd78dd290bbe.png">
+Visit the General page of the application to get the following configuration, which is required to configure Apache APISIX OpenID Connect.</li></ol><ul><li>Client ID: OAuth client ID, which is the ID of the application, corresponding to <code>client_id</code> and <code>{YOUR_CLIENT_ID}</code> below.</li><li>Client secret: OAuth client secret, i.e. application key, corresponds to <code>client_secret</code> and <code>{YOUR_CLIENT_SECRET}</code> below.</li><li>Okta domain: The domain name u [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 d322a28..bbb17ff 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
@@ -16,16 +16,16 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Why Apache APISIX chose Nginx and Lua to build API Gateway | 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: [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
 Headers are always parsed in advance and stored as a <code>map [string][]string</code>, even if they are not used (see: <a href="https://github.com/valyala/fasthttp#faq" target="_blank" rel="noopener noreferrer">Fasthttp FAQ</a>).</p><p>The Fasthttp document also mentions some optimization skills for bytes matter, I would suggest that you take a look.</p><p>Actually, codes written in LuaJIT are not necessarily much worse than those written in Go. Here are two reasons:</p><p><strong>First [...]
 Second, LuaJIT’s JIT optimization is unparalleled.</p><p><strong>Secondly, LuaJIT has one of the best JIT Opitimizations.</strong></p><p>We could divide dynamic languages into two cases, with or without JIT. JIT optimization can compile dynamic language code into machine code at runtime, thus improving the performance of the original code by order of magnitude.</p><p>Languages with JIT can also be divided into two cases, those that fully support JIT (e.g LuaJIT) and those that only suppo [...]
-</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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+</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.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 e9220be..9f44393 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
@@ -16,13 +16,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.9 | 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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 74b5f36..50a4747 100644
--- a/blog/2021/08/30/Ingress-Meeting/index.html
+++ b/blog/2021/08/30/Ingress-Meeting/index.html
@@ -15,16 +15,16 @@
 <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">社区会议| 周三下午 2 点,Apache APISIX Ingress 社区会议与你不见不散 | 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" cont [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.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">Webinar| See you at the Apache APISIX Ingress Community Meeting on Wednesday at 2pm! | 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-he [...]
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">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 docusaurus-mt-lg blogPostDetailsFull_3kfx"><div class="col"><b>Tags:</b><ul class="tags_2ga9 padding--none margin-left--sm"><li class="tag_11ep"><a class="tag_1Okp tagRegular_3MiF" href="/blog/tags/events">Events</a></li></ul></div></footer></article><nav class=" [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+Participate in the community the Apache Way way by subscribing to the <a href="https://apisix.apache.org/docs/general/subscribe-guide" target="_blank" rel="noopener noreferrer">Subscription Guide</a>. The mailing list is the most common way for the Apache community to communicate, and the community will actively respond to questions on the mailing list.</p></li><li><p>Start a discussion in the Apache APISIX Github discussion
+The <a href="https://github.com/apache/apisix/discussions" target="_blank" rel="noopener noreferrer">discussion</a> area is very active. From time to time, we&#x27;ll also include a summary of frequently asked questions in the discussion to make them easier to find.</p></li></ol></div><footer class="row docusaurus-mt-lg blogPostDetailsFull_3kfx"><div class="col"><b>Tags:</b><ul class="tags_2ga9 padding--none margin-left--sm"><li class="tag_11ep"><a class="tag_1Okp tagRegular_3MiF" href=" [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/08/30/weekly-report/index.html b/blog/2021/08/30/weekly-report/index.html
index e323d86..994dfdb 100644
--- a/blog/2021/08/30/weekly-report/index.html
+++ b/blog/2021/08/30/weekly-report/index.html
@@ -15,14 +15,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">Apache APISIX 社区周报 | 2021 8.23-8.29 | 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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.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">Apache APISIX Community Weekly Report | 2021 8.23-8.29 | 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:imag [...]
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 86aa951..1feab51 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"	
@@ -15,15 +15,15 @@
 <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 × KubeSphere:提供更好用的网关及 K8S Ingress Controller | 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 [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.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">Apache APISIX × KubeSphere: Providing a better gateway and K8S Ingress Controller | 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-helme [...]
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">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.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 973ad71..73a4c48 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
@@ -16,12 +16,12 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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" 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://ap [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
 和 <a href="https://github.com/apache/apisix-go-plugin-runner" target="_blank" rel="noopener noreferrer">Go</a> 语言的 Runner,今天 Python Runner
 也来了,社区中的小伙伴们在开发 Apache APISIX 的插件时又多了一种新选择。</p></blockquote><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><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 to heading">#</a></h3><p><code>Apache APISIX</c [...]
 的加持只需要关注业务实现即可,省去了大量花费在通用能力上的开发与维护上的时间并且也降低了整体业务架构的复杂度。</p><h3><a aria-hidden="true" tabindex="-1" class="anchor anchor__h3 anchorWithHideOnScrollNavbar_3R7-" id="python"></a>Python<a class="hash-link" href="#python" title="Direct link to heading">#</a></h3><p><code>Python</code> 语言作为一个解释型的高级编程语言,它 <code>语法简洁易上手</code>、<code>代码可读性好</code> ,在 <code>跨平台</code> 、<code>可移植性</code> 、<code>开发效率</code>
@@ -46,8 +46,8 @@
 </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">body </span><span class="token operator" style="color:#393A34">=</span><span 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"># 设置响应状态码</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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+的开发,让我们一起共建 <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.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 9149ab8..f926788 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
@@ -16,13 +16,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" 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://api [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 ae55c9d..29cf45b 100644
--- a/blog/2021/09/07/iQIYI-usercase/index.html
+++ b/blog/2021/09/07/iQIYI-usercase/index.html
@@ -16,13 +16,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" 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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 0d4b7ce..35c7719 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
@@ -16,13 +16,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" 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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/09/13/china-mobile-cloud-usercase/index.html b/blog/2021/09/13/china-mobile-cloud-usercase/index.html
index a322acb..7bbe3ea 100644
--- a/blog/2021/09/13/china-mobile-cloud-usercase/index.html
+++ b/blog/2021/09/13/china-mobile-cloud-usercase/index.html
@@ -16,15 +16,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">How Apache APISIX is implemented in China Mobile Cloud | 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:imag [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
 In order to match our business requirements, we customize a constant constant as the range of imit-conn key. The right side of the above figure is the modified configuration after accessing Apache APISIX, and the constant constant constant key is used to achieve the function of global flow-limit.</p><p><img src="https://static.apiseven.com/202108/1631500546238-9fd5ebcf-d205-4d99-a34d-236d5589a7e6.png" alt="Global Flow-limit"></p><h3><a aria-hidden="true" tabindex="-1" class="anchor ancho [...]
 If a node has a problem upstream, it will be forwarded to other upstream nodes in the same AZ for processing (green line). If all upstream nodes hang, the ability to invoke requests across AZs (level2, red line) is implemented based on Apache APISIX, which writes the requests to other AZs and finally achieves request scheduling across AZs.</p><p><img src="https://static.apiseven.com/202108/1631500626933-473fdd62-dcee-42cc-93c2-93d83acd796c.png" alt="Cross Available Zones Request Scheduli [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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
index 993af3b..683be5c 100644
--- a/blog/2021/09/14/youzan/index.html
+++ b/blog/2021/09/14/youzan/index.html
@@ -16,13 +16,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 助力有赞云原生 PaaS 平台,实现全面微服务治理 | 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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/09/15/weekly-report/index.html b/blog/2021/09/15/weekly-report/index.html
index 1c8a2e6..40e4ba4 100644
--- a/blog/2021/09/15/weekly-report/index.html
+++ b/blog/2021/09/15/weekly-report/index.html
@@ -16,15 +16,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">社区周报|新晋 committer 两位,功能亮点更新进行中 | 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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">casbin 1.26.0-1 depends on lrexlib-pcre &gt;= 2.9.1 (not installed)</span></span><span class="token-line" style="color:#393A34"><span class="token plain">Installing https://luarocks.org/lrexlib-pcre-2.9.1-1.src.rock</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">Error: Failed installing dependency: https://luarocks.org/casbin-1.26.0-1.rockspec - Failed installing dependency: https://luarocks.org/lrexlib-pcre-2.9.1-1.src.rock - Could not find header file for PCRE</span></span><span class="token-line" style="color:#393A34"><span class="token plain">  No file pcre.h in /usr/local/include</span></span><span class="token-line" style="color:#393A34"><span class="tok [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/09/16/tencent-cloud/index.html b/blog/2021/09/16/tencent-cloud/index.html
index c9ccd91..1b2da5c 100644
--- a/blog/2021/09/16/tencent-cloud/index.html
+++ b/blog/2021/09/16/tencent-cloud/index.html
@@ -16,13 +16,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" 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://apisi [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/09/18/xiaodian-usercase/index.html b/blog/2021/09/18/xiaodian-usercase/index.html
index f6a04d6..d7e272d 100644
--- a/blog/2021/09/18/xiaodian-usercase/index.html
+++ b/blog/2021/09/18/xiaodian-usercase/index.html
@@ -16,14 +16,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 助力便利充电创领者小电,实现云原生方案 | 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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
 作者孙冉,运维专家。目前就职于小电平台架构部,主要负责 K8s 集群和 API 网关的相关部署。</p></blockquote><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>小电作为国内共享充电宝服务平台,目前还处于初创阶段。从运维体系、测试环境等方面来讲,当下产品的业务主要面临了以下几个问题:</p><ul><li>VM 传统模式部署,利用率低且不易扩展</li><li>开发测试资源抢占</li><li>多套独立的测试环境(k8s),每次部署维护步骤重复效率低</li><li>使用 Nginx 配置管理,运维成本极高</li></ul><p>在 2020 年初,我们决定启动容器化项目,打算寻找一个现有方案来进行上述问题的解决。 [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/09/24/youpaicloud-usercase/index.html b/blog/2021/09/24/youpaicloud-usercase/index.html
index ff7bfb0..f6e7f36 100644
--- a/blog/2021/09/24/youpaicloud-usercase/index.html
+++ b/blog/2021/09/24/youpaicloud-usercase/index.html
@@ -16,14 +16,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 Ingress 为何成为又拍云打造容器网关的新选择? | 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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
 作者陈卓,又拍云开发工程师,负责云存储、云处理和网关应用开发。</p></blockquote><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>目前市面上可执行 Ingress 的产品项目逐渐丰富了起来,可选择的范围也扩大了很多。这些产品按照架构大概可分为两类,一类像 k8s Ingress、Apache APISIX Ingress,他们是基于 Nginx、OpenResty 等传统代理器,使用 k8s-Client 和 Golang 去做 Controller。还有一类新兴的用 Golang 语言去实现代理和控制器功能,比如 Traefik。</p><p>又拍云最开始包括现在的大部分业务仍在使用 Ingress-Ng [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/09/28/WPS-usercase/index.html b/blog/2021/09/28/WPS-usercase/index.html
index 6b3d50a..b4f722f 100644
--- a/blog/2021/09/28/WPS-usercase/index.html
+++ b/blog/2021/09/28/WPS-usercase/index.html
@@ -16,14 +16,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">百万级 QPS 业务新宠,金山办公携手 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= [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
 虽然自研成功,但在功能上却遗留了一些问题,比如:</p><ul><li>动态化只做到到 Upstream 维度</li><li>需要 Reload 才能带出新域名</li><li>底层设计简单,功能扩展能力不强</li></ul><p>后续我们对 API Gateway 功能有了强需求后,开始去调研相关的开源网关产品。</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>实际上 2019 年年底开始调研网关产品时,Kong 算是一个比较流行的选择。</p><p>但后续经过测试发现,Kong 的性能不太能满足我们的需求,同时我们认为 Ko [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/09/29/release-apache-apisix-2.10/index.html b/blog/2021/09/29/release-apache-apisix-2.10/index.html
index c179f74..e5dcbf7 100644
--- a/blog/2021/09/29/release-apache-apisix-2.10/index.html
+++ b/blog/2021/09/29/release-apache-apisix-2.10/index.html
@@ -16,13 +16,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.10.0 | 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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/09/30/weekly-report/index.html b/blog/2021/09/30/weekly-report/index.html
index 4d90a33..9372caa 100644
--- a/blog/2021/09/30/weekly-report/index.html
+++ b/blog/2021/09/30/weekly-report/index.html
@@ -16,13 +16,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">社区周报|新晋 committer 一位,功能亮点更新进行中 | 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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/10/01/openEuler/index.html b/blog/2021/10/01/openEuler/index.html
index 4be8d6a..13ed9ea 100644
--- a/blog/2021/10/01/openEuler/index.html
+++ b/blog/2021/10/01/openEuler/index.html
@@ -16,13 +16,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 community members help openEuler release first community innovation version | 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-rea [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/10/09/apisix-ingress-techblog/index.html b/blog/2021/10/09/apisix-ingress-techblog/index.html
index 83c6018..324d078 100644
--- a/blog/2021/10/09/apisix-ingress-techblog/index.html
+++ b/blog/2021/10/09/apisix-ingress-techblog/index.html
@@ -16,14 +16,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">A thoughtful tutorial to get started with Apache APISIX Ingress from concept to practice | 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-reac [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
 For more details, please refer to: <a href="https://www.apiseven.com/zh/blog/traffic-split-in-apache-apisix-ingress-controller" target="_blank" rel="noopener noreferrer">Traffic Segmentation in Apache APISIX Ingress Controller</a>.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor anchor__h3 anchorWithHideOnScrollNavbar_3R7-" id="practice-scenario-2-configuring-authentication"></a>Practice Scenario 2: Configuring Authentication<a class="hash-link" href="#practice-scenario-2-config [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/10/13/celebrating-300-contributors-of-apisix/index.html b/blog/2021/10/13/celebrating-300-contributors-of-apisix/index.html
index 4492d24..e7c02ce 100644
--- a/blog/2021/10/13/celebrating-300-contributors-of-apisix/index.html
+++ b/blog/2021/10/13/celebrating-300-contributors-of-apisix/index.html
@@ -16,15 +16,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">New milestone for the Apache APISIX community - over 300 contributors worldwide! | 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 [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
 Follow <a href="https://space.bilibili.com/551921247" target="_blank" rel="noopener noreferrer">Apache APISIX bilibili</a> for past recaps.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor anchor__h3 anchorWithHideOnScrollNavbar_3R7-" id="apache-apisix-ingress-online-discussion"></a>Apache APISIX Ingress Online Discussion<a class="hash-link" href="#apache-apisix-ingress-online-discussion" title="Direct link to heading">#</a></h3><p>The Apache APISIX Ingress project hosts bi-weekl [...]
 You can view the bi-weekly Weekly report by clicking Blog and selecting Events tag on the Apache APISIX official website.</p><p>Past recommendations.</p><ul><li><a href="https://apisix.apache.org/zh/blog/2021/09/15/weekly-report" target="_blank" rel="noopener noreferrer">Community Weekly Report|Two new committers, feature highlights update in progress</a></li><li><a href="https://apisix.apache.org/zh/blog/2021/08/30/weekly-report" target="_blank" rel="noopener noreferrer">Apache APISIX C [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/10/14/weekly-report-1014/index.html b/blog/2021/10/14/weekly-report-1014/index.html
index 606cef1..7cf656a 100644
--- a/blog/2021/10/14/weekly-report-1014/index.html
+++ b/blog/2021/10/14/weekly-report-1014/index.html
@@ -16,13 +16,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">Community Weekly|10.1-10.14 Feature Highlight Updates in Progress | 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="t [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/10/18/meetup/index.html b/blog/2021/10/18/meetup/index.html
index 19a9043..0f719fd 100644
--- a/blog/2021/10/18/meetup/index.html
+++ b/blog/2021/10/18/meetup/index.html
@@ -16,14 +16,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">Webinar | Apache APISIX × Apache SkyWalking Online Meetup | 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:i [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
 <img src="https://apisix.apache.org/assets/images/2021-08-21-2-e9610756c89fec849caeb66361bce002.png" alt="Apache APISIX wechat"></p><p>See you live on Saturday, October 23rd at 14:00!</p></div><footer class="row docusaurus-mt-lg blogPostDetailsFull_3kfx"><div class="col"><b>Tags:</b><ul class="tags_2ga9 padding--none margin-left--sm"><li class="tag_11ep"><a class="tag_1Okp tagRegular_3MiF" href="/blog/tags/events">Events</a></li></ul></div></footer></article><nav class="pagination-nav do [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/10/22/cert-manager-in-ingress/index.html b/blog/2021/10/22/cert-manager-in-ingress/index.html
index fb13e3f..eab70ea 100644
--- a/blog/2021/10/22/cert-manager-in-ingress/index.html
+++ b/blog/2021/10/22/cert-manager-in-ingress/index.html
@@ -16,18 +16,18 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Tutorial: How to use Cert Manager to manage certificates in Apache APISIX Ingress Controller | 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- [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">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/apisix-admin [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">NAME                                        READY   UP-TO-DATE   AVAILABLE   AGE</span></span><span class="token-line" style="color:#393A34"><span class="token plain">deployment.apps/apisix                      </span><span class="token number" style="color:#36acaa">1</span><span class="token plain">/1     </span><span class="token number" style="color:#36acaa">1</span><span class="token plain">        [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">NAME                                                   DESIRED   CURRENT   READY   AGE</span></span><span class="token-line" style="color:#393A34"><span class="token plain">replicaset.apps/apisix-5d99956d88                      </span><span class="token number" style="color:#36acaa">1</span><span class="token plain">         </span><span class="token number" style="color:#36acaa">1</span><span class="t [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">NAME                           READY   AGE</span></span><span class="token-line" style="color:#393A34"><span class="token plain">statefulset.apps/apisix-etcd   </span><span class="token number" style="color:#36acaa">2</span><span class="token plain">/3     57m</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">NAME                                     COMPLETIONS   DURATION   AGE</span></span><span class="token-line" style="color:#393A34"><span class="token plain">job.batch/cert-manager-startupapicheck   </span><span class="token number" style="color:#36acaa">1</span><span class="token plain">/1           6m24s      45m</span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class= [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/10/26/APISIX-Ingress/index.html b/blog/2021/10/26/APISIX-Ingress/index.html
index 6d64ca8..61bb01d 100644
--- a/blog/2021/10/26/APISIX-Ingress/index.html
+++ b/blog/2021/10/26/APISIX-Ingress/index.html
@@ -16,15 +16,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">From 0 to 1, How APISIX Ingress Has Grown and Gained Since Joining The Community | 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 [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
 <img src="https://static.apiseven.com/202108/1635304156096-c0eeb189-54f8-4ebe-b019-f41001869186.png" alt="GitHub Issue"></p><p>At present, the two discussions are initiated at the same time, so that as many people as possible can judge the reasonableness of the features from their own use scenarios and use perspectives. This is no longer a personal project, but a community project, a collaborative effort involving multiple people.</p><p>At the same time, the asynchronous discussion of th [...]
 <img src="https://static.apiseven.com/202108/1635304156072-ae9a3943-e686-4629-a5b7-0b5c38301139.png" alt="Deploying Apache APISIX Ingress Across Clusters"></p><p>There are two clusters in the above architecture, the formal cloud host cluster and the physical machine cluster. Apache APISIX Ingress Controller is deployed within each cluster, interacting with the Kubernetes API server while synchronizing the configuration to the Apache APISIX Admin API. APISIX clusters.</p><p>In cross-clust [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/10/29/Extension-guide/index.html b/blog/2021/10/29/Extension-guide/index.html
index 4bee5bf..768ef2c 100644
--- a/blog/2021/10/29/Extension-guide/index.html
+++ b/blog/2021/10/29/Extension-guide/index.html
@@ -16,12 +16,12 @@
 <link rel="alternate" type="application/rss+xml" href="/articles/rss.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/articles/atom.xml" title="Apache APISIX® --  Cloud-Native API Gateway Blog Atom Feed">
 <link 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 Extensions Guide | 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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
 </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">function _M.rewrite(conf, ctx)</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">    local consumer_conf = consumer_mod.plugin(plugin_name)</span></span><span class="token-line" style=" [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">    local consumers = lrucache(&quot;consumers_key&quot;, consumer_conf.conf_version,</span></span><span class="token-line" style="color:#393A34"><span class="token plain">        create_consume_cache, consumer_conf)</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 consumer = consumers[key]</span></span><span class="token-line" style="color:#393A34"><span class="token plain">    if not consumer then</span></span><span class="token-line" style="color:#393A34"><span class="token plain">        return 401, {message = &quot;Invalid API key in request&quot;}</span></span><span class="token-line" style="color:#393A34"><span class="token plain">    end</span>< [...]
@@ -32,7 +32,7 @@
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">                return nil</span></span><span class="token-line" style="color:#393A34"><span class="token plain">            end</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">            if not ctx.balancer_tried_servers then</span></span><span class="token-line" style="color:#393A34"><span class="token plain">                ctx.balancer_tried_servers = core.tablepool.fetch(&quot;balancer_tried_servers&quot;, 0, 2)</span></span><span class="token-line" style="color:#393A34"><span class="token plain">            end</span></span><span class="token-line" style="color:#393A34 [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">            ctx.balancer_tried_servers[server] = true</span></span><span class="token-line" style="color:#393A34"><span class="token plain">        end,</span></span><span class="token-line" style="color:#393A34"><span class="token plain">        before_retry_next_priority = function (ctx)</span></span><span class="token-line" style="color:#393A34"><span class="token plain">            if ctx.balancer_ [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/11/02/weekly-report-1031/index.html b/blog/2021/11/02/weekly-report-1031/index.html
index 5f46040..1b43df3 100644
--- a/blog/2021/11/02/weekly-report-1031/index.html
+++ b/blog/2021/11/02/weekly-report-1031/index.html
@@ -16,14 +16,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">Weekly Report|10.15-10.31 Feature Highlights Update in Progress | 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="twi [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
 </span></span><span class="token-line" style="color:#393A34"><span class="token plain">location = /mirror {</span></span><span class="token-line" style="color:#393A34"><span class="token plain">internal;</span></span><span class="token-line" style="color:#393A34"><span class="token plain">proxy_pass http://test_backend$request_uri;</span></span><span class="token-line" style="color:#393A34"><span class="token plain">}</span></span></code></pre><button type="button" aria-label="Copy code  [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/archive/index.html b/blog/archive/index.html
index 155e181..5f19e98 100644
--- a/blog/archive/index.html
+++ b/blog/archive/index.html
@@ -16,13 +16,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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/atom.xml b/blog/atom.xml
index be8d67f..d58f03ec 100644
--- a/blog/atom.xml
+++ b/blog/atom.xml
@@ -218,32 +218,32 @@
         </author>
     </entry>
     <entry>
-        <title type="html"><![CDATA[Apache APISIX × KubeSphere:提供更好用的网关及 K8S Ingress Controller]]></title>
-        <id>Apache APISIX × KubeSphere:提供更好用的网关及 K8S Ingress Controller</id>
+        <title type="html"><![CDATA[Apache APISIX × KubeSphere: Providing a better gateway and K8S Ingress Controller]]></title>
+        <id>Apache APISIX × KubeSphere: Providing a better gateway and K8S Ingress Controller</id>
         <link href="https://apisix.apache.org/blog/2021/08/31/Apache APISIX × KubeSphere-a-better-gateway-and-K8S-Ingress-Controller"/>
         <updated>2021-08-31T00:00:00.000Z</updated>
-        <summary type="html"><![CDATA[本文介绍了在 KubeSphere 中使用 Apache APISIX 的官方 Helm 仓库直接部署 Apache APISIX 和 APISIX Ingress Controller 。并且 Apache APISIX 可通过作为网关,或者 APISIX Ingress Controller 的数据面来承载业务流量。]]></summary>
+        <summary type="html"><![CDATA[This article describes the direct deployment of Apache APISIX and APISIX Ingress Controller in KubeSphere using the official Apache APISIX Helm repository. And Apache APISIX can be used as a gateway or as a data plane for APISIX Ingress Controller to carry business traffic.]]></summary>
         <author>
-            <name>张晋涛</name>
+            <name>Jintao Zhang</name>
             <uri>https://github.com/tao12345666333</uri>
         </author>
     </entry>
     <entry>
-        <title type="html"><![CDATA[社区会议| 周三下午 2 点,Apache APISIX Ingress 社区会议与你不见不散]]></title>
-        <id>社区会议| 周三下午 2 点,Apache APISIX Ingress 社区会议与你不见不散</id>
+        <title type="html"><![CDATA[Webinar| See you at the Apache APISIX Ingress Community Meeting on Wednesday at 2pm!]]></title>
+        <id>Webinar| See you at the Apache APISIX Ingress Community Meeting on Wednesday at 2pm!</id>
         <link href="https://apisix.apache.org/blog/2021/08/30/Ingress-Meeting"/>
         <updated>2021-08-30T00:00:00.000Z</updated>
-        <summary type="html"><![CDATA[Apache APISIX Ingress 社区会议,建立与社区用户和开发者们的沟通渠道,帮助大家了解 Apache APISIX Ingress 的发展方向和开发计划。]]></summary>
+        <summary type="html"><![CDATA[Apache APISIX Ingress community meetings to establish a channel of communication with community users and developers and to help everyone understand the direction and development plans for Apache APISIX Ingress.]]></summary>
         <author>
             <name>Apache APISIX 社区</name>
         </author>
     </entry>
     <entry>
-        <title type="html"><![CDATA[Apache APISIX 社区周报 | 2021 8.23-8.29]]></title>
-        <id>Apache APISIX 社区周报 | 2021 8.23-8.29</id>
+        <title type="html"><![CDATA[Apache APISIX Community Weekly Report | 2021 8.23-8.29]]></title>
+        <id>Apache APISIX Community Weekly Report | 2021 8.23-8.29</id>
         <link href="https://apisix.apache.org/blog/2021/08/30/weekly-report"/>
         <updated>2021-08-30T00:00:00.000Z</updated>
-        <summary type="html"><![CDATA[“独行者速,众行者远”。Apache APISIX 社区周报希望可以帮助社区小伙伴们更好地掌握 Apache APISIX 社区的每周进展,方便大家参与到 Apache APISIX 社区中来。]]></summary>
+        <summary type="html"><![CDATA[The Apache APISIX Community Weekly Newsletter hopes to help community members better understand the weekly progress of the Apache APISIX community and facilitate your participation in the Apache APISIX community.]]></summary>
     </entry>
     <entry>
         <title type="html"><![CDATA[Release Apache APISIX 2.9]]></title>
@@ -267,13 +267,13 @@
         </author>
     </entry>
     <entry>
-        <title type="html"><![CDATA[使用 Apache APISIX 的 OpenID Connect 插件进行集中身份认证]]></title>
-        <id>使用 Apache APISIX 的 OpenID Connect 插件进行集中身份认证</id>
+        <title type="html"><![CDATA[Centralized authentication using the OpenID Connect plug-in for Apache APISIX]]></title>
+        <id>Centralized authentication using the OpenID Connect plug-in for Apache APISIX</id>
         <link href="https://apisix.apache.org/blog/2021/08/25/Using-the-Apache-APISIX-OpenID-Connect-Plugin-for-Centralized-Authentication"/>
         <updated>2021-08-25T00:00:00.000Z</updated>
-        <summary type="html"><![CDATA[本文展示了使用 Apache APISIX OpenID Connect Plugin 进行 Okta 集中认证的过程。 本文包含了对 Apache APISIX 和 Okta 集中认证的概念介绍,展示了在 Apache APISIX 中直接建立来自 Okta 的集中式身份认证的过程。这种集中认证的方法减少了开发者的学习和维护成本,提供了安全和精简的用户体验。]]></summary>
+        <summary type="html"><![CDATA[This article demonstrates the process of centralized Okta authentication using the Apache APISIX OpenID Connect Plugin. This article contains a conceptual introduction to Apache APISIX and Okta centralized authentication, showing the process of establishing centralized authentication from Okta directly in Apache APISIX. This centralized authentication approach reduces learning and maintenance costs for developers and provides a secure and streamlined [...]
         <author>
-            <name>朱欣欣</name>
+            <name>Xinxin Zhu</name>
             <uri>https://github.com/starsz</uri>
         </author>
     </entry>
@@ -289,13 +289,13 @@
         </author>
     </entry>
     <entry>
-        <title type="html"><![CDATA[Apache APISIX Meetup 上海站全程回顾]]></title>
-        <id>Apache APISIX Meetup 上海站全程回顾</id>
+        <title type="html"><![CDATA[Apache APISIX Meetup in Shanghai]]></title>
+        <id>Apache APISIX Meetup in Shanghai</id>
         <link href="https://apisix.apache.org/blog/2021/08/24/shanghai-meetup-recap"/>
         <updated>2021-08-24T00:00:00.000Z</updated>
-        <summary type="html"><![CDATA[活动回顾:Apache APISIX Meetup 上海站议题分享及视频回顾。]]></summary>
+        <summary type="html"><![CDATA[Event Review: Apache APISIX Meetup Shanghai Topic Sharing and Video Review.]]></summary>
         <author>
-            <name>Apache APISIX 社区</name>
+            <name>Apache APISIX</name>
         </author>
     </entry>
     <entry>
@@ -303,7 +303,7 @@
         <id>ApacheCon Asia 2021</id>
         <link href="https://apisix.apache.org/blog/2021/08/23/ApacheCon-Asia-2021"/>
         <updated>2021-08-23T00:00:00.000Z</updated>
-        <summary type="html"><![CDATA[ApacheCon 是 Apache 软件基金会的官方全球系列会议。自 1998 年以来,ApacheCon 一直吸引着各个层次的参与者,在 350 多个 Apache 项目及其不同的社区中探索 “明日的技术”。ApacheCon Asia 是 ApacheCon 组委会针对亚太地区举办的 ApacheCon 在线会议,主要目标在于更好地服务亚太地区快速增长的 Apache 用户和贡献者。ApacheCon Asia 2021 于 2021 年 8 月 6-8 日在线举办。Apache APISIX 社区积极参与本次年度开源盛会,共提报了 8 个 API/微服务技术相关的议题,内容丰富。]]></summary>
+        <summary type="html"><![CDATA[ApacheCon is the official global conference series of the Apache Software Foundation. Since 1998, ApacheCon has been attracting participants at all levels to explore the "technologies of tomorrow" across more than 350 Apache projects and their diverse communities. ApacheCon Asia 2021 was held online from August 6-8, 2021. The Apache APISIX community actively participated in this annual open source event, presenting a total of eight API/microservices  [...]
     </entry>
     <entry>
         <title type="html"><![CDATA[Apache APISIX 社区周报 | 2021 8.16-8.22]]></title>
@@ -313,20 +313,20 @@
         <summary type="html"><![CDATA[“独行者速,众行者远”。Apache APISIX 社区周报希望可以帮助社区小伙伴们更好地掌握 Apache APISIX 社区的每周进展,方便大家参与到 Apache APISIX 社区中来。]]></summary>
     </entry>
     <entry>
-        <title type="html"><![CDATA[8 月 21 日 Apache APISIX Meetup 上海站,欢迎报名参加!]]></title>
-        <id>8 月 21 日 Apache APISIX Meetup 上海站,欢迎报名参加!</id>
+        <title type="html"><![CDATA[August 21 Apache APISIX Meetup Shanghai, welcome to register!]]></title>
+        <id>August 21 Apache APISIX Meetup Shanghai, welcome to register!</id>
         <link href="https://apisix.apache.org/blog/2021/08/21/shanghai-meetup"/>
         <updated>2021-08-21T00:00:00.000Z</updated>
-        <summary type="html"><![CDATA[本次 Meetup 由 api7.ai https://www.apiseven.com/ 发起,并邀请爱奇艺、空中云汇等合作伙伴共同为大家呈现。Apache APISIX PMC 成员、贡献者、社区技术专家汇聚一堂,共同探讨 Apache APISIX 社区发展、行业实践等话题。]]></summary>
+        <summary type="html"><![CDATA[This Meetup was initiated by api7.ai https://www.apiseven.com/, and invited partners such as iQiYi and Airwallex to present it. Apache APISIX PMC members, contributors, and community technical experts gathered to discuss Apache APISIX community development, industry practices, and other topics.]]></summary>
     </entry>
     <entry>
-        <title type="html"><![CDATA[Go 让 Apache APISIX 如虎添翼]]></title>
-        <id>Go 让 Apache APISIX 如虎添翼</id>
+        <title type="html"><![CDATA[Go gives Apache APISIX a run for its money]]></title>
+        <id>Go gives Apache APISIX a run for its money</id>
         <link href="https://apisix.apache.org/blog/2021/08/19/go-makes-Apache-APISIX-better"/>
         <updated>2021-08-19T00:00:00.000Z</updated>
-        <summary type="html"><![CDATA[这篇文章将详细讲解如何用 Go 来开发 Apache APISIX 插件。通过拥抱 Go 的生态圈,为 Apache APISIX 开创一片新天地,希望 Go 能让 Apache APISIX 如虎添翼!]]></summary>
+        <summary type="html"><![CDATA[This article will explain in detail how to use Go to develop Apache APISIX plugins. By embracing the Go ecosystem and breaking new ground for Apache APISIX, we hope that Go will make Apache APISIX even better!]]></summary>
         <author>
-            <name>罗泽轩</name>
+            <name>Zexuan Luo</name>
             <uri>https://github.com/spacewander</uri>
         </author>
     </entry>
@@ -338,23 +338,23 @@
         <summary type="html"><![CDATA[“独行者速,众行者远”。Apache APISIX 社区周报希望可以帮助社区小伙伴们更好地掌握 Apache APISIX 社区的每周进展,方便大家参与到 Apache APISIX 社区中来。]]></summary>
     </entry>
     <entry>
-        <title type="html"><![CDATA[在 Apache APISIX 中使用 Casbin 进行授权]]></title>
-        <id>在 Apache APISIX 中使用 Casbin 进行授权</id>
+        <title type="html"><![CDATA[Licensing with Casbin in Apache APISIX]]></title>
+        <id>Licensing with Casbin in Apache APISIX</id>
         <link href="https://apisix.apache.org/blog/2021/08/18/Auth-with-Casbin-in-Apache-APISIX"/>
         <updated>2021-08-18T00:00:00.000Z</updated>
-        <summary type="html"><![CDATA[当我们在使用 Apache APISIX 时,可能想要在应用里添加复杂的授权逻辑。在此篇文章中,我们将使用 Apache APISIX 的内置 Casbin 插件(authz-casbin)来实现基于角色的访问控制(RBAC)模型。]]></summary>
+        <summary type="html"><![CDATA[When we are using Apache APISIX, we may want to add complex authorization logic to our application. In this article, we will use the built-in Casbin plugin (authz-casbin) of Apache APISIX to implement the role-based access control (RBAC) model.]]></summary>
         <author>
-            <name>Casbin 社区 &amp; Apache APISIX 社区</name>
+            <name>Casbin &amp; Apache APISIX</name>
         </author>
     </entry>
     <entry>
-        <title type="html"><![CDATA[Apache APISIX 在 Airwallex 的应用 | 专访 Airwallex 技术平台负责人李杨]]></title>
-        <id>Apache APISIX 在 Airwallex 的应用 | 专访 Airwallex 技术平台负责人李杨</id>
+        <title type="html"><![CDATA[Apache APISIX in Airwallex | Interview with Yang Li, Head of Airwallex Technology Platform]]></title>
+        <id>Apache APISIX in Airwallex | Interview with Yang Li, Head of Airwallex Technology Platform</id>
         <link href="https://apisix.apache.org/blog/2021/08/17/interview-airwallex"/>
         <updated>2021-08-17T00:00:00.000Z</updated>
-        <summary type="html"><![CDATA[本文采访了 Airwallex 空中云汇 Technical Platform Lead 李杨,李杨负责公司技术平台的演进。采访中详细介绍了 Airwallex 空中云汇在做技术选型时为什么选择 Apache APISIX、Apache APISIX 在 Airwallex 空中云汇的使用场景、Apache APISIX 在生产环境的表现等。]]></summary>
+        <summary type="html"><![CDATA[In this article, we interviewed Airwallex Technical Platform Lead Yang Li, who is responsible for the evolution of the company's technology platform. In the interview, he introduced in detail why Airwallex chose Apache APISIX when making technology selection, the usage scenarios of Apache APISIX in Airwallex, and the performance of Apache APISIX in production environment.]]></summary>
         <author>
-            <name>Apache APISIX 社区</name>
+            <name>Apache APISIX</name>
         </author>
     </entry>
     <entry>
@@ -391,24 +391,24 @@
         </author>
     </entry>
     <entry>
-        <title type="html"><![CDATA[从新手村出来,我在 Apache APISIX 社区发出了第一个 PR]]></title>
-        <id>从新手村出来,我在 Apache APISIX 社区发出了第一个 PR</id>
+        <title type="html"><![CDATA[I issued my first PR in the Apache APISIX community]]></title>
+        <id>I issued my first PR in the Apache APISIX community</id>
         <link href="https://apisix.apache.org/blog/2021/08/11/interview-TuZhengsong"/>
         <updated>2021-08-11T00:00:00.000Z</updated>
-        <summary type="html"><![CDATA[这篇采访稿讲述了屠正松从开源社区小白成长为 Apache 顶级开源项目 APISIX committer 的历程。屠正松(GitHub ID:tzssangglass)因深度参与 Apache APISIX 的开发,在社区中贡献很多,2021 年 7 月 22 日被推选为 Apache APISIX committer。]]></summary>
+        <summary type="html"><![CDATA[This interview is about Zhengsong Tu's journey from an open source community nerd to an APISIX committer for Apache's top open source project. Zhengsong Tu (GitHub ID: tzssangglass) was elected as an Apache APISIX committer on July 22, 2021 for his deep involvement in Apache APISIX development and his many contributions to the community.]]></summary>
         <author>
-            <name>Apache APISIX 社区</name>
+            <name>Apache APISIX</name>
             <uri>https://github.com/Yangxiamao</uri>
         </author>
     </entry>
     <entry>
-        <title type="html"><![CDATA[Apache APISIX 架构分析:如何动态管理 Nginx 集群?]]></title>
-        <id>Apache APISIX 架构分析:如何动态管理 Nginx 集群?</id>
+        <title type="html"><![CDATA[Apache APISIX Architecture Analysis: How to Dynamically Manage Nginx Clustering?]]></title>
+        <id>Apache APISIX Architecture Analysis: How to Dynamically Manage Nginx Clustering?</id>
         <link href="https://apisix.apache.org/blog/2021/08/10/apisix-nginx"/>
         <updated>2021-08-10T00:00:00.000Z</updated>
-        <summary type="html"><![CDATA[本文转发自陶辉个人博客,主要介绍了基于 APISIX 2.8 版本、OpenResty 1.19.3.2 版本以及 Nginx 1.19.3 版本进行 Apache APISIX 实现 REST API 远程控制 Nginx 集群的原理讲解。]]></summary>
+        <summary type="html"><![CDATA[This article is re-posted from Tao Hui's personal blog, and introduces the principles of Apache APISIX based on APISIX version 2.8, OpenResty version 1.19.3.2, and Nginx version 1.19.3 to implement a REST API for remote control of Nginx clusters.]]></summary>
         <author>
-            <name>陶辉</name>
+            <name>Hui Tao</name>
         </author>
     </entry>
     <entry>
@@ -432,13 +432,13 @@
         </author>
     </entry>
     <entry>
-        <title type="html"><![CDATA[如何利用 Apache APISX 提升 Nginx 的可观测性]]></title>
-        <id>如何利用 Apache APISX 提升 Nginx 的可观测性</id>
+        <title type="html"><![CDATA[How to Improve the Observability of Nginx with Apache APISX]]></title>
+        <id>How to Improve the Observability of Nginx with Apache APISX</id>
         <link href="https://apisix.apache.org/blog/2021/08/06/using-apache-apisix-to-improve-the-observability-of-nginx"/>
         <updated>2021-08-06T00:00:00.000Z</updated>
-        <summary type="html"><![CDATA[最佳实践:本文将从 Nginx 可观测性、Apache APISIX 与 Nginx 的关系、Apache APISIX 可观测性,以及结合 Apache SkyWalking 进一步提升可观测性这些方面分享关于可观测性的方案与实践。]]></summary>
+        <summary type="html"><![CDATA[Best Practices: This article shares solutions and practices for observability in the context of Nginx observability, the relationship between Apache APISIX and Nginx, Apache APISIX observability, and further enhancing observability with Apache SkyWalking.]]></summary>
         <author>
-            <name>金卫</name>
+            <name>Wei Jin</name>
             <uri>https://github.com/gxthrj</uri>
         </author>
     </entry>
diff --git a/blog/index.html b/blog/index.html
index b3ca82b..c1266ba 100644
--- a/blog/index.html
+++ b/blog/index.html
@@ -16,13 +16,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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/page/2/index.html b/blog/page/2/index.html
index 99f8472..4ef9ccf 100644
--- a/blog/page/2/index.html
+++ b/blog/page/2/index.html
@@ -16,15 +16,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">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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
 作者陈卓,又拍云开发工程师,负责云存储、云处理和网关应用开发。</p></blockquote></div><footer class="row docusaurus-mt-lg"><div class="col col--9"><b>Tags:</b><ul class="tags_2ga9 padding--none margin-left--sm"><li class="tag_11ep"><a class="tag_1Okp tagRegular_3MiF" href="/blog/tags/user-case">User Case</a></li></ul></div><div class="col col--3 text--right"><a aria-label="Read more about Apache APISIX Ingress 为何成为又拍云打造容器网关的新选择?" href="/blog/2021/09/24/youpaicloud-usercase"><b>Read More</b></a></div></footer></article> [...]
 作者孙冉,运维专家。目前就职于小电平台架构部,主要负责 K8s 集群和 API 网关的相关部署。</p></blockquote></div><footer class="row docusaurus-mt-lg"><div class="col col--9"><b>Tags:</b><ul class="tags_2ga9 padding--none margin-left--sm"><li class="tag_11ep"><a class="tag_1Okp tagRegular_3MiF" href="/blog/tags/user-case">User Case</a></li></ul></div><div class="col col--3 text--right"><a aria-label="Read more about Apache APISIX 助力便利充电创领者小电,实现云原生方案" href="/blog/2021/09/18/xiaodian-usercase"><b>Read More</b></a></div></footer></a [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/page/3/index.html b/blog/page/3/index.html
index 8afece1..d4245bb 100644
--- a/blog/page/3/index.html
+++ b/blog/page/3/index.html
@@ -16,15 +16,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">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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
 和 <a href="https://github.com/apache/apisix-go-plugin-runner" target="_blank" rel="noopener noreferrer">Go</a> 语言的 Runner,今天 Python Runner
-也来了,社区中的小伙伴们在开发 Apache APISIX 的插件时又多了一种新选择。</p></blockquote></div><footer class="row docusaurus-mt-lg"><div class="col col--9"><b>Tags:</b><ul class="tags_2ga9 padding--none margin-left--sm"><li class="tag_11ep"><a class="tag_1Okp tagRegular_3MiF" href="/blog/tags/practical-case">Practical Case</a></li></ul></div><div class="col col--3 text--right"><a aria-label="Read more about Python 助你快速上手 Apache APISIX 插件开发" href="/blog/2021/09/06/python-helps-you-quickly-with-Apache-APISIX-developme [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+也来了,社区中的小伙伴们在开发 Apache APISIX 的插件时又多了一种新选择。</p></blockquote></div><footer class="row docusaurus-mt-lg"><div class="col col--9"><b>Tags:</b><ul class="tags_2ga9 padding--none margin-left--sm"><li class="tag_11ep"><a class="tag_1Okp tagRegular_3MiF" href="/blog/tags/practical-case">Practical Case</a></li></ul></div><div class="col col--3 text--right"><a aria-label="Read more about Python 助你快速上手 Apache APISIX 插件开发" href="/blog/2021/09/06/python-helps-you-quickly-with-Apache-APISIX-developme [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/page/4/index.html b/blog/page/4/index.html
index b5b07a9..a31fd85 100644
--- a/blog/page/4/index.html
+++ b/blog/page/4/index.html
@@ -16,13 +16,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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/page/5/index.html b/blog/page/5/index.html
index 8e3f48b..840d7e3 100644
--- a/blog/page/5/index.html
+++ b/blog/page/5/index.html
@@ -16,13 +16,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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/page/6/index.html b/blog/page/6/index.html
index 149f5db..39f352d 100644
--- a/blog/page/6/index.html
+++ b/blog/page/6/index.html
@@ -16,13 +16,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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/page/7/index.html b/blog/page/7/index.html
index 0db1d66..367c36c 100644
--- a/blog/page/7/index.html
+++ b/blog/page/7/index.html
@@ -16,13 +16,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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/page/8/index.html b/blog/page/8/index.html
index 0d2adc5..ad59812 100644
--- a/blog/page/8/index.html
+++ b/blog/page/8/index.html
@@ -16,13 +16,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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/rss.xml b/blog/rss.xml
index f704914..343b86f 100644
--- a/blog/rss.xml
+++ b/blog/rss.xml
@@ -162,25 +162,25 @@
             <description><![CDATA[在 Apache APISIX Python Runner 之前社区中已经支持了 Java]]></description>
         </item>
         <item>
-            <title><![CDATA[Apache APISIX × KubeSphere:提供更好用的网关及 K8S Ingress Controller]]></title>
+            <title><![CDATA[Apache APISIX × KubeSphere: Providing a better gateway and K8S Ingress Controller]]></title>
             <link>https://apisix.apache.org/blog/2021/08/31/Apache APISIX × KubeSphere-a-better-gateway-and-K8S-Ingress-Controller</link>
-            <guid>Apache APISIX × KubeSphere:提供更好用的网关及 K8S Ingress Controller</guid>
+            <guid>Apache APISIX × KubeSphere: Providing a better gateway and K8S Ingress Controller</guid>
             <pubDate>Tue, 31 Aug 2021 00:00:00 GMT</pubDate>
-            <description><![CDATA[本文介绍了在 KubeSphere 中使用 Apache APISIX 的官方 Helm 仓库直接部署 Apache APISIX 和 APISIX Ingress Controller 。并且 Apache APISIX 可通过作为网关,或者 APISIX Ingress Controller 的数据面来承载业务流量。]]></description>
+            <description><![CDATA[This article describes the direct deployment of Apache APISIX and APISIX Ingress Controller in KubeSphere using the official Apache APISIX Helm repository. And Apache APISIX can be used as a gateway or as a data plane for APISIX Ingress Controller to carry business traffic.]]></description>
         </item>
         <item>
-            <title><![CDATA[社区会议| 周三下午 2 点,Apache APISIX Ingress 社区会议与你不见不散]]></title>
+            <title><![CDATA[Webinar| See you at the Apache APISIX Ingress Community Meeting on Wednesday at 2pm!]]></title>
             <link>https://apisix.apache.org/blog/2021/08/30/Ingress-Meeting</link>
-            <guid>社区会议| 周三下午 2 点,Apache APISIX Ingress 社区会议与你不见不散</guid>
+            <guid>Webinar| See you at the Apache APISIX Ingress Community Meeting on Wednesday at 2pm!</guid>
             <pubDate>Mon, 30 Aug 2021 00:00:00 GMT</pubDate>
-            <description><![CDATA[Apache APISIX Ingress 社区会议,建立与社区用户和开发者们的沟通渠道,帮助大家了解 Apache APISIX Ingress 的发展方向和开发计划。]]></description>
+            <description><![CDATA[Apache APISIX Ingress community meetings to establish a channel of communication with community users and developers and to help everyone understand the direction and development plans for Apache APISIX Ingress.]]></description>
         </item>
         <item>
-            <title><![CDATA[Apache APISIX 社区周报 | 2021 8.23-8.29]]></title>
+            <title><![CDATA[Apache APISIX Community Weekly Report | 2021 8.23-8.29]]></title>
             <link>https://apisix.apache.org/blog/2021/08/30/weekly-report</link>
-            <guid>Apache APISIX 社区周报 | 2021 8.23-8.29</guid>
+            <guid>Apache APISIX Community Weekly Report | 2021 8.23-8.29</guid>
             <pubDate>Mon, 30 Aug 2021 00:00:00 GMT</pubDate>
-            <description><![CDATA[“独行者速,众行者远”。Apache APISIX 社区周报希望可以帮助社区小伙伴们更好地掌握 Apache APISIX 社区的每周进展,方便大家参与到 Apache APISIX 社区中来。]]></description>
+            <description><![CDATA[The Apache APISIX Community Weekly Newsletter hopes to help community members better understand the weekly progress of the Apache APISIX community and facilitate your participation in the Apache APISIX community.]]></description>
         </item>
         <item>
             <title><![CDATA[Release Apache APISIX 2.9]]></title>
@@ -197,11 +197,11 @@
             <description><![CDATA[When using Apache APISIX, you may want to add complex authorization logic to your application. In this article, we will use the built-in Casbin plugin (authz-casbin) of Apache APISIX to implement the role-based access control (RBAC) model.]]></description>
         </item>
         <item>
-            <title><![CDATA[使用 Apache APISIX 的 OpenID Connect 插件进行集中身份认证]]></title>
+            <title><![CDATA[Centralized authentication using the OpenID Connect plug-in for Apache APISIX]]></title>
             <link>https://apisix.apache.org/blog/2021/08/25/Using-the-Apache-APISIX-OpenID-Connect-Plugin-for-Centralized-Authentication</link>
-            <guid>使用 Apache APISIX 的 OpenID Connect 插件进行集中身份认证</guid>
+            <guid>Centralized authentication using the OpenID Connect plug-in for Apache APISIX</guid>
             <pubDate>Wed, 25 Aug 2021 00:00:00 GMT</pubDate>
-            <description><![CDATA[本文展示了使用 Apache APISIX OpenID Connect Plugin 进行 Okta 集中认证的过程。 本文包含了对 Apache APISIX 和 Okta 集中认证的概念介绍,展示了在 Apache APISIX 中直接建立来自 Okta 的集中式身份认证的过程。这种集中认证的方法减少了开发者的学习和维护成本,提供了安全和精简的用户体验。]]></description>
+            <description><![CDATA[This article demonstrates the process of centralized Okta authentication using the Apache APISIX OpenID Connect Plugin. This article contains a conceptual introduction to Apache APISIX and Okta centralized authentication, showing the process of establishing centralized authentication from Okta directly in Apache APISIX. This centralized authentication approach reduces learning and maintenance costs for developers and provides a secure and streamlined use [...]
         </item>
         <item>
             <title><![CDATA[Why Apache APISIX chose Nginx and Lua to build API Gateway]]></title>
@@ -211,18 +211,18 @@
             <description><![CDATA[Yes, Lua is not a well-known language, and it is probably a long way from the most popular programming language. So why do Apache APISIX and other well-known gateways choose Lua?]]></description>
         </item>
         <item>
-            <title><![CDATA[Apache APISIX Meetup 上海站全程回顾]]></title>
+            <title><![CDATA[Apache APISIX Meetup in Shanghai]]></title>
             <link>https://apisix.apache.org/blog/2021/08/24/shanghai-meetup-recap</link>
-            <guid>Apache APISIX Meetup 上海站全程回顾</guid>
+            <guid>Apache APISIX Meetup in Shanghai</guid>
             <pubDate>Tue, 24 Aug 2021 00:00:00 GMT</pubDate>
-            <description><![CDATA[活动回顾:Apache APISIX Meetup 上海站议题分享及视频回顾。]]></description>
+            <description><![CDATA[Event Review: Apache APISIX Meetup Shanghai Topic Sharing and Video Review.]]></description>
         </item>
         <item>
             <title><![CDATA[ApacheCon Asia 2021]]></title>
             <link>https://apisix.apache.org/blog/2021/08/23/ApacheCon-Asia-2021</link>
             <guid>ApacheCon Asia 2021</guid>
             <pubDate>Mon, 23 Aug 2021 00:00:00 GMT</pubDate>
-            <description><![CDATA[ApacheCon 是 Apache 软件基金会的官方全球系列会议。自 1998 年以来,ApacheCon 一直吸引着各个层次的参与者,在 350 多个 Apache 项目及其不同的社区中探索 “明日的技术”。ApacheCon Asia 是 ApacheCon 组委会针对亚太地区举办的 ApacheCon 在线会议,主要目标在于更好地服务亚太地区快速增长的 Apache 用户和贡献者。ApacheCon Asia 2021 于 2021 年 8 月 6-8 日在线举办。Apache APISIX 社区积极参与本次年度开源盛会,共提报了 8 个 API/微服务技术相关的议题,内容丰富。]]></description>
+            <description><![CDATA[ApacheCon is the official global conference series of the Apache Software Foundation. Since 1998, ApacheCon has been attracting participants at all levels to explore the "technologies of tomorrow" across more than 350 Apache projects and their diverse communities. ApacheCon Asia 2021 was held online from August 6-8, 2021. The Apache APISIX community actively participated in this annual open source event, presenting a total of eight API/microservices tech [...]
         </item>
         <item>
             <title><![CDATA[Apache APISIX 社区周报 | 2021 8.16-8.22]]></title>
@@ -232,18 +232,18 @@
             <description><![CDATA[“独行者速,众行者远”。Apache APISIX 社区周报希望可以帮助社区小伙伴们更好地掌握 Apache APISIX 社区的每周进展,方便大家参与到 Apache APISIX 社区中来。]]></description>
         </item>
         <item>
-            <title><![CDATA[8 月 21 日 Apache APISIX Meetup 上海站,欢迎报名参加!]]></title>
+            <title><![CDATA[August 21 Apache APISIX Meetup Shanghai, welcome to register!]]></title>
             <link>https://apisix.apache.org/blog/2021/08/21/shanghai-meetup</link>
-            <guid>8 月 21 日 Apache APISIX Meetup 上海站,欢迎报名参加!</guid>
+            <guid>August 21 Apache APISIX Meetup Shanghai, welcome to register!</guid>
             <pubDate>Sat, 21 Aug 2021 00:00:00 GMT</pubDate>
-            <description><![CDATA[本次 Meetup 由 api7.ai https://www.apiseven.com/ 发起,并邀请爱奇艺、空中云汇等合作伙伴共同为大家呈现。Apache APISIX PMC 成员、贡献者、社区技术专家汇聚一堂,共同探讨 Apache APISIX 社区发展、行业实践等话题。]]></description>
+            <description><![CDATA[This Meetup was initiated by api7.ai https://www.apiseven.com/, and invited partners such as iQiYi and Airwallex to present it. Apache APISIX PMC members, contributors, and community technical experts gathered to discuss Apache APISIX community development, industry practices, and other topics.]]></description>
         </item>
         <item>
-            <title><![CDATA[Go 让 Apache APISIX 如虎添翼]]></title>
+            <title><![CDATA[Go gives Apache APISIX a run for its money]]></title>
             <link>https://apisix.apache.org/blog/2021/08/19/go-makes-Apache-APISIX-better</link>
-            <guid>Go 让 Apache APISIX 如虎添翼</guid>
+            <guid>Go gives Apache APISIX a run for its money</guid>
             <pubDate>Thu, 19 Aug 2021 00:00:00 GMT</pubDate>
-            <description><![CDATA[这篇文章将详细讲解如何用 Go 来开发 Apache APISIX 插件。通过拥抱 Go 的生态圈,为 Apache APISIX 开创一片新天地,希望 Go 能让 Apache APISIX 如虎添翼!]]></description>
+            <description><![CDATA[This article will explain in detail how to use Go to develop Apache APISIX plugins. By embracing the Go ecosystem and breaking new ground for Apache APISIX, we hope that Go will make Apache APISIX even better!]]></description>
         </item>
         <item>
             <title><![CDATA[Apache APISIX 社区周报 | 08-09 ~ 08-15]]></title>
@@ -253,18 +253,18 @@
             <description><![CDATA[“独行者速,众行者远”。Apache APISIX 社区周报希望可以帮助社区小伙伴们更好地掌握 Apache APISIX 社区的每周进展,方便大家参与到 Apache APISIX 社区中来。]]></description>
         </item>
         <item>
-            <title><![CDATA[在 Apache APISIX 中使用 Casbin 进行授权]]></title>
+            <title><![CDATA[Licensing with Casbin in Apache APISIX]]></title>
             <link>https://apisix.apache.org/blog/2021/08/18/Auth-with-Casbin-in-Apache-APISIX</link>
-            <guid>在 Apache APISIX 中使用 Casbin 进行授权</guid>
+            <guid>Licensing with Casbin in Apache APISIX</guid>
             <pubDate>Wed, 18 Aug 2021 00:00:00 GMT</pubDate>
-            <description><![CDATA[当我们在使用 Apache APISIX 时,可能想要在应用里添加复杂的授权逻辑。在此篇文章中,我们将使用 Apache APISIX 的内置 Casbin 插件(authz-casbin)来实现基于角色的访问控制(RBAC)模型。]]></description>
+            <description><![CDATA[When we are using Apache APISIX, we may want to add complex authorization logic to our application. In this article, we will use the built-in Casbin plugin (authz-casbin) of Apache APISIX to implement the role-based access control (RBAC) model.]]></description>
         </item>
         <item>
-            <title><![CDATA[Apache APISIX 在 Airwallex 的应用 | 专访 Airwallex 技术平台负责人李杨]]></title>
+            <title><![CDATA[Apache APISIX in Airwallex | Interview with Yang Li, Head of Airwallex Technology Platform]]></title>
             <link>https://apisix.apache.org/blog/2021/08/17/interview-airwallex</link>
-            <guid>Apache APISIX 在 Airwallex 的应用 | 专访 Airwallex 技术平台负责人李杨</guid>
+            <guid>Apache APISIX in Airwallex | Interview with Yang Li, Head of Airwallex Technology Platform</guid>
             <pubDate>Tue, 17 Aug 2021 00:00:00 GMT</pubDate>
-            <description><![CDATA[本文采访了 Airwallex 空中云汇 Technical Platform Lead 李杨,李杨负责公司技术平台的演进。采访中详细介绍了 Airwallex 空中云汇在做技术选型时为什么选择 Apache APISIX、Apache APISIX 在 Airwallex 空中云汇的使用场景、Apache APISIX 在生产环境的表现等。]]></description>
+            <description><![CDATA[In this article, we interviewed Airwallex Technical Platform Lead Yang Li, who is responsible for the evolution of the company's technology platform. In the interview, he introduced in detail why Airwallex chose Apache APISIX when making technology selection, the usage scenarios of Apache APISIX in Airwallex, and the performance of Apache APISIX in production environment.]]></description>
         </item>
         <item>
             <title><![CDATA[Using the Apache APISIX OpenID Connect Plugin for Okta Centralized Authentication]]></title>
@@ -288,18 +288,18 @@
             <description><![CDATA[This article explains how system stability create some pain points in different scenarios. Then it tells the stories of why the author chose Chaos Mesh as the ultimate solution,and how to use Chaos Mesh in Apache APISIX. In the end, there is also future plans for this solution, including run a chaos test in E2E simulation scenarios, add chaos tests to more Apache APISIX projects, and add features to Chaos Mesh.]]></description>
         </item>
         <item>
-            <title><![CDATA[从新手村出来,我在 Apache APISIX 社区发出了第一个 PR]]></title>
+            <title><![CDATA[I issued my first PR in the Apache APISIX community]]></title>
             <link>https://apisix.apache.org/blog/2021/08/11/interview-TuZhengsong</link>
-            <guid>从新手村出来,我在 Apache APISIX 社区发出了第一个 PR</guid>
+            <guid>I issued my first PR in the Apache APISIX community</guid>
             <pubDate>Wed, 11 Aug 2021 00:00:00 GMT</pubDate>
-            <description><![CDATA[这篇采访稿讲述了屠正松从开源社区小白成长为 Apache 顶级开源项目 APISIX committer 的历程。屠正松(GitHub ID:tzssangglass)因深度参与 Apache APISIX 的开发,在社区中贡献很多,2021 年 7 月 22 日被推选为 Apache APISIX committer。]]></description>
+            <description><![CDATA[This interview is about Zhengsong Tu's journey from an open source community nerd to an APISIX committer for Apache's top open source project. Zhengsong Tu (GitHub ID: tzssangglass) was elected as an Apache APISIX committer on July 22, 2021 for his deep involvement in Apache APISIX development and his many contributions to the community.]]></description>
         </item>
         <item>
-            <title><![CDATA[Apache APISIX 架构分析:如何动态管理 Nginx 集群?]]></title>
+            <title><![CDATA[Apache APISIX Architecture Analysis: How to Dynamically Manage Nginx Clustering?]]></title>
             <link>https://apisix.apache.org/blog/2021/08/10/apisix-nginx</link>
-            <guid>Apache APISIX 架构分析:如何动态管理 Nginx 集群?</guid>
+            <guid>Apache APISIX Architecture Analysis: How to Dynamically Manage Nginx Clustering?</guid>
             <pubDate>Tue, 10 Aug 2021 00:00:00 GMT</pubDate>
-            <description><![CDATA[本文转发自陶辉个人博客,主要介绍了基于 APISIX 2.8 版本、OpenResty 1.19.3.2 版本以及 Nginx 1.19.3 版本进行 Apache APISIX 实现 REST API 远程控制 Nginx 集群的原理讲解。]]></description>
+            <description><![CDATA[This article is re-posted from Tao Hui's personal blog, and introduces the principles of Apache APISIX based on APISIX version 2.8, OpenResty version 1.19.3.2, and Nginx version 1.19.3 to implement a REST API for remote control of Nginx clusters.]]></description>
         </item>
         <item>
             <title><![CDATA[Apache APISIX 在移动云的应用]]></title>
@@ -316,11 +316,11 @@
             <description><![CDATA[本文介绍了 Apache APISIX 在趣链科技 BaaS 平台中的落地实践情况,以及趣链科技在众多网关应用中选择 Apache APISIX 的原因。]]></description>
         </item>
         <item>
-            <title><![CDATA[如何利用 Apache APISX 提升 Nginx 的可观测性]]></title>
+            <title><![CDATA[How to Improve the Observability of Nginx with Apache APISX]]></title>
             <link>https://apisix.apache.org/blog/2021/08/06/using-apache-apisix-to-improve-the-observability-of-nginx</link>
-            <guid>如何利用 Apache APISX 提升 Nginx 的可观测性</guid>
+            <guid>How to Improve the Observability of Nginx with Apache APISX</guid>
             <pubDate>Fri, 06 Aug 2021 00:00:00 GMT</pubDate>
-            <description><![CDATA[最佳实践:本文将从 Nginx 可观测性、Apache APISIX 与 Nginx 的关系、Apache APISIX 可观测性,以及结合 Apache SkyWalking 进一步提升可观测性这些方面分享关于可观测性的方案与实践。]]></description>
+            <description><![CDATA[Best Practices: This article shares solutions and practices for observability in the context of Nginx observability, the relationship between Apache APISIX and Nginx, Apache APISIX observability, and further enhancing observability with Apache SkyWalking.]]></description>
         </item>
         <item>
             <title><![CDATA[Kong-To-APISIX Migration Tool]]></title>
diff --git a/blog/tags/community/index.html b/blog/tags/community/index.html
index 5dab397..1ec4cdf 100644
--- a/blog/tags/community/index.html
+++ b/blog/tags/community/index.html
@@ -16,13 +16,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">2 posts tagged with &quot;Community&quot; | Apache APISIX® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="2 posts tagged with &quot;Community&quot; | 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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/tags/events/index.html b/blog/tags/events/index.html
index 0c3022c..45ad676 100644
--- a/blog/tags/events/index.html
+++ b/blog/tags/events/index.html
@@ -16,13 +16,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">17 posts tagged with &quot;Events&quot; | Apache APISIX® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="17 posts tagged with &quot;Events&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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/tags/index.html b/blog/tags/index.html
index ce4a179..07d3f95 100644
--- a/blog/tags/index.html
+++ b/blog/tags/index.html
@@ -16,13 +16,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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/tags/interview/index.html b/blog/tags/interview/index.html
index 51b835b..f93a234 100644
--- a/blog/tags/interview/index.html
+++ b/blog/tags/interview/index.html
@@ -16,13 +16,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">5 posts tagged with &quot;Interview&quot; | Apache APISIX® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="5 posts tagged with &quot;Interview&quot; | 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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 7c69f12..42bcc33 100644
--- a/blog/tags/practical-case/index.html
+++ b/blog/tags/practical-case/index.html
@@ -16,15 +16,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">16 posts tagged with &quot;Practical Case&quot; | Apache APISIX® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="16 posts tagged with &quot;Practical Case&quot; | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><met [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
 和 <a href="https://github.com/apache/apisix-go-plugin-runner" target="_blank" rel="noopener noreferrer">Go</a> 语言的 Runner,今天 Python Runner
-也来了,社区中的小伙伴们在开发 Apache APISIX 的插件时又多了一种新选择。</p></blockquote></div><footer class="row docusaurus-mt-lg"><div class="col col--9"><b>Tags:</b><ul class="tags_2ga9 padding--none margin-left--sm"><li class="tag_11ep"><a class="tag_1Okp tagRegular_3MiF" href="/blog/tags/practical-case">Practical Case</a></li></ul></div><div class="col col--3 text--right"><a aria-label="Read more about Python 助你快速上手 Apache APISIX 插件开发" href="/blog/2021/09/06/python-helps-you-quickly-with-Apache-APISIX-developme [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+也来了,社区中的小伙伴们在开发 Apache APISIX 的插件时又多了一种新选择。</p></blockquote></div><footer class="row docusaurus-mt-lg"><div class="col col--9"><b>Tags:</b><ul class="tags_2ga9 padding--none margin-left--sm"><li class="tag_11ep"><a class="tag_1Okp tagRegular_3MiF" href="/blog/tags/practical-case">Practical Case</a></li></ul></div><div class="col col--3 text--right"><a aria-label="Read more about Python 助你快速上手 Apache APISIX 插件开发" href="/blog/2021/09/06/python-helps-you-quickly-with-Apache-APISIX-developme [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/tags/release/index.html b/blog/tags/release/index.html
index 5512eda..4fa92dc 100644
--- a/blog/tags/release/index.html
+++ b/blog/tags/release/index.html
@@ -16,13 +16,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">7 posts tagged with &quot;Release&quot; | Apache APISIX® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="7 posts tagged with &quot;Release&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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 570bbb3..81a5f59 100644
--- a/blog/tags/security/index.html
+++ b/blog/tags/security/index.html
@@ -16,13 +16,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">2 posts tagged with &quot;Security&quot; | Apache APISIX® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="2 posts tagged with &quot;Security&quot; | 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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 4b8f4b3..f601274 100644
--- a/blog/tags/technology/index.html
+++ b/blog/tags/technology/index.html
@@ -16,13 +16,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">14 posts tagged with &quot;technology&quot; | Apache APISIX® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="14 posts tagged with &quot;technology&quot; | Apache APISIX® --  Cloud-Native API Gateway"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-r [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/tags/user-case/index.html b/blog/tags/user-case/index.html
index 9e2ae92..67dafe9 100644
--- a/blog/tags/user-case/index.html
+++ b/blog/tags/user-case/index.html
@@ -16,15 +16,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">11 posts tagged with &quot;User Case&quot; | Apache APISIX® --  Cloud-Native API Gateway</title><meta data-react-helmet="true" property="og:title" content="11 posts tagged with &quot;User Case&quot; | 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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
+<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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
 作者陈卓,又拍云开发工程师,负责云存储、云处理和网关应用开发。</p></blockquote></div><footer class="row docusaurus-mt-lg"><div class="col col--9"><b>Tags:</b><ul class="tags_2ga9 padding--none margin-left--sm"><li class="tag_11ep"><a class="tag_1Okp tagRegular_3MiF" href="/blog/tags/user-case">User Case</a></li></ul></div><div class="col col--3 text--right"><a aria-label="Read more about Apache APISIX Ingress 为何成为又拍云打造容器网关的新选择?" href="/blog/2021/09/24/youpaicloud-usercase"><b>Read More</b></a></div></footer></article> [...]
 作者孙冉,运维专家。目前就职于小电平台架构部,主要负责 K8s 集群和 API 网关的相关部署。</p></blockquote></div><footer class="row docusaurus-mt-lg"><div class="col col--9"><b>Tags:</b><ul class="tags_2ga9 padding--none margin-left--sm"><li class="tag_11ep"><a class="tag_1Okp tagRegular_3MiF" href="/blog/tags/user-case">User Case</a></li></ul></div><div class="col col--3 text--right"><a aria-label="Read more about Apache APISIX 助力便利充电创领者小电,实现云原生方案" href="/blog/2021/09/18/xiaodian-usercase"><b>Read More</b></a></div></footer></a [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 82561ad..5f620cd 100644
--- a/docs/apisix/2.4/FAQ/index.html
+++ b/docs/apisix/2.4/FAQ/index.html
@@ -16,8 +16,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.p [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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 @@ 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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 c986181..de31226 100644
--- a/docs/apisix/2.4/IGNORE_DOC/index.html
+++ b/docs/apisix/2.4/IGNORE_DOC/index.html
@@ -16,13 +16,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/fa [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 c944aed..9ae6206 100644
--- a/docs/apisix/2.4/admin-api/index.html
+++ b/docs/apisix/2.4/admin-api/index.html
@@ -16,8 +16,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/fav [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -80,7 +80,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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 f879800..ae9bc35 100644
--- a/docs/apisix/2.4/architecture-design/index.html
+++ b/docs/apisix/2.4/architecture-design/index.html
@@ -16,8 +16,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.o [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -42,7 +42,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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 940d081..0966d75 100644
--- a/docs/apisix/2.4/aws/index.html
+++ b/docs/apisix/2.4/aws/index.html
@@ -16,8 +16,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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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">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://cdn.jsdelivr.net/gh/apache/apisix@master/docs/assets/images/aws-define-service.png">
 <img src="https://cdn.jsdelivr.net/gh/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://cdn.jsdelivr.net/gh/apache/apisix@master/do [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 90f28f2..2fa6fad 100644
--- a/docs/apisix/2.4/batch-processor/index.html
+++ b/docs/apisix/2.4/batch-processor/index.html
@@ -16,8 +16,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/i [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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 @@ 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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 9fdb3a7..96de309 100644
--- a/docs/apisix/2.4/benchmark/index.html
+++ b/docs/apisix/2.4/benchmark/index.html
@@ -16,8 +16,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/fav [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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 @@ and the response size was 1KB.</p><h4><a aria-hidden="true" tabindex="-1" class=
 <img src="https://cdn.jsdelivr.net/gh/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="token- [...]
 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://cdn.jsdelivr.net/gh/apache/apisix@master/docs/assets/images/benchmark-2.jpg" width="70%" height="70%"><h4><a aria-hidden="true" tabindex="-1" class="anchor anchor__h4 anchorWithH [...]
 <img src="https://cdn.jsdelivr.net/gh/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="token- [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 27feabb..b7ff626 100644
--- a/docs/apisix/2.4/control-api/index.html
+++ b/docs/apisix/2.4/control-api/index.html
@@ -16,8 +16,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/f [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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 @@ 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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 cc75e74..88515f3 100644
--- a/docs/apisix/2.4/customize-nginx-configuration/index.html
+++ b/docs/apisix/2.4/customize-nginx-configuration/index.html
@@ -16,8 +16,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://apisi [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -25,7 +25,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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 a681d01..457485b 100644
--- a/docs/apisix/2.4/debug-function/index.html
+++ b/docs/apisix/2.4/debug-function/index.html
@@ -16,14 +16,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/im [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 91e36ee..0038804 100644
--- a/docs/apisix/2.4/discovery/consul_kv/index.html
+++ b/docs/apisix/2.4/discovery/consul_kv/index.html
@@ -16,8 +16,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/fav [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -25,7 +25,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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 517b9d9..44a37fa 100644
--- a/docs/apisix/2.4/discovery/index.html
+++ b/docs/apisix/2.4/discovery/index.html
@@ -16,8 +16,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="http [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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><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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 2bfcbb0..06aee14 100644
--- a/docs/apisix/2.4/dns/index.html
+++ b/docs/apisix/2.4/dns/index.html
@@ -16,8 +16,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.p [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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 @@ 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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 bcb2b52..680f39f 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
@@ -16,8 +16,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://ap [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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 @@
 </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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 ad08861..355d4b6 100644
--- a/docs/apisix/2.4/getting-started/index.html
+++ b/docs/apisix/2.4/getting-started/index.html
@@ -16,8 +16,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/i [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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 @@ 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://cdn.jsdelivr.net/gh/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 (The def [...]
 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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 7d3305e..e6a65a8 100644
--- a/docs/apisix/2.4/grpc-proxy/index.html
+++ b/docs/apisix/2.4/grpc-proxy/index.html
@@ -16,14 +16,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/fa [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 1262340..00aedd2 100644
--- a/docs/apisix/2.4/health-check/index.html
+++ b/docs/apisix/2.4/health-check/index.html
@@ -16,8 +16,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/img/ [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -25,7 +25,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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 9d41e46..0cae180 100644
--- a/docs/apisix/2.4/how-to-build/index.html
+++ b/docs/apisix/2.4/how-to-build/index.html
@@ -16,8 +16,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.a [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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 @@ 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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 3a51b4e..800e2b8 100644
--- a/docs/apisix/2.4/https/index.html
+++ b/docs/apisix/2.4/https/index.html
@@ -16,8 +16,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/favicon [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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 @@ 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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 90002b1..30bc62c 100644
--- a/docs/apisix/2.4/install-dependencies/index.html
+++ b/docs/apisix/2.4/install-dependencies/index.html
@@ -16,8 +16,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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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"></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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 b4b76d3..a3e3e15 100644
--- a/docs/apisix/2.4/mtls/index.html
+++ b/docs/apisix/2.4/mtls/index.html
@@ -16,14 +16,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.ap [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 32f7026..c293dd1 100644
--- a/docs/apisix/2.4/plugin-develop/index.html
+++ b/docs/apisix/2.4/plugin-develop/index.html
@@ -16,8 +16,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/im [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -55,7 +55,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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 40299fc..9632fb6 100644
--- a/docs/apisix/2.4/plugin-interceptors/index.html
+++ b/docs/apisix/2.4/plugin-interceptors/index.html
@@ -16,8 +16,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.o [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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 @@ 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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 0ddac0e..3afccc5 100644
--- a/docs/apisix/2.4/plugins/api-breaker/index.html
+++ b/docs/apisix/2.4/plugins/api-breaker/index.html
@@ -16,14 +16,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/f [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 a135b2e..cbc9307 100644
--- a/docs/apisix/2.4/plugins/authz-keycloak/index.html
+++ b/docs/apisix/2.4/plugins/authz-keycloak/index.html
@@ -16,8 +16,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/im [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -48,7 +48,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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 4073371..21c7c1b 100644
--- a/docs/apisix/2.4/plugins/basic-auth/index.html
+++ b/docs/apisix/2.4/plugins/basic-auth/index.html
@@ -16,15 +16,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/fa [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 375c0f3..db08e8a 100644
--- a/docs/apisix/2.4/plugins/batch-requests/index.html
+++ b/docs/apisix/2.4/plugins/batch-requests/index.html
@@ -16,15 +16,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/im [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 068cf92..2a6d6c2 100644
--- a/docs/apisix/2.4/plugins/consumer-restriction/index.html
+++ b/docs/apisix/2.4/plugins/consumer-restriction/index.html
@@ -16,8 +16,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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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 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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 832e055..84a65a3 100644
--- a/docs/apisix/2.4/plugins/cors/index.html
+++ b/docs/apisix/2.4/plugins/cors/index.html
@@ -16,14 +16,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/favicon. [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 b15b193..a4c1ca6 100644
--- a/docs/apisix/2.4/plugins/dubbo-proxy/index.html
+++ b/docs/apisix/2.4/plugins/dubbo-proxy/index.html
@@ -16,8 +16,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/f [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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 @@ 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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 1d6040e..92aec16 100644
--- a/docs/apisix/2.4/plugins/echo/index.html
+++ b/docs/apisix/2.4/plugins/echo/index.html
@@ -16,14 +16,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/favicon. [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 2026a65..244d646 100644
--- a/docs/apisix/2.4/plugins/error-log-logger/index.html
+++ b/docs/apisix/2.4/plugins/error-log-logger/index.html
@@ -16,15 +16,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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 1b4daaf..176eacd 100644
--- a/docs/apisix/2.4/plugins/fault-injection/index.html
+++ b/docs/apisix/2.4/plugins/fault-injection/index.html
@@ -16,8 +16,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/i [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -42,7 +42,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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 5f48d42..7961f19 100644
--- a/docs/apisix/2.4/plugins/grpc-transcode/index.html
+++ b/docs/apisix/2.4/plugins/grpc-transcode/index.html
@@ -16,8 +16,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/im [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -25,7 +25,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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 6c5c0e0..e4e782e 100644
--- a/docs/apisix/2.4/plugins/hmac-auth/index.html
+++ b/docs/apisix/2.4/plugins/hmac-auth/index.html
@@ -16,8 +16,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/fav [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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 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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 277f816..a6df826 100644
--- a/docs/apisix/2.4/plugins/http-logger/index.html
+++ b/docs/apisix/2.4/plugins/http-logger/index.html
@@ -16,14 +16,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/f [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 17f3eea..0164b76 100644
--- a/docs/apisix/2.4/plugins/index.html
+++ b/docs/apisix/2.4/plugins/index.html
@@ -16,14 +16,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/favic [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 3b136b3..d040898 100644
--- a/docs/apisix/2.4/plugins/ip-restriction/index.html
+++ b/docs/apisix/2.4/plugins/ip-restriction/index.html
@@ -16,8 +16,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/im [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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 @@ 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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 9fb1854..46a31a4 100644
--- a/docs/apisix/2.4/plugins/jwt-auth/index.html
+++ b/docs/apisix/2.4/plugins/jwt-auth/index.html
@@ -16,8 +16,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/favi [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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 @@ 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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 b0221798..417477b 100644
--- a/docs/apisix/2.4/plugins/kafka-logger/index.html
+++ b/docs/apisix/2.4/plugins/kafka-logger/index.html
@@ -16,8 +16,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/img/ [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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 @@ 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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 844bd0d..1c6508f 100644
--- a/docs/apisix/2.4/plugins/key-auth/index.html
+++ b/docs/apisix/2.4/plugins/key-auth/index.html
@@ -16,8 +16,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/favi [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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 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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 6121fa6..d232915 100644
--- a/docs/apisix/2.4/plugins/limit-conn/index.html
+++ b/docs/apisix/2.4/plugins/limit-conn/index.html
@@ -16,8 +16,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/fa [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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 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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 21c6cf3..1f37c96 100644
--- a/docs/apisix/2.4/plugins/limit-count/index.html
+++ b/docs/apisix/2.4/plugins/limit-count/index.html
@@ -16,8 +16,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/f [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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 @@ 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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 f96a750..f10e138 100644
--- a/docs/apisix/2.4/plugins/limit-req/index.html
+++ b/docs/apisix/2.4/plugins/limit-req/index.html
@@ -16,8 +16,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/fav [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -25,7 +25,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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 a2bc24e..4fdbedd 100644
--- a/docs/apisix/2.4/plugins/log-rotate/index.html
+++ b/docs/apisix/2.4/plugins/log-rotate/index.html
@@ -16,8 +16,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/fa [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -26,7 +26,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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 441f2ac..6e0b3ac 100644
--- a/docs/apisix/2.4/plugins/mqtt-proxy/index.html
+++ b/docs/apisix/2.4/plugins/mqtt-proxy/index.html
@@ -16,15 +16,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/fa [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 4d8b53a..aeb3ade 100644
--- a/docs/apisix/2.4/plugins/node-status/index.html
+++ b/docs/apisix/2.4/plugins/node-status/index.html
@@ -16,8 +16,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/f [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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 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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 962281c..974bfd1 100644
--- a/docs/apisix/2.4/plugins/openid-connect/index.html
+++ b/docs/apisix/2.4/plugins/openid-connect/index.html
@@ -16,8 +16,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/im [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -48,7 +48,7 @@ Once the user has authenticated against the identity provider, the plugin will o
 and further information from the identity provider on behalf of the user. The information is currently stored
 in a session cookie that the user agent can submit on subsequent requests. The plugin will recognize the cookie
 and use the information therein to avoid having to go through the flow again.</p><p>The following command adds this mode of operation to a route.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly bash"><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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 0178410..b52e76f 100644
--- a/docs/apisix/2.4/plugins/prometheus/index.html
+++ b/docs/apisix/2.4/plugins/prometheus/index.html
@@ -16,8 +16,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/fa [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -26,7 +26,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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 c800ac6..a0e716b 100644
--- a/docs/apisix/2.4/plugins/proxy-cache/index.html
+++ b/docs/apisix/2.4/plugins/proxy-cache/index.html
@@ -16,8 +16,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/f [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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</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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 039e842..37e782f 100644
--- a/docs/apisix/2.4/plugins/proxy-mirror/index.html
+++ b/docs/apisix/2.4/plugins/proxy-mirror/index.html
@@ -16,15 +16,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/img/ [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 2efa48f..2d7aa52 100644
--- a/docs/apisix/2.4/plugins/proxy-rewrite/index.html
+++ b/docs/apisix/2.4/plugins/proxy-rewrite/index.html
@@ -16,15 +16,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/img [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 4297727..6ec718d 100644
--- a/docs/apisix/2.4/plugins/redirect/index.html
+++ b/docs/apisix/2.4/plugins/redirect/index.html
@@ -16,8 +16,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/favi [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -25,7 +25,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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 bc5ea68..c43e7a9 100644
--- a/docs/apisix/2.4/plugins/referer-restriction/index.html
+++ b/docs/apisix/2.4/plugins/referer-restriction/index.html
@@ -16,8 +16,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.o [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -25,7 +25,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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 51c6051..cf9fe6e 100644
--- a/docs/apisix/2.4/plugins/request-id/index.html
+++ b/docs/apisix/2.4/plugins/request-id/index.html
@@ -16,15 +16,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/fa [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 361795d..5a64dcf 100644
--- a/docs/apisix/2.4/plugins/request-validation/index.html
+++ b/docs/apisix/2.4/plugins/request-validation/index.html
@@ -16,15 +16,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.or [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 ba36401..508dfb7 100644
--- a/docs/apisix/2.4/plugins/response-rewrite/index.html
+++ b/docs/apisix/2.4/plugins/response-rewrite/index.html
@@ -16,8 +16,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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -26,7 +26,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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 4752748..2c0b024 100644
--- a/docs/apisix/2.4/plugins/server-info/index.html
+++ b/docs/apisix/2.4/plugins/server-info/index.html
@@ -16,13 +16,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/f [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 b3dddd8..97f871a 100644
--- a/docs/apisix/2.4/plugins/serverless/index.html
+++ b/docs/apisix/2.4/plugins/serverless/index.html
@@ -16,8 +16,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/fa [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -25,7 +25,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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 03d1f34..848adb1 100644
--- a/docs/apisix/2.4/plugins/skywalking/index.html
+++ b/docs/apisix/2.4/plugins/skywalking/index.html
@@ -16,8 +16,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/fa [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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 @@ 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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 c927ef9..4c2f8dc 100644
--- a/docs/apisix/2.4/plugins/sls-logger/index.html
+++ b/docs/apisix/2.4/plugins/sls-logger/index.html
@@ -16,8 +16,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/fa [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -25,7 +25,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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 2db2f80..836599f 100644
--- a/docs/apisix/2.4/plugins/syslog/index.html
+++ b/docs/apisix/2.4/plugins/syslog/index.html
@@ -16,14 +16,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/favico [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 e8cca73..1a956d9 100644
--- a/docs/apisix/2.4/plugins/tcp-logger/index.html
+++ b/docs/apisix/2.4/plugins/tcp-logger/index.html
@@ -16,15 +16,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/fa [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 60f925e..d4f2608 100644
--- a/docs/apisix/2.4/plugins/traffic-split/index.html
+++ b/docs/apisix/2.4/plugins/traffic-split/index.html
@@ -16,8 +16,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/img [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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">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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 0d64a5b..1b90b3f 100644
--- a/docs/apisix/2.4/plugins/udp-logger/index.html
+++ b/docs/apisix/2.4/plugins/udp-logger/index.html
@@ -16,15 +16,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/fa [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 90145ef..cce965f 100644
--- a/docs/apisix/2.4/plugins/uri-blocker/index.html
+++ b/docs/apisix/2.4/plugins/uri-blocker/index.html
@@ -16,14 +16,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/f [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 20e2ebb..66a893d 100644
--- a/docs/apisix/2.4/plugins/wolf-rbac/index.html
+++ b/docs/apisix/2.4/plugins/wolf-rbac/index.html
@@ -16,8 +16,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/fav [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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 @@ 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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 4d5e8f6..d146a40 100644
--- a/docs/apisix/2.4/plugins/zipkin/index.html
+++ b/docs/apisix/2.4/plugins/zipkin/index.html
@@ -16,8 +16,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/favico [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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 @@ 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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 bac3b27..cdd61ef 100644
--- a/docs/apisix/2.4/powered-by/index.html
+++ b/docs/apisix/2.4/powered-by/index.html
@@ -16,14 +16,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.apa [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 2dffde7..e1e68fd 100644
--- a/docs/apisix/2.4/profile/index.html
+++ b/docs/apisix/2.4/profile/index.html
@@ -16,8 +16,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="twitter [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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 @@ 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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 2f94c21..8de8e71 100644
--- a/docs/apisix/2.4/router-radixtree/index.html
+++ b/docs/apisix/2.4/router-radixtree/index.html
@@ -16,8 +16,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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -26,7 +26,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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 efb50a4..24ec2ac 100644
--- a/docs/apisix/2.4/stand-alone/index.html
+++ b/docs/apisix/2.4/stand-alone/index.html
@@ -16,8 +16,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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -25,7 +25,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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 8311b07..5e2e056 100644
--- a/docs/apisix/2.4/stream-proxy/index.html
+++ b/docs/apisix/2.4/stream-proxy/index.html
@@ -16,14 +16,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/img/ [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 d2822a7..206a67f 100644
--- a/docs/apisix/2.4/tags/index.html
+++ b/docs/apisix/2.4/tags/index.html
@@ -16,13 +16,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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 6fc4aec..f84dcbb 100644
--- a/docs/apisix/2.5/FAQ/index.html
+++ b/docs/apisix/2.5/FAQ/index.html
@@ -16,8 +16,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.p [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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 @@ 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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 ff781f1..4046625 100644
--- a/docs/apisix/2.5/IGNORE_DOC/index.html
+++ b/docs/apisix/2.5/IGNORE_DOC/index.html
@@ -16,13 +16,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/fa [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 06ae7dc..c8e366d 100644
--- a/docs/apisix/2.5/admin-api/index.html
+++ b/docs/apisix/2.5/admin-api/index.html
@@ -16,8 +16,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/fav [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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 @@
 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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 ccba235..8326852 100644
--- a/docs/apisix/2.5/architecture-design/apisix/index.html
+++ b/docs/apisix/2.5/architecture-design/apisix/index.html
@@ -16,15 +16,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/favico [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 ce01dfb..ae059a6 100644
--- a/docs/apisix/2.5/architecture-design/consumer/index.html
+++ b/docs/apisix/2.5/architecture-design/consumer/index.html
@@ -16,8 +16,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/favi [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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></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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 5dc45d5..a14d614 100644
--- a/docs/apisix/2.5/architecture-design/debug-mode/index.html
+++ b/docs/apisix/2.5/architecture-design/debug-mode/index.html
@@ -16,8 +16,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/fa [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -25,7 +25,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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 4026b28..cd5b95c 100644
--- a/docs/apisix/2.5/architecture-design/global-rule/index.html
+++ b/docs/apisix/2.5/architecture-design/global-rule/index.html
@@ -16,14 +16,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/f [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 1b33711..188f918 100644
--- a/docs/apisix/2.5/architecture-design/index.html
+++ b/docs/apisix/2.5/architecture-design/index.html
@@ -16,8 +16,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.o [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -42,7 +42,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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 86dafa2..2dbd32a 100644
--- a/docs/apisix/2.5/architecture-design/plugin-config/index.html
+++ b/docs/apisix/2.5/architecture-design/plugin-config/index.html
@@ -16,8 +16,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/img [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -25,7 +25,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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 0981a21..fee82eb 100644
--- a/docs/apisix/2.5/architecture-design/plugin/index.html
+++ b/docs/apisix/2.5/architecture-design/plugin/index.html
@@ -16,13 +16,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/favico [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 ebc5170..33224b4 100644
--- a/docs/apisix/2.5/architecture-design/route/index.html
+++ b/docs/apisix/2.5/architecture-design/route/index.html
@@ -16,15 +16,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/favicon [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 8942f91..87368d9 100644
--- a/docs/apisix/2.5/architecture-design/router/index.html
+++ b/docs/apisix/2.5/architecture-design/router/index.html
@@ -16,13 +16,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/favico [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 7498ce5..bc1c7f1 100644
--- a/docs/apisix/2.5/architecture-design/script/index.html
+++ b/docs/apisix/2.5/architecture-design/script/index.html
@@ -16,13 +16,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/favico [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 0021237..18ca591 100644
--- a/docs/apisix/2.5/architecture-design/service/index.html
+++ b/docs/apisix/2.5/architecture-design/service/index.html
@@ -16,15 +16,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/favic [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 9bfb1e9..fb2e21c 100644
--- a/docs/apisix/2.5/architecture-design/upstream/index.html
+++ b/docs/apisix/2.5/architecture-design/upstream/index.html
@@ -16,13 +16,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/favi [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">join #apisix channel</a> [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 5d0e53b..a729393 100644
--- a/docs/apisix/2.5/aws/index.html
+++ b/docs/apisix/2.5/aws/index.html
@@ -16,8 +16,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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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">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://cdn.jsdelivr.net/gh/apache/apisix@master/docs/assets/images/aws-define-service.png">
 <img src="https://cdn.jsdelivr.net/gh/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://cdn.jsdelivr.net/gh/apache/apisix@master/do [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 eda9384..c151420 100644
--- a/docs/apisix/2.5/batch-processor/index.html
+++ b/docs/apisix/2.5/batch-processor/index.html
@@ -16,8 +16,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/i [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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 @@ 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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 a146f03..e8e14db 100644
--- a/docs/apisix/2.5/benchmark/index.html
+++ b/docs/apisix/2.5/benchmark/index.html
@@ -16,8 +16,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/fav [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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 @@ and the response size was 1KB.</p><h4><a aria-hidden="true" tabindex="-1" class=
 <img src="https://cdn.jsdelivr.net/gh/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="token- [...]
 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://cdn.jsdelivr.net/gh/apache/apisix@master/docs/assets/images/benchmark-2.jpg" alt="benchmark-2"></p><h4><a aria-hidden="true" tabindex="-1" class="anchor anchor__h4 anchorWithH [...]
 <img src="https://cdn.jsdelivr.net/gh/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="token- [...]
-<script src="/assets/js/runtime~main.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 d93f305..ecd2035 100644
--- a/docs/apisix/2.5/control-api/index.html
+++ b/docs/apisix/2.5/control-api/index.html
@@ -16,8 +16,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/f [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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 @@ 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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 5b87597..b93c45d 100644
--- a/docs/apisix/2.5/customize-nginx-configuration/index.html
+++ b/docs/apisix/2.5/customize-nginx-configuration/index.html
@@ -16,8 +16,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://apisi [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -25,7 +25,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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 a3877d3..1bf0317 100644
--- a/docs/apisix/2.5/debug-function/index.html
+++ b/docs/apisix/2.5/debug-function/index.html
@@ -16,14 +16,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/im [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 0c3e566..9a95f2c 100644
--- a/docs/apisix/2.5/discovery/consul_kv/index.html
+++ b/docs/apisix/2.5/discovery/consul_kv/index.html
@@ -16,8 +16,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/fav [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -25,7 +25,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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 759e536..24e6a51 100644
--- a/docs/apisix/2.5/discovery/dns/index.html
+++ b/docs/apisix/2.5/discovery/dns/index.html
@@ -16,8 +16,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.p [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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></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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 470f568..287d4e9 100644
--- a/docs/apisix/2.5/discovery/index.html
+++ b/docs/apisix/2.5/discovery/index.html
@@ -16,8 +16,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="http [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 8d43219..8c7e483 100644
--- a/docs/apisix/2.5/dns/index.html
+++ b/docs/apisix/2.5/dns/index.html
@@ -16,8 +16,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.p [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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 @@ 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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 bd61cf9..75e63fc 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
@@ -16,8 +16,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://ap [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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 @@
 </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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 74ebbb0..df156c1 100644
--- a/docs/apisix/2.5/getting-started/index.html
+++ b/docs/apisix/2.5/getting-started/index.html
@@ -16,8 +16,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/i [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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 @@ 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://cdn.jsdelivr.net/gh/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 (The def [...]
 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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 2d476c1..895948a 100644
--- a/docs/apisix/2.5/grpc-proxy/index.html
+++ b/docs/apisix/2.5/grpc-proxy/index.html
@@ -16,14 +16,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/fa [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 a908615..34e6e9a 100644
--- a/docs/apisix/2.5/health-check/index.html
+++ b/docs/apisix/2.5/health-check/index.html
@@ -16,8 +16,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/img/ [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -25,7 +25,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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 ee8af4c..a7f047a 100644
--- a/docs/apisix/2.5/how-to-build/index.html
+++ b/docs/apisix/2.5/how-to-build/index.html
@@ -16,8 +16,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.a [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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 @@ 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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 41dc067..a0e0155 100644
--- a/docs/apisix/2.5/https/index.html
+++ b/docs/apisix/2.5/https/index.html
@@ -16,8 +16,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/favicon [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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 @@ 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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 48f6213..24712b8 100644
--- a/docs/apisix/2.5/install-dependencies/index.html
+++ b/docs/apisix/2.5/install-dependencies/index.html
@@ -16,8 +16,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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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"></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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 5ab4add..404cf26 100644
--- a/docs/apisix/2.5/mtls/index.html
+++ b/docs/apisix/2.5/mtls/index.html
@@ -16,14 +16,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="htt [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 9f6d4cc..86dbf1f 100644
--- a/docs/apisix/2.5/plugin-develop/index.html
+++ b/docs/apisix/2.5/plugin-develop/index.html
@@ -16,8 +16,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/im [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -54,7 +54,7 @@ return items of HTTP include HTTP status, HTTP response header, HTTP response bo
 You may need to use <a href="/docs/apisix/2.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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 3500337..df57325 100644
--- a/docs/apisix/2.5/plugin-interceptors/index.html
+++ b/docs/apisix/2.5/plugin-interceptors/index.html
@@ -16,8 +16,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.o [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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 @@ 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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 c86bdcd..04571d6 100644
--- a/docs/apisix/2.5/plugins/api-breaker/index.html
+++ b/docs/apisix/2.5/plugins/api-breaker/index.html
@@ -16,14 +16,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/f [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 22f4f0b..d54c0e0 100644
--- a/docs/apisix/2.5/plugins/authz-keycloak/index.html
+++ b/docs/apisix/2.5/plugins/authz-keycloak/index.html
@@ -16,8 +16,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/im [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
@@ -48,7 +48,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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 d6cfe22..1bca818 100644
--- a/docs/apisix/2.5/plugins/basic-auth/index.html
+++ b/docs/apisix/2.5/plugins/basic-auth/index.html
@@ -16,15 +16,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/fa [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 6dfaf0b..6aeaa57 100644
--- a/docs/apisix/2.5/plugins/batch-requests/index.html
+++ b/docs/apisix/2.5/plugins/batch-requests/index.html
@@ -16,15 +16,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/im [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 459098c..a729d6a 100644
--- a/docs/apisix/2.5/plugins/consumer-restriction/index.html
+++ b/docs/apisix/2.5/plugins/consumer-restriction/index.html
@@ -16,8 +16,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="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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 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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 36c3c51..afc031c 100644
--- a/docs/apisix/2.5/plugins/cors/index.html
+++ b/docs/apisix/2.5/plugins/cors/index.html
@@ -16,14 +16,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/favicon. [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ">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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.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 72adc90..38fe040 100644
--- a/docs/apisix/2.5/plugins/dubbo-proxy/index.html
+++ b/docs/apisix/2.5/plugins/dubbo-proxy/index.html
@@ -16,8 +16,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/f [...]
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.243b80db.js" as="script">
-<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.29a8b3b7.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/runtime~main.75486ee8.js" as="script">
+<link rel="preload" href="https://cdn.jsdelivr.net/gh/apache/apisix-website@asf-site/assets/js/main.dacd1b62.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.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 @@ 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.243b80db.js"></script>
-<script src="/assets/js/main.29a8b3b7.js"></script>
+<script src="/assets/js/runtime~main.75486ee8.js"></script>
+<script src="/assets/js/main.dacd1b62.js"></script>
 </body>
 </html>
\ No newline at end of file
... 50885 lines suppressed ...