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/02/25 06:48:32 UTC

[apisix-website] branch asf-site updated: deploy: 76d37e4e98654881762e4f820d03c02e908d8bd4

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 098620f  deploy: 76d37e4e98654881762e4f820d03c02e908d8bd4
098620f is described below

commit 098620fb18bee099d36800f89347ecf1ec639078
Author: juzhiyuan <ju...@users.noreply.github.com>
AuthorDate: Thu Feb 25 06:48:03 2021 +0000

    deploy: 76d37e4e98654881762e4f820d03c02e908d8bd4
---
 404.html                                           | 12 ++---
 assets/js/03b7a20f.e4a2d3d7.js                     |  1 +
 assets/js/{1.b21fad17.js => 1.3237074b.js}         |  2 +-
 .../{12e5767f.2a3dfa9d.js => 12e5767f.850d19de.js} |  2 +-
 .../js/17896441.e58bae36.js                        |  2 +-
 .../{17dc512b.570e01fe.js => 17dc512b.86d51ee0.js} |  2 +-
 .../{1b2ed0ef.fd13d6e7.js => 1b2ed0ef.ea56948e.js} |  2 +-
 assets/js/1be5d2e8.0ab794df.js                     |  1 -
 assets/js/1be5d2e8.28e9f8eb.js                     |  1 +
 .../{1be78505.d24880b0.js => 1be78505.a6852249.js} |  2 +-
 .../{514de2af.d980fd4f.js => 1c89ab3b.d0ddd7c3.js} |  2 +-
 assets/js/{2.c74b4887.js => 2.e4d54c2b.js}         |  4 +-
 .../js/2.e4d54c2b.js.LICENSE.txt                   |  0
 .../{25b7c3f2.1e053d90.js => 25b7c3f2.b10b26ef.js} |  2 +-
 .../{2d8fe9ee.09d7d664.js => 2d8fe9ee.dd6ca160.js} |  2 +-
 .../js/3.e5911a24.js => assets/js/3.b8da59b5.js    |  2 +-
 .../{30788500.5be7947f.js => 30788500.ba236561.js} |  2 +-
 assets/js/33c9e5b3.fa2ee99d.js                     |  1 +
 .../{37e3b3ea.bccc6220.js => 37e3b3ea.0060877a.js} |  2 +-
 .../{3dc9f306.05b19a54.js => 3dc9f306.2fd73ec2.js} |  2 +-
 assets/js/{4.f867f6a9.js => 4.c30f7bca.js}         |  2 +-
 .../{41b4926b.b72ec77b.js => 41b4926b.1ebfdec5.js} |  2 +-
 assets/js/43aea6af.48c9c214.js                     |  1 +
 .../{47e0bf55.a6c19db6.js => 47e0bf55.61a2fe95.js} |  2 +-
 .../{47f8a22a.e97fe1a0.js => 47f8a22a.09ed66e0.js} |  2 +-
 assets/js/4e55a385.72fe71d9.js                     |  1 +
 .../{4eed9ed2.f6cbdbbf.js => 4eed9ed2.604b9b33.js} |  2 +-
 .../{50facf8e.5e31a885.js => 50facf8e.5be62c13.js} |  2 +-
 .../{1c89ab3b.d668bc40.js => 514de2af.4139792e.js} |  2 +-
 .../{574dc000.24d7bcfe.js => 574dc000.3d3106e8.js} |  2 +-
 assets/js/5971cb1d.4c69067e.js                     |  1 +
 .../{a4a2cefa.4d2fd8e2.js => 5bb67ffc.29973ce6.js} |  2 +-
 assets/js/5bb67ffc.ef54c73b.js                     |  1 -
 assets/js/64288df6.ad151f74.js                     |  1 +
 .../{66fbb9c2.049ddc86.js => 66fbb9c2.8a5f87c5.js} |  2 +-
 assets/js/6967878f.e1ef4f0f.js                     |  1 +
 assets/js/6f365930.72cde7c4.js                     |  1 +
 assets/js/6f9b6084.0b37295d.js                     |  1 +
 assets/js/6f9b6084.6cf4e9dd.js                     |  1 -
 .../js/54.b7cce01d.js => assets/js/71.349eb674.js  |  4 +-
 .../js/71.349eb674.js.LICENSE.txt                  |  0
 assets/js/{55.e6e1e1c1.js => 72.359b3048.js}       |  2 +-
 .../js/56.56a582f4.js => assets/js/73.149af841.js  |  2 +-
 assets/js/{57.ff9147f8.js => 74.6d6bc613.js}       |  2 +-
 .../{e02da2c5.d84d16c5.js => 749ed826.1e47188d.js} |  2 +-
 assets/js/749ed826.dbea5f11.js                     |  1 -
 assets/js/{58.79cc1bdb.js => 75.f01d5ce7.js}       |  2 +-
 assets/js/{59.654079dd.js => 76.0f6d1c85.js}       |  2 +-
 assets/js/7af3052c.8522948c.js                     |  1 +
 assets/js/7af3052c.8f843f82.js                     |  1 -
 assets/js/7e37206e.7992680e.js                     |  1 -
 assets/js/7e37206e.7f7bd448.js                     |  1 +
 .../js/859cc09f.073c77b1.js                        |  2 +-
 assets/js/8e27d69a.6af737c6.js                     |  1 +
 assets/js/8e784bf3.1b962dc5.js                     |  1 +
 assets/js/8e784bf3.e49a8071.js                     |  1 -
 assets/js/93013804.abd54dc1.js                     |  1 +
 assets/js/935f2afb.04a89e4c.js                     |  1 +
 assets/js/935f2afb.66e0e7d2.js                     |  1 -
 assets/js/941c758c.8297f47d.js                     |  1 +
 .../{98c69322.3d9a7897.js => 98c69322.997e699b.js} |  2 +-
 assets/js/9c26c05d.2ea60543.js                     |  1 +
 assets/js/9dc47d34.65945a6e.js                     |  1 +
 assets/js/a4a2cefa.10438715.js                     |  1 +
 .../{a6641250.4759241f.js => a6641250.0ca65b36.js} |  2 +-
 .../{a6aa9e1f.81639056.js => a6aa9e1f.55e4f1e9.js} |  2 +-
 assets/js/adbb350b.50fd5a49.js                     |  1 -
 assets/js/adbb350b.ed55eb96.js                     |  1 +
 assets/js/b123c67b.d341bb40.js                     |  1 +
 .../{b2b675dd.f78e88c7.js => b2b675dd.03e0dad8.js} |  2 +-
 assets/js/b4a67526.4e6383ea.js                     |  1 +
 assets/js/b4a67526.6f6704ad.js                     |  1 -
 assets/js/b58143c5.577446c7.js                     |  1 +
 .../{bacea567.58c33be1.js => bacea567.52ee32ac.js} |  2 +-
 .../{c119cf3c.a240434d.js => c119cf3c.342e02c4.js} |  2 +-
 .../js/c4f5d8e4.08af8182.js                        |  2 +-
 .../{c5594f1a.b73b27b8.js => c5594f1a.9724dc93.js} |  2 +-
 .../{ccc49370.938f9db4.js => ccc49370.b142e6b6.js} |  2 +-
 .../{d4de91ec.5615c552.js => d4de91ec.5a94f2f3.js} |  2 +-
 .../{d73fca9b.100c8f68.js => d73fca9b.42acaf18.js} |  2 +-
 .../{e02da2c5.d84d16c5.js => e02da2c5.9aa3ef3b.js} |  2 +-
 .../{e451ae2c.162a757f.js => e451ae2c.395a184f.js} |  2 +-
 assets/js/e60dd3b0.0e02eecb.js                     |  1 +
 .../{f243156b.1561d1a4.js => f243156b.8867e6e0.js} |  2 +-
 assets/js/f6cd6006.a5b31f3d.js                     |  1 +
 .../{f7488fe8.e624b827.js => f7488fe8.115aa429.js} |  2 +-
 .../{fa919c95.8686a53b.js => fa919c95.629820e4.js} |  2 +-
 assets/js/main.9d7dd60f.js                         |  2 +
 .../js/main.9d7dd60f.js.LICENSE.txt                |  0
 assets/js/main.f336ec98.js                         |  2 -
 assets/js/runtime~main.cc8f64c2.js                 |  1 +
 assets/js/runtime~main.f2d98ad9.js                 |  1 -
 .../js/{styles.69143f42.js => styles.bf547cb6.js}  |  2 +-
 blog/2020/08/22/new-website/index.html             | 36 +++++++-------
 .../index.html                                     | 36 +++++++-------
 .../index.html                                     | 36 +++++++-------
 .../21/run-ingress-apisix-on-amazon-eks/index.html | 36 +++++++-------
 .../index.html                                     | 36 +++++++-------
 blog/index.html                                    | 56 +++++++++++-----------
 docs/apisix/introduction/index.html                | 36 +++++++-------
 docs/dashboard/introduction/index.html             | 36 +++++++-------
 docs/general/2fa/index.html                        | 38 +++++++--------
 docs/general/committer-guide/index.html            | 38 +++++++--------
 docs/general/contributor-guide/index.html          | 38 +++++++--------
 docs/general/release-guide/index.html              | 38 +++++++--------
 docs/general/security/index.html                   | 38 +++++++--------
 docs/general/subscribe-guide/index.html            | 38 +++++++--------
 docs/index.html                                    | 28 +++++------
 .../CRD-specification/index.html                   | 55 +++++++++++++++++++++
 docs/ingress-controller/FAQ/index.html             | 37 ++++++++++++++
 docs/ingress-controller/contribute/index.html      | 41 ++++++++++++++++
 docs/ingress-controller/deployments/ack/index.html | 37 ++++++++++++++
 docs/ingress-controller/deployments/aws/index.html | 37 ++++++++++++++
 .../deployments/azure/index.html                   | 37 ++++++++++++++
 docs/ingress-controller/deployments/gke/index.html | 37 ++++++++++++++
 .../deployments/k3s-rke/index.html                 | 39 +++++++++++++++
 .../deployments/kubesphere/index.html              | 38 +++++++++++++++
 .../deployments/minikube/index.html                | 37 ++++++++++++++
 docs/ingress-controller/deployments/tke/index.html | 37 ++++++++++++++
 docs/ingress-controller/design/index.html          | 37 ++++++++++++++
 docs/ingress-controller/development/index.html     | 37 ++++++++++++++
 docs/ingress-controller/introduction/index.html    | 38 +++++++--------
 docs/ingress-controller/samples/index/index.html   | 37 ++++++++++++++
 .../index.html                                     | 39 +++++++++++++++
 .../samples/proxy-the-httpbin-service/index.html   | 38 +++++++++++++++
 docs/ingress-controller/usage/index.html           | 39 +++++++++++++++
 downloads/ProjectCard/index.html                   | 24 +++++-----
 downloads/index.html                               | 32 ++++++-------
 .../index.html                                     | 36 +++++++-------
 .../index.html                                     | 36 +++++++-------
 .../02/09/release-apache-apisix-2.3/index.html     | 36 +++++++-------
 .../index.html                                     | 36 +++++++-------
 .../release-apache-apisix-dashboard-2.4/index.html | 36 +++++++-------
 events/index.html                                  | 56 +++++++++++-----------
 help/index.html                                    | 28 +++++------
 index.html                                         | 28 +++++------
 search/index.html                                  | 24 +++++-----
 sitemap.xml                                        |  2 +-
 team/index.html                                    | 28 +++++------
 zh/404.html                                        | 12 ++---
 zh/assets/js/03b7a20f.3bf1c927.js                  |  1 +
 zh/assets/js/{1.b21fad17.js => 1.3237074b.js}      |  2 +-
 .../{12e5767f.d61c8e43.js => 12e5767f.f2eec07d.js} |  2 +-
 .../assets/js/17896441.e58bae36.js                 |  2 +-
 .../{17dc512b.888d5c12.js => 17dc512b.9356f2ae.js} |  2 +-
 .../{1b2ed0ef.1ea9785f.js => 1b2ed0ef.30fe001f.js} |  2 +-
 zh/assets/js/1be5d2e8.8711092b.js                  |  1 -
 zh/assets/js/1be5d2e8.e89757e0.js                  |  1 +
 .../{1be78505.d24880b0.js => 1be78505.a6852249.js} |  2 +-
 .../{1c89ab3b.19ea93a0.js => 1c89ab3b.bd66ba2f.js} |  2 +-
 zh/assets/js/{2.c74b4887.js => 2.e4d54c2b.js}      |  4 +-
 .../assets/js/2.e4d54c2b.js.LICENSE.txt            |  0
 .../{25b7c3f2.1e053d90.js => 25b7c3f2.b10b26ef.js} |  2 +-
 .../{2d8fe9ee.fbf876c8.js => 2d8fe9ee.b9f3aac6.js} |  2 +-
 .../js/3.e5911a24.js => zh/assets/js/3.b8da59b5.js |  2 +-
 .../{30788500.8f19702c.js => 30788500.2a62b56a.js} |  2 +-
 zh/assets/js/33c9e5b3.b55b8b6d.js                  |  1 +
 .../{37e3b3ea.6fa5c709.js => 37e3b3ea.f690ecb9.js} |  2 +-
 .../{3a332aed.00986c3a.js => 3a332aed.f192c258.js} |  2 +-
 .../{3dc9f306.9d4a6d24.js => 3dc9f306.ab8af202.js} |  2 +-
 zh/assets/js/{4.a448f392.js => 4.02c38c66.js}      |  2 +-
 .../{41b4926b.702246a9.js => 41b4926b.4289490b.js} |  2 +-
 zh/assets/js/43aea6af.5bc382da.js                  |  1 +
 .../{47e0bf55.1e18a655.js => 47e0bf55.12d78c9c.js} |  2 +-
 .../{47f8a22a.b9d7e773.js => 47f8a22a.24c3a77a.js} |  2 +-
 zh/assets/js/4e55a385.224b6088.js                  |  1 +
 .../{4eed9ed2.6483805d.js => 4eed9ed2.b4732670.js} |  2 +-
 .../{50facf8e.f2524bf0.js => 50facf8e.3be2ee6d.js} |  2 +-
 .../{514de2af.c87083ac.js => 514de2af.ddff589b.js} |  2 +-
 zh/assets/js/5971cb1d.bd68b8d9.js                  |  1 +
 .../{5bb67ffc.5facfc0f.js => 5bb67ffc.6676bc64.js} |  2 +-
 zh/assets/js/64288df6.0b1a8e60.js                  |  1 +
 .../{66fbb9c2.3ba511fe.js => 66fbb9c2.ceb2996a.js} |  2 +-
 zh/assets/js/6967878f.a631fe17.js                  |  1 +
 zh/assets/js/6f365930.2f46b0c6.js                  |  1 +
 zh/assets/js/6f9b6084.47c7a420.js                  |  1 -
 .../assets/js/6f9b6084.bbbc7524.js                 |  2 +-
 .../54.b7cce01d.js => zh/assets/js/71.349eb674.js  |  4 +-
 .../assets/js/71.349eb674.js.LICENSE.txt           |  0
 zh/assets/js/{55.e6e1e1c1.js => 72.359b3048.js}    |  2 +-
 .../56.56a582f4.js => zh/assets/js/73.149af841.js  |  2 +-
 zh/assets/js/{57.ff9147f8.js => 74.6d6bc613.js}    |  2 +-
 zh/assets/js/749ed826.21ee0429.js                  |  1 -
 .../{e02da2c5.2b498400.js => 749ed826.c7c49442.js} |  2 +-
 zh/assets/js/{58.79cc1bdb.js => 75.f01d5ce7.js}    |  2 +-
 zh/assets/js/{59.654079dd.js => 76.0f6d1c85.js}    |  2 +-
 zh/assets/js/7af3052c.38082a70.js                  |  1 -
 zh/assets/js/7af3052c.4a3e2915.js                  |  1 +
 zh/assets/js/7e37206e.7992680e.js                  |  1 -
 zh/assets/js/7e37206e.7f7bd448.js                  |  1 +
 zh/assets/js/7ecc8185.2402dced.js                  |  1 -
 zh/assets/js/7ecc8185.4b05f8f4.js                  |  1 +
 .../assets/js/859cc09f.2f8c75cd.js                 |  2 +-
 zh/assets/js/8e27d69a.ad0dde1f.js                  |  1 +
 zh/assets/js/8e784bf3.0b3c8a01.js                  |  1 +
 zh/assets/js/8e784bf3.b6e04c50.js                  |  1 -
 zh/assets/js/93013804.a1084f39.js                  |  1 +
 zh/assets/js/935f2afb.2a534bfd.js                  |  1 -
 zh/assets/js/935f2afb.ef7de6cb.js                  |  1 +
 zh/assets/js/941c758c.74ea672b.js                  |  1 +
 .../{98c69322.bcfd2dda.js => 98c69322.cb3d97e1.js} |  2 +-
 zh/assets/js/9c26c05d.46e197e6.js                  |  1 +
 zh/assets/js/9dc47d34.a5d284c9.js                  |  1 +
 .../{a4a2cefa.309c52fd.js => a4a2cefa.60191566.js} |  2 +-
 .../{a6641250.a8f6a2f7.js => a6641250.0d5381e9.js} |  2 +-
 .../{a6aa9e1f.c641128b.js => a6aa9e1f.44ef45f8.js} |  2 +-
 zh/assets/js/adbb350b.b4246bac.js                  |  1 -
 zh/assets/js/adbb350b.c03146e8.js                  |  1 +
 zh/assets/js/b123c67b.ce93488a.js                  |  1 +
 zh/assets/js/b4a67526.4e6383ea.js                  |  1 +
 zh/assets/js/b4a67526.ad72e997.js                  |  1 -
 zh/assets/js/b58143c5.16973ecf.js                  |  1 +
 .../{bacea567.49cd87f9.js => bacea567.94238c06.js} |  2 +-
 .../{c119cf3c.b661798c.js => c119cf3c.f30b41ff.js} |  2 +-
 .../assets/js/c4f5d8e4.08af8182.js                 |  2 +-
 .../{c5594f1a.d180ea48.js => c5594f1a.edad8977.js} |  2 +-
 .../{ccc49370.938f9db4.js => ccc49370.b142e6b6.js} |  2 +-
 .../{d4de91ec.55c63e46.js => d4de91ec.a4fb0674.js} |  2 +-
 .../{d73fca9b.42736b26.js => d73fca9b.a6800911.js} |  2 +-
 .../{e02da2c5.2b498400.js => e02da2c5.b96f4156.js} |  2 +-
 .../{e451ae2c.b451f25a.js => e451ae2c.7c7f3e19.js} |  2 +-
 zh/assets/js/e60dd3b0.788b923e.js                  |  1 +
 .../{f243156b.3b8ec092.js => f243156b.c45320cb.js} |  2 +-
 zh/assets/js/f6cd6006.07ff6037.js                  |  1 +
 .../{f7488fe8.ed219fa4.js => f7488fe8.78be7bf2.js} |  2 +-
 .../{fa919c95.75271be3.js => fa919c95.e28dfe07.js} |  2 +-
 zh/assets/js/main.0749e470.js                      |  2 +
 .../assets/js/main.0749e470.js.LICENSE.txt         |  0
 zh/assets/js/main.8ce1e08c.js                      |  2 -
 zh/assets/js/runtime~main.0b5a1314.js              |  1 +
 zh/assets/js/runtime~main.d3f78d59.js              |  1 -
 .../js/{styles.d25a02cf.js => styles.8ae08ebc.js}  |  2 +-
 zh/blog/2020/08/22/new-website/index.html          | 36 +++++++-------
 .../index.html                                     | 36 +++++++-------
 .../index.html                                     | 36 +++++++-------
 .../21/run-ingress-apisix-on-amazon-eks/index.html | 36 +++++++-------
 .../index.html                                     | 36 +++++++-------
 zh/blog/index.html                                 | 56 +++++++++++-----------
 zh/docs/apisix/introduction/index.html             | 36 +++++++-------
 zh/docs/dashboard/introduction/index.html          | 36 +++++++-------
 zh/docs/general/2fa/index.html                     | 38 +++++++--------
 zh/docs/general/committer-guide/index.html         | 38 +++++++--------
 zh/docs/general/contributor-guide/index.html       | 38 +++++++--------
 zh/docs/general/release-guide/index.html           | 38 +++++++--------
 zh/docs/general/security/index.html                | 38 +++++++--------
 zh/docs/general/subscribe-guide/index.html         | 38 +++++++--------
 zh/docs/index.html                                 | 28 +++++------
 .../CRD-specification/index.html                   | 55 +++++++++++++++++++++
 zh/docs/ingress-controller/FAQ/index.html          | 37 ++++++++++++++
 zh/docs/ingress-controller/contribute/index.html   | 41 ++++++++++++++++
 .../ingress-controller/deployments/ack/index.html  | 37 ++++++++++++++
 .../ingress-controller/deployments/aws/index.html  | 37 ++++++++++++++
 .../deployments/azure/index.html                   | 37 ++++++++++++++
 .../ingress-controller/deployments/gke/index.html  | 37 ++++++++++++++
 .../deployments/k3s-rke/index.html                 | 39 +++++++++++++++
 .../deployments/kubesphere/index.html              | 38 +++++++++++++++
 .../deployments/minikube/index.html                | 37 ++++++++++++++
 .../ingress-controller/deployments/tke/index.html  | 37 ++++++++++++++
 zh/docs/ingress-controller/design/index.html       | 37 ++++++++++++++
 zh/docs/ingress-controller/development/index.html  | 37 ++++++++++++++
 zh/docs/ingress-controller/introduction/index.html | 38 +++++++--------
 .../ingress-controller/samples/index/index.html    | 37 ++++++++++++++
 .../index.html                                     | 39 +++++++++++++++
 .../samples/proxy-the-httpbin-service/index.html   | 38 +++++++++++++++
 zh/docs/ingress-controller/usage/index.html        | 39 +++++++++++++++
 zh/downloads/ProjectCard/index.html                | 24 +++++-----
 zh/downloads/index.html                            | 32 ++++++-------
 .../index.html                                     | 36 +++++++-------
 .../index.html                                     | 36 +++++++-------
 .../02/09/release-apache-apisix-2.3/index.html     | 36 +++++++-------
 .../index.html                                     | 36 +++++++-------
 .../release-apache-apisix-dashboard-2.4/index.html | 36 +++++++-------
 zh/events/index.html                               | 56 +++++++++++-----------
 zh/help/index.html                                 | 28 +++++------
 zh/index.html                                      | 28 +++++------
 zh/search/index.html                               | 24 +++++-----
 zh/sitemap.xml                                     |  2 +-
 zh/team/index.html                                 | 28 +++++------
 278 files changed, 2494 insertions(+), 1145 deletions(-)

diff --git a/404.html b/404.html
index 02c7211..47b72f1 100644
--- a/404.html
+++ b/404.html
@@ -11,15 +11,15 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Page Not Found | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Page Not Found | Apache APISIX™"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//404.html"><meta data-react-helmet="true" na [...]
-<link rel="preload" href="/assets/js/styles.69143f42.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.f2d98ad9.js" as="script">
-<link rel="preload" href="/assets/js/main.f336ec98.js" as="script">
+<link rel="preload" href="/assets/js/styles.bf547cb6.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.cc8f64c2.js" as="script">
+<link rel="preload" href="/assets/js/main.9d7dd60f.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
-<script src="/assets/js/styles.69143f42.js"></script>
-<script src="/assets/js/runtime~main.f2d98ad9.js"></script>
-<script src="/assets/js/main.f336ec98.js"></script>
+<script src="/assets/js/styles.bf547cb6.js"></script>
+<script src="/assets/js/runtime~main.cc8f64c2.js"></script>
+<script src="/assets/js/main.9d7dd60f.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/assets/js/03b7a20f.e4a2d3d7.js b/assets/js/03b7a20f.e4a2d3d7.js
new file mode 100644
index 0000000..c572fce
--- /dev/null
+++ b/assets/js/03b7a20f.e4a2d3d7.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[5],{142:function(e,t,n){"use strict";n.d(t,"a",(function(){return d})),n.d(t,"b",(function(){return m}));var a=n(0),r=n.n(a);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 l(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}))) [...]
\ No newline at end of file
diff --git a/assets/js/1.b21fad17.js b/assets/js/1.3237074b.js
similarity index 83%
rename from assets/js/1.b21fad17.js
rename to assets/js/1.3237074b.js
index 74d50e6..b933418 100644
--- a/assets/js/1.b21fad17.js
+++ b/assets/js/1.3237074b.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{126:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(158);Object.defineProperty(t,"useThemeConfig",{enumerable:!0,get:function(){return r.useThemeConfig}});var o=n(185);Object.defineProperty(t,"useAlternatePageUtils",{enumerable:!0,get:function(){return o.useAlternatePageUtils}});var i=n(186);Object.defineProperty(t,"docVersionSearchTag",{enumerable:!0,get:function(){return i.docVersionSearchTag [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{143:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(175);Object.defineProperty(t,"useThemeConfig",{enumerable:!0,get:function(){return r.useThemeConfig}});var o=n(202);Object.defineProperty(t,"useAlternatePageUtils",{enumerable:!0,get:function(){return o.useAlternatePageUtils}});var i=n(203);Object.defineProperty(t,"docVersionSearchTag",{enumerable:!0,get:function(){return i.docVersionSearchTag [...]
\ No newline at end of file
diff --git a/assets/js/12e5767f.2a3dfa9d.js b/assets/js/12e5767f.850d19de.js
similarity index 95%
rename from assets/js/12e5767f.2a3dfa9d.js
rename to assets/js/12e5767f.850d19de.js
index ae42051..7033a60 100644
--- a/assets/js/12e5767f.2a3dfa9d.js
+++ b/assets/js/12e5767f.850d19de.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[5],{125:function(e,t,r){"use strict";r.d(t,"a",(function(){return u})),r.d(t,"b",(function(){return f}));var n=r(0),a=r.n(n);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 l(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}))) [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{142:function(e,t,r){"use strict";r.d(t,"a",(function(){return u})),r.d(t,"b",(function(){return f}));var n=r(0),a=r.n(n);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 l(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}))) [...]
\ No newline at end of file
diff --git a/zh/assets/js/17896441.ab569ce4.js b/assets/js/17896441.e58bae36.js
similarity index 92%
rename from zh/assets/js/17896441.ab569ce4.js
rename to assets/js/17896441.e58bae36.js
index 07efa83..6ea3b57 100644
--- a/zh/assets/js/17896441.ab569ce4.js
+++ b/assets/js/17896441.e58bae36.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{120:function(e,t,a){"use strict";a.r(t);var n=a(0),l=a.n(n),r=a(24),c=a(126),i=a(17),o=a(132),m=a(128);var s=function(e){var t=e.metadata;return l.a.createElement("nav",{className:"pagination-nav","aria-label":"Blog list page navigation"},l.a.createElement("div",{className:"pagination-nav__item"},t.previous&&l.a.createElement(m.a,{className:"pagination-nav__link",to:t.previous.permalink},l.a.createElement("div",{className:"paginati [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{137:function(e,t,a){"use strict";a.r(t);var n=a(0),l=a.n(n),r=a(24),c=a(143),i=a(17),o=a(149),m=a(145);var s=function(e){var t=e.metadata;return l.a.createElement("nav",{className:"pagination-nav","aria-label":"Blog list page navigation"},l.a.createElement("div",{className:"pagination-nav__item"},t.previous&&l.a.createElement(m.a,{className:"pagination-nav__link",to:t.previous.permalink},l.a.createElement("div",{className:"paginati [...]
\ No newline at end of file
diff --git a/assets/js/17dc512b.570e01fe.js b/assets/js/17dc512b.86d51ee0.js
similarity index 92%
rename from assets/js/17dc512b.570e01fe.js
rename to assets/js/17dc512b.86d51ee0.js
index 21b05f9..afae981 100644
--- a/assets/js/17dc512b.570e01fe.js
+++ b/assets/js/17dc512b.86d51ee0.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{125:function(e,t,r){"use strict";r.d(t,"a",(function(){return s})),r.d(t,"b",(function(){return y}));var n=r(0),a=r.n(n);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}))) [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{142:function(e,t,r){"use strict";r.d(t,"a",(function(){return s})),r.d(t,"b",(function(){return y}));var n=r(0),a=r.n(n);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}))) [...]
\ No newline at end of file
diff --git a/assets/js/1b2ed0ef.fd13d6e7.js b/assets/js/1b2ed0ef.ea56948e.js
similarity index 93%
copy from assets/js/1b2ed0ef.fd13d6e7.js
copy to assets/js/1b2ed0ef.ea56948e.js
index 1b863b0..7b5c85b 100644
--- a/assets/js/1b2ed0ef.fd13d6e7.js
+++ b/assets/js/1b2ed0ef.ea56948e.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{125:function(e,t,n){"use strict";n.d(t,"a",(function(){return f})),n.d(t,"b",(function(){return m}));var r=n(0),o=n.n(r);function c(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}))) [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[9],{142:function(e,t,n){"use strict";n.d(t,"a",(function(){return f})),n.d(t,"b",(function(){return m}));var r=n(0),o=n.n(r);function c(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}))) [...]
\ No newline at end of file
diff --git a/assets/js/1be5d2e8.0ab794df.js b/assets/js/1be5d2e8.0ab794df.js
deleted file mode 100644
index 12b53d8..0000000
--- a/assets/js/1be5d2e8.0ab794df.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[9],{125:function(e,t,r){"use strict";r.d(t,"a",(function(){return u})),r.d(t,"b",(function(){return h}));var n=r(0),a=r.n(n);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 l(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}))) [...]
\ No newline at end of file
diff --git a/assets/js/1be5d2e8.28e9f8eb.js b/assets/js/1be5d2e8.28e9f8eb.js
new file mode 100644
index 0000000..79b4f8e
--- /dev/null
+++ b/assets/js/1be5d2e8.28e9f8eb.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[10],{142:function(e,t,r){"use strict";r.d(t,"a",(function(){return u})),r.d(t,"b",(function(){return h}));var n=r(0),a=r.n(n);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 l(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})) [...]
\ No newline at end of file
diff --git a/assets/js/1be78505.d24880b0.js b/assets/js/1be78505.a6852249.js
similarity index 92%
rename from assets/js/1be78505.d24880b0.js
rename to assets/js/1be78505.a6852249.js
index 3d93535..16111fa 100644
--- a/assets/js/1be78505.d24880b0.js
+++ b/assets/js/1be78505.a6852249.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[10],{121:function(e,a,t){"use strict";t.r(a);var n=t(0),c=t.n(n),i=t(125),l=t(17),r=t(27),o=t(129),s=t(3),u=t(7),b=t(127),d=t(126),m=t(161),p=t(167),f=t(168),v=t(166),h=t(128),E=t(146),O=t(170),j=t(173),k=t(172),C=t(76),_=t.n(C),g=t(169);var N=function e(a,t){return"link"===a.type?Object(d.isSamePath)(a.href,t):"category"===a.type&&a.items.some((function(a){return e(a,t)}))};function I(e){var a,t,i,l=e.item,r=e.onItemClick,o=e.collapsi [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[11],{138:function(e,a,t){"use strict";t.r(a);var n=t(0),c=t.n(n),i=t(142),l=t(17),r=t(27),o=t(146),s=t(3),u=t(7),b=t(144),d=t(143),m=t(178),p=t(184),f=t(185),v=t(183),h=t(145),E=t(163),O=t(187),j=t(190),k=t(189),C=t(77),_=t.n(C),g=t(186);var N=function e(a,t){return"link"===a.type?Object(d.isSamePath)(a.href,t):"category"===a.type&&a.items.some((function(a){return e(a,t)}))};function I(e){var a,t,i,l=e.item,r=e.onItemClick,o=e.collapsi [...]
\ No newline at end of file
diff --git a/assets/js/514de2af.d980fd4f.js b/assets/js/1c89ab3b.d0ddd7c3.js
similarity index 98%
rename from assets/js/514de2af.d980fd4f.js
rename to assets/js/1c89ab3b.d0ddd7c3.js
index 76aec54..122b310 100644
--- a/assets/js/514de2af.d980fd4f.js
+++ b/assets/js/1c89ab3b.d0ddd7c3.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[22],{125:function(e,t,a){"use strict";a.d(t,"a",(function(){return h})),a.d(t,"b",(function(){return m}));var n=a(0),r=a.n(n);function s(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})) [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[12],{142:function(e,t,a){"use strict";a.d(t,"a",(function(){return h})),a.d(t,"b",(function(){return m}));var n=a(0),r=a.n(n);function s(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})) [...]
\ No newline at end of file
diff --git a/assets/js/2.c74b4887.js b/assets/js/2.e4d54c2b.js
similarity index 91%
rename from assets/js/2.c74b4887.js
rename to assets/js/2.e4d54c2b.js
index 732bc1d..7e64d69 100644
--- a/assets/js/2.c74b4887.js
+++ b/assets/js/2.e4d54c2b.js
@@ -1,2 +1,2 @@
-/*! For license information please see 2.c74b4887.js.LICENSE.txt */
-(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{129:function(e,t,a){"use strict";var n=a(0),r=a.n(n),c=a(127),o=a(63),l=a.n(o);var i=function(){return r.a.createElement("nav",{"aria-label":"Skip navigation links"},r.a.createElement("button",{type:"button",tabIndex:0,className:l.a.skipToContent,onKeyDown:function(e){if(13===e.keyCode){document.activeElement.blur();var t=document.querySelector("main:first-of-type");t&&t.scrollIntoView()}}},"Skip to main content"))},s=a(126),u=a(16 [...]
\ No newline at end of file
+/*! For license information please see 2.e4d54c2b.js.LICENSE.txt */
+(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{146:function(e,t,a){"use strict";var n=a(0),r=a.n(n),c=a(144),o=a(63),l=a.n(o);var i=function(){return r.a.createElement("nav",{"aria-label":"Skip navigation links"},r.a.createElement("button",{type:"button",tabIndex:0,className:l.a.skipToContent,onKeyDown:function(e){if(13===e.keyCode){document.activeElement.blur();var t=document.querySelector("main:first-of-type");t&&t.scrollIntoView()}}},"Skip to main content"))},s=a(143),u=a(17 [...]
\ No newline at end of file
diff --git a/zh/assets/js/2.c74b4887.js.LICENSE.txt b/assets/js/2.e4d54c2b.js.LICENSE.txt
similarity index 100%
rename from zh/assets/js/2.c74b4887.js.LICENSE.txt
rename to assets/js/2.e4d54c2b.js.LICENSE.txt
diff --git a/assets/js/25b7c3f2.1e053d90.js b/assets/js/25b7c3f2.b10b26ef.js
similarity index 93%
rename from assets/js/25b7c3f2.1e053d90.js
rename to assets/js/25b7c3f2.b10b26ef.js
index 1756f2d..1d9608a 100644
--- a/assets/js/25b7c3f2.1e053d90.js
+++ b/assets/js/25b7c3f2.b10b26ef.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[12],{139:function(e,t,r){"use strict";var n=r(0);function a(){return(a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function i(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t) [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[13],{156:function(e,t,r){"use strict";var n=r(0);function a(){return(a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function i(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t) [...]
\ No newline at end of file
diff --git a/assets/js/2d8fe9ee.09d7d664.js b/assets/js/2d8fe9ee.dd6ca160.js
similarity index 89%
rename from assets/js/2d8fe9ee.09d7d664.js
rename to assets/js/2d8fe9ee.dd6ca160.js
index 451ebda..80facc4 100644
--- a/assets/js/2d8fe9ee.09d7d664.js
+++ b/assets/js/2d8fe9ee.dd6ca160.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[13],{80:function(e){e.exports=JSON.parse('{"title":"Recent posts","items":[{"title":"Stable Product Delivery with Cypress","permalink":"/blog/2021/02/08/stable-product-delivery-with-cypress"},{"title":"Run Ingress APISIX on Amazon EKS","permalink":"/blog/2021/01/21/run-ingress-apisix-on-amazon-eks"},{"title":"\u521d\u63a2 Kubernetes Service APIs","permalink":"/blog/2020/12/18/a-first-look-at-kubernetes-service-api"},{"title":"Envoy and [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[14],{81:function(e){e.exports=JSON.parse('{"title":"Recent posts","items":[{"title":"Stable Product Delivery with Cypress","permalink":"/blog/2021/02/08/stable-product-delivery-with-cypress"},{"title":"Run Ingress APISIX on Amazon EKS","permalink":"/blog/2021/01/21/run-ingress-apisix-on-amazon-eks"},{"title":"\u521d\u63a2 Kubernetes Service APIs","permalink":"/blog/2020/12/18/a-first-look-at-kubernetes-service-api"},{"title":"Envoy and [...]
\ No newline at end of file
diff --git a/zh/assets/js/3.e5911a24.js b/assets/js/3.b8da59b5.js
similarity index 98%
rename from zh/assets/js/3.e5911a24.js
rename to assets/js/3.b8da59b5.js
index a39d05b..83c4219 100644
--- a/zh/assets/js/3.e5911a24.js
+++ b/assets/js/3.b8da59b5.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{134:function(e,t,r){"use strict";(function(e){var n=r(26),i=r(0),a=r.n(i),o=r(202),s=r.n(o),c=r(203),l=r(204),u=r(218),h=r(29),f=r.n(h);function d(){return(d=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}var p=function(e,t){for(var r=[e[0]],n=0,i=t.length;n<i;n+=1)r.push(t[n],e[n+1]);return r},g [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{151:function(e,t,r){"use strict";(function(e){var n=r(26),i=r(0),a=r.n(i),o=r(219),s=r.n(o),c=r(220),l=r(221),u=r(235),h=r(29),f=r.n(h);function d(){return(d=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}var p=function(e,t){for(var r=[e[0]],n=0,i=t.length;n<i;n+=1)r.push(t[n],e[n+1]);return r},g [...]
\ No newline at end of file
diff --git a/assets/js/30788500.5be7947f.js b/assets/js/30788500.ba236561.js
similarity index 73%
rename from assets/js/30788500.5be7947f.js
rename to assets/js/30788500.ba236561.js
index 15dad04..592f184 100644
--- a/assets/js/30788500.5be7947f.js
+++ b/assets/js/30788500.ba236561.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[14],{125:function(e,n,t){"use strict";t.d(n,"a",(function(){return s})),t.d(n,"b",(function(){return m}));var r=t(0),o=t.n(r);function c(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})) [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[15],{142:function(e,n,t){"use strict";t.d(n,"a",(function(){return f})),t.d(n,"b",(function(){return m}));var r=t(0),o=t.n(r);function c(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})) [...]
\ No newline at end of file
diff --git a/assets/js/33c9e5b3.fa2ee99d.js b/assets/js/33c9e5b3.fa2ee99d.js
new file mode 100644
index 0000000..7a0310c
--- /dev/null
+++ b/assets/js/33c9e5b3.fa2ee99d.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[16],{142:function(e,r,t){"use strict";t.d(r,"a",(function(){return u})),t.d(r,"b",(function(){return m}));var n=t(0),o=t.n(n);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function i(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})) [...]
\ No newline at end of file
diff --git a/assets/js/37e3b3ea.bccc6220.js b/assets/js/37e3b3ea.0060877a.js
similarity index 93%
rename from assets/js/37e3b3ea.bccc6220.js
rename to assets/js/37e3b3ea.0060877a.js
index 12a796c..9c642f5 100644
--- a/assets/js/37e3b3ea.bccc6220.js
+++ b/assets/js/37e3b3ea.0060877a.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[15],{125:function(e,t,r){"use strict";r.d(t,"a",(function(){return l})),r.d(t,"b",(function(){return m}));var n=r(0),o=r.n(n);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})) [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[17],{142:function(e,t,r){"use strict";r.d(t,"a",(function(){return l})),r.d(t,"b",(function(){return m}));var n=r(0),o=r.n(n);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})) [...]
\ No newline at end of file
diff --git a/assets/js/3dc9f306.05b19a54.js b/assets/js/3dc9f306.2fd73ec2.js
similarity index 51%
rename from assets/js/3dc9f306.05b19a54.js
rename to assets/js/3dc9f306.2fd73ec2.js
index b403f7c..9f98e7e 100644
--- a/assets/js/3dc9f306.05b19a54.js
+++ b/assets/js/3dc9f306.2fd73ec2.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[16],{125:function(e,t,n){"use strict";n.d(t,"a",(function(){return p})),n.d(t,"b",(function(){return b}));var r=n(0),o=n.n(r);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})) [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[18],{142:function(e,t,n){"use strict";n.d(t,"a",(function(){return p})),n.d(t,"b",(function(){return b}));var r=n(0),o=n.n(r);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})) [...]
\ No newline at end of file
diff --git a/assets/js/4.f867f6a9.js b/assets/js/4.c30f7bca.js
similarity index 93%
rename from assets/js/4.f867f6a9.js
rename to assets/js/4.c30f7bca.js
index 77aa070..a3e055f 100644
--- a/assets/js/4.f867f6a9.js
+++ b/assets/js/4.c30f7bca.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[4],{125:function(e,t,a){"use strict";a.d(t,"a",(function(){return m})),a.d(t,"b",(function(){return d}));var n=a(0),r=a.n(n);function o(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}))) [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[4],{142:function(e,t,a){"use strict";a.d(t,"a",(function(){return m})),a.d(t,"b",(function(){return d}));var n=a(0),r=a.n(n);function o(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}))) [...]
\ No newline at end of file
diff --git a/assets/js/41b4926b.b72ec77b.js b/assets/js/41b4926b.1ebfdec5.js
similarity index 97%
rename from assets/js/41b4926b.b72ec77b.js
rename to assets/js/41b4926b.1ebfdec5.js
index d7f9aa3..24fed89 100644
--- a/assets/js/41b4926b.b72ec77b.js
+++ b/assets/js/41b4926b.1ebfdec5.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[17],{125:function(e,t,a){"use strict";a.d(t,"a",(function(){return b})),a.d(t,"b",(function(){return m}));var r=a(0),i=a.n(r);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})) [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[19],{142:function(e,t,a){"use strict";a.d(t,"a",(function(){return b})),a.d(t,"b",(function(){return m}));var r=a(0),i=a.n(r);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})) [...]
\ No newline at end of file
diff --git a/assets/js/43aea6af.48c9c214.js b/assets/js/43aea6af.48c9c214.js
new file mode 100644
index 0000000..b7a2846
--- /dev/null
+++ b/assets/js/43aea6af.48c9c214.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[20],{142:function(e,t,n){"use strict";n.d(t,"a",(function(){return u})),n.d(t,"b",(function(){return d}));var r=n(0),a=n.n(r);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 s(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})) [...]
\ No newline at end of file
diff --git a/assets/js/47e0bf55.a6c19db6.js b/assets/js/47e0bf55.61a2fe95.js
similarity index 98%
rename from assets/js/47e0bf55.a6c19db6.js
rename to assets/js/47e0bf55.61a2fe95.js
index 7010ee8..9c3611f 100644
--- a/assets/js/47e0bf55.a6c19db6.js
+++ b/assets/js/47e0bf55.61a2fe95.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[18],{125:function(e,t,n){"use strict";n.d(t,"a",(function(){return p})),n.d(t,"b",(function(){return d}));var a=n(0),r=n.n(a);function s(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})) [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[21],{142:function(e,t,n){"use strict";n.d(t,"a",(function(){return p})),n.d(t,"b",(function(){return d}));var a=n(0),r=n.n(a);function s(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})) [...]
\ No newline at end of file
diff --git a/assets/js/47f8a22a.e97fe1a0.js b/assets/js/47f8a22a.09ed66e0.js
similarity index 95%
rename from assets/js/47f8a22a.e97fe1a0.js
rename to assets/js/47f8a22a.09ed66e0.js
index 335a316..64d0a87 100644
--- a/assets/js/47f8a22a.e97fe1a0.js
+++ b/assets/js/47f8a22a.09ed66e0.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[19,33],{137:function(e,t,n){"use strict";const r=(e,{target:t=document.body}={})=>{const n=document.createElement("textarea"),r=document.activeElement;n.value=e,n.setAttribute("readonly",""),n.style.contain="strict",n.style.position="absolute",n.style.left="-9999px",n.style.fontSize="12pt";const a=document.getSelection();let o=!1;a.rangeCount>0&&(o=a.getRangeAt(0)),t.append(n),n.select(),n.selectionStart=0,n.selectionEnd=e.length;let i [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[22,44],{154:function(e,t,n){"use strict";const r=(e,{target:t=document.body}={})=>{const n=document.createElement("textarea"),r=document.activeElement;n.value=e,n.setAttribute("readonly",""),n.style.contain="strict",n.style.position="absolute",n.style.left="-9999px",n.style.fontSize="12pt";const a=document.getSelection();let o=!1;a.rangeCount>0&&(o=a.getRangeAt(0)),t.append(n),n.select(),n.selectionStart=0,n.selectionEnd=e.length;let i [...]
\ No newline at end of file
diff --git a/assets/js/4e55a385.72fe71d9.js b/assets/js/4e55a385.72fe71d9.js
new file mode 100644
index 0000000..5d49a1c
--- /dev/null
+++ b/assets/js/4e55a385.72fe71d9.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[23],{142:function(e,t,n){"use strict";n.d(t,"a",(function(){return b})),n.d(t,"b",(function(){return h}));var a=n(0),r=n.n(a);function s(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})) [...]
\ No newline at end of file
diff --git a/assets/js/4eed9ed2.f6cbdbbf.js b/assets/js/4eed9ed2.604b9b33.js
similarity index 96%
rename from assets/js/4eed9ed2.f6cbdbbf.js
rename to assets/js/4eed9ed2.604b9b33.js
index a4e7d5e..aae5b8a 100644
--- a/assets/js/4eed9ed2.f6cbdbbf.js
+++ b/assets/js/4eed9ed2.604b9b33.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[20],{125:function(e,t,r){"use strict";r.d(t,"a",(function(){return u})),r.d(t,"b",(function(){return m}));var a=r(0),n=r.n(a);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 c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})) [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[24],{142:function(e,t,r){"use strict";r.d(t,"a",(function(){return u})),r.d(t,"b",(function(){return m}));var a=r(0),n=r.n(a);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 c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})) [...]
\ No newline at end of file
diff --git a/assets/js/50facf8e.5e31a885.js b/assets/js/50facf8e.5be62c13.js
similarity index 56%
rename from assets/js/50facf8e.5e31a885.js
rename to assets/js/50facf8e.5be62c13.js
index e6f52bd..cd82b5e 100644
--- a/assets/js/50facf8e.5e31a885.js
+++ b/assets/js/50facf8e.5be62c13.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[21],{125:function(e,t,r){"use strict";r.d(t,"a",(function(){return p})),r.d(t,"b",(function(){return d}));var n=r(0),i=r.n(n);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})) [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[25],{142:function(e,t,r){"use strict";r.d(t,"a",(function(){return p})),r.d(t,"b",(function(){return d}));var n=r(0),i=r.n(n);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})) [...]
\ No newline at end of file
diff --git a/assets/js/1c89ab3b.d668bc40.js b/assets/js/514de2af.4139792e.js
similarity index 98%
rename from assets/js/1c89ab3b.d668bc40.js
rename to assets/js/514de2af.4139792e.js
index f7f7367..98c22d0 100644
--- a/assets/js/1c89ab3b.d668bc40.js
+++ b/assets/js/514de2af.4139792e.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[11],{125:function(e,t,a){"use strict";a.d(t,"a",(function(){return h})),a.d(t,"b",(function(){return m}));var n=a(0),r=a.n(n);function s(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})) [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[26],{142:function(e,t,a){"use strict";a.d(t,"a",(function(){return h})),a.d(t,"b",(function(){return m}));var n=a(0),r=a.n(n);function s(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})) [...]
\ No newline at end of file
diff --git a/assets/js/574dc000.24d7bcfe.js b/assets/js/574dc000.3d3106e8.js
similarity index 73%
rename from assets/js/574dc000.24d7bcfe.js
rename to assets/js/574dc000.3d3106e8.js
index 8925cfa..3e47378 100644
--- a/assets/js/574dc000.24d7bcfe.js
+++ b/assets/js/574dc000.3d3106e8.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[23],{90:function(e){e.exports=JSON.parse('{"permalink":"/events","page":1,"postsPerPage":10,"totalPages":1,"totalCount":5,"previousPage":null,"nextPage":null,"blogDescription":"Blog","blogTitle":"Blog"}')}}]);
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[27],{94:function(e){e.exports=JSON.parse('{"permalink":"/events","page":1,"postsPerPage":10,"totalPages":1,"totalCount":5,"previousPage":null,"nextPage":null,"blogDescription":"Blog","blogTitle":"Blog"}')}}]);
\ No newline at end of file
diff --git a/assets/js/5971cb1d.4c69067e.js b/assets/js/5971cb1d.4c69067e.js
new file mode 100644
index 0000000..9f2a78d
--- /dev/null
+++ b/assets/js/5971cb1d.4c69067e.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[28],{142:function(e,t,n){"use strict";n.d(t,"a",(function(){return b})),n.d(t,"b",(function(){return d}));var r=n(0),i=n.n(r);function s(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})) [...]
\ No newline at end of file
diff --git a/assets/js/a4a2cefa.4d2fd8e2.js b/assets/js/5bb67ffc.29973ce6.js
similarity index 99%
rename from assets/js/a4a2cefa.4d2fd8e2.js
rename to assets/js/5bb67ffc.29973ce6.js
index b089b16..de92cc4 100644
--- a/assets/js/a4a2cefa.4d2fd8e2.js
+++ b/assets/js/5bb67ffc.29973ce6.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[34],{125:function(e,t,r){"use strict";r.d(t,"a",(function(){return u})),r.d(t,"b",(function(){return m}));var a=r(0),n=r.n(a);function b(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})) [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[29],{142:function(e,t,r){"use strict";r.d(t,"a",(function(){return u})),r.d(t,"b",(function(){return m}));var a=r(0),n=r.n(a);function b(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})) [...]
\ No newline at end of file
diff --git a/assets/js/5bb67ffc.ef54c73b.js b/assets/js/5bb67ffc.ef54c73b.js
deleted file mode 100644
index 6feaf2c..0000000
--- a/assets/js/5bb67ffc.ef54c73b.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[24],{125:function(e,t,r){"use strict";r.d(t,"a",(function(){return u})),r.d(t,"b",(function(){return m}));var a=r(0),n=r.n(a);function b(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})) [...]
\ No newline at end of file
diff --git a/assets/js/64288df6.ad151f74.js b/assets/js/64288df6.ad151f74.js
new file mode 100644
index 0000000..7605490
--- /dev/null
+++ b/assets/js/64288df6.ad151f74.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[30],{142:function(e,t,n){"use strict";n.d(t,"a",(function(){return u})),n.d(t,"b",(function(){return d}));var r=n(0),a=n.n(r);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 s(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})) [...]
\ No newline at end of file
diff --git a/assets/js/66fbb9c2.049ddc86.js b/assets/js/66fbb9c2.8a5f87c5.js
similarity index 63%
rename from assets/js/66fbb9c2.049ddc86.js
rename to assets/js/66fbb9c2.8a5f87c5.js
index 753bb11..e9547b3 100644
--- a/assets/js/66fbb9c2.049ddc86.js
+++ b/assets/js/66fbb9c2.8a5f87c5.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[25],{125:function(e,t,r){"use strict";r.d(t,"a",(function(){return l})),r.d(t,"b",(function(){return f}));var n=r(0),a=r.n(n);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})) [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[31],{142:function(e,t,r){"use strict";r.d(t,"a",(function(){return l})),r.d(t,"b",(function(){return f}));var n=r(0),a=r.n(n);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})) [...]
\ No newline at end of file
diff --git a/assets/js/6967878f.e1ef4f0f.js b/assets/js/6967878f.e1ef4f0f.js
new file mode 100644
index 0000000..5537dcc
--- /dev/null
+++ b/assets/js/6967878f.e1ef4f0f.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[32],{142:function(e,t,n){"use strict";n.d(t,"a",(function(){return u})),n.d(t,"b",(function(){return d}));var a=n(0),r=n.n(a);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 s(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})) [...]
\ No newline at end of file
diff --git a/assets/js/6f365930.72cde7c4.js b/assets/js/6f365930.72cde7c4.js
new file mode 100644
index 0000000..9192bc2
--- /dev/null
+++ b/assets/js/6f365930.72cde7c4.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[33],{100:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return s})),n.d(t,"metadata",(function(){return o})),n.d(t,"toc",(function(){return c})),n.d(t,"default",(function(){return p}));var r=n(3),a=n(7),i=(n(0),n(142)),s={},o={unversionedId:"deployments/k3s-rke",id:"deployments/k3s-rke",isDocsHomePage:!1,title:"k3s-rke",description:"\x3c!--",source:"@site/docs/apisix-ingress-controller/deployments/k3s-rke.md",slug: [...]
\ No newline at end of file
diff --git a/assets/js/6f9b6084.0b37295d.js b/assets/js/6f9b6084.0b37295d.js
new file mode 100644
index 0000000..1aafac2
--- /dev/null
+++ b/assets/js/6f9b6084.0b37295d.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[34],{101:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return i})),n.d(t,"metadata",(function(){return a})),n.d(t,"toc",(function(){return u})),n.d(t,"default",(function(){return l}));var r=n(3),o=n(7),c=(n(0),n(142)),i={id:"introduction",title:"Introduction"},a={unversionedId:"introduction",id:"introduction",isDocsHomePage:!1,title:"Introduction",description:"Coming Soon",source:"@site/docs/apisix-dashboard/intro [...]
\ No newline at end of file
diff --git a/assets/js/6f9b6084.6cf4e9dd.js b/assets/js/6f9b6084.6cf4e9dd.js
deleted file mode 100644
index 0fdc423..0000000
--- a/assets/js/6f9b6084.6cf4e9dd.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[26],{125:function(e,t,n){"use strict";n.d(t,"a",(function(){return f})),n.d(t,"b",(function(){return b}));var r=n(0),o=n.n(r);function c(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})) [...]
\ No newline at end of file
diff --git a/zh/assets/js/54.b7cce01d.js b/assets/js/71.349eb674.js
similarity index 96%
rename from zh/assets/js/54.b7cce01d.js
rename to assets/js/71.349eb674.js
index ebe4aa6..29f3f7e 100644
--- a/zh/assets/js/54.b7cce01d.js
+++ b/assets/js/71.349eb674.js
@@ -1,2 +1,2 @@
-/*! For license information please see 54.b7cce01d.js.LICENSE.txt */
-(window.webpackJsonp=window.webpackJsonp||[]).push([[54],{114:function(e,t,n){"use strict";n.r(t);var r=n(0),i=n.n(r),a=n(217),s=n.n(a),c=n(206),u=n.n(c),o=n(127),f=n(24),h=n(128),l=n(11),m=n(126),d=n(17),v=n(130),p=n(163),g=n(129),y=n(115),R=n.n(y);var F=function(e){var t=e.docsSearchVersionsHelpers,n=Object.entries(t.allDocsData).filter((function(e){return e[1].versions.length>1}));return i.a.createElement("div",{className:Object(o.a)("col","col--3","padding-left--none",R.a.searchVersi [...]
\ No newline at end of file
+/*! For license information please see 71.349eb674.js.LICENSE.txt */
+(window.webpackJsonp=window.webpackJsonp||[]).push([[71],{130:function(e,t,n){"use strict";n.r(t);var r=n(0),i=n.n(r),a=n(234),s=n.n(a),c=n(223),u=n.n(c),o=n(144),f=n(24),h=n(145),l=n(11),m=n(143),d=n(17),v=n(147),p=n(180),g=n(146),y=n(131),R=n.n(y);var F=function(e){var t=e.docsSearchVersionsHelpers,n=Object.entries(t.allDocsData).filter((function(e){return e[1].versions.length>1}));return i.a.createElement("div",{className:Object(o.a)("col","col--3","padding-left--none",R.a.searchVersi [...]
\ No newline at end of file
diff --git a/zh/assets/js/54.b7cce01d.js.LICENSE.txt b/assets/js/71.349eb674.js.LICENSE.txt
similarity index 100%
rename from zh/assets/js/54.b7cce01d.js.LICENSE.txt
rename to assets/js/71.349eb674.js.LICENSE.txt
diff --git a/assets/js/55.e6e1e1c1.js b/assets/js/72.359b3048.js
similarity index 93%
rename from assets/js/55.e6e1e1c1.js
rename to assets/js/72.359b3048.js
index d8ab90c..085a044 100644
--- a/assets/js/55.e6e1e1c1.js
+++ b/assets/js/72.359b3048.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[55,58],{125:function(e,t,n){"use strict";n.d(t,"a",(function(){return p})),n.d(t,"b",(function(){return f}));var r=n(0),a=n.n(r);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 [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[72,75],{142:function(e,t,n){"use strict";n.d(t,"a",(function(){return p})),n.d(t,"b",(function(){return f}));var r=n(0),a=n.n(r);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 [...]
\ No newline at end of file
diff --git a/zh/assets/js/56.56a582f4.js b/assets/js/73.149af841.js
similarity index 99%
rename from zh/assets/js/56.56a582f4.js
rename to assets/js/73.149af841.js
index fbd33d3..5b13c47 100644
--- a/zh/assets/js/56.56a582f4.js
+++ b/assets/js/73.149af841.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[56],{225:function(e,t,r){"use strict";function n(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,n)}return r}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,r){var a=t.initialState;return{getState:func [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[73],{242:function(e,t,r){"use strict";function n(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,n)}return r}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,r){var a=t.initialState;return{getState:func [...]
\ No newline at end of file
diff --git a/assets/js/57.ff9147f8.js b/assets/js/74.6d6bc613.js
similarity index 62%
rename from assets/js/57.ff9147f8.js
rename to assets/js/74.6d6bc613.js
index e9d92f7..9e138f6 100644
--- a/assets/js/57.ff9147f8.js
+++ b/assets/js/74.6d6bc613.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[57],{224:function(n,i,o){"use strict";o.r(i);var r=o(62);for(var t in r)["default"].indexOf(t)<0&&function(n){o.d(i,n,(function(){return r[n]}))}(t)}}]);
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[74],{241:function(n,i,o){"use strict";o.r(i);var r=o(62);for(var t in r)["default"].indexOf(t)<0&&function(n){o.d(i,n,(function(){return r[n]}))}(t)}}]);
\ No newline at end of file
diff --git a/assets/js/e02da2c5.d84d16c5.js b/assets/js/749ed826.1e47188d.js
similarity index 98%
copy from assets/js/e02da2c5.d84d16c5.js
copy to assets/js/749ed826.1e47188d.js
index f2624c5..7fad76d 100644
--- a/assets/js/e02da2c5.d84d16c5.js
+++ b/assets/js/749ed826.1e47188d.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[47],{112:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return o})),n.d(t,"metadata",(function(){return l})),n.d(t,"toc",(function(){return c})),n.d(t,"default",(function(){return s}));var a=n(3),r=n(7),i=(n(0),n(125)),o={title:"Envoy and Apache APISIX: Another way to implement the Envoy filter",author:"nic-chen",authorURL:"https://github.com/nic-chen",authorImageURL:"https://avatars0.githubusercontent.com/u/330006 [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[35],{102:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return o})),n.d(t,"metadata",(function(){return l})),n.d(t,"toc",(function(){return c})),n.d(t,"default",(function(){return s}));var a=n(3),r=n(7),i=(n(0),n(142)),o={title:"Envoy and Apache APISIX: Another way to implement the Envoy filter",author:"nic-chen",authorURL:"https://github.com/nic-chen",authorImageURL:"https://avatars0.githubusercontent.com/u/330006 [...]
\ No newline at end of file
diff --git a/assets/js/749ed826.dbea5f11.js b/assets/js/749ed826.dbea5f11.js
deleted file mode 100644
index 4f406b1..0000000
--- a/assets/js/749ed826.dbea5f11.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[27],{125:function(e,t,n){"use strict";n.d(t,"a",(function(){return b})),n.d(t,"b",(function(){return m}));var a=n(0),r=n.n(a);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})) [...]
\ No newline at end of file
diff --git a/assets/js/58.79cc1bdb.js b/assets/js/75.f01d5ce7.js
similarity index 76%
rename from assets/js/58.79cc1bdb.js
rename to assets/js/75.f01d5ce7.js
index 87abaca..28e5bde 100644
--- a/assets/js/58.79cc1bdb.js
+++ b/assets/js/75.f01d5ce7.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[58],{157:function(e,t,a){"use strict";a.r(t);var n=a(0),o=a.n(n),l=a(129);t.default=function(){return o.a.createElement(l.a,{title:"Page Not Found"},o.a.createElement("main",{className:"container margin-vert--xl"},o.a.createElement("div",{className:"row"},o.a.createElement("div",{className:"col col--6 col--offset-3"},o.a.createElement("h1",{className:"hero__title"},"Page Not Found"),o.a.createElement("p",null,"We could not find what yo [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[75],{174:function(e,t,a){"use strict";a.r(t);var n=a(0),o=a.n(n),l=a(146);t.default=function(){return o.a.createElement(l.a,{title:"Page Not Found"},o.a.createElement("main",{className:"container margin-vert--xl"},o.a.createElement("div",{className:"row"},o.a.createElement("div",{className:"col col--6 col--offset-3"},o.a.createElement("h1",{className:"hero__title"},"Page Not Found"),o.a.createElement("p",null,"We could not find what yo [...]
\ No newline at end of file
diff --git a/assets/js/59.654079dd.js b/assets/js/76.0f6d1c85.js
similarity index 98%
rename from assets/js/59.654079dd.js
rename to assets/js/76.0f6d1c85.js
index c83c172..6d2c252 100644
--- a/assets/js/59.654079dd.js
+++ b/assets/js/76.0f6d1c85.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[59],{226:function(t,e,n){"use strict";var s=n(3),a=n(7),i=n(4);n(1);function o(t,e){return t.replace(new RegExp("(^|\\s)"+e+"(?:\\s|$)","g"),"$1").replace(/\s+/g," ").replace(/^\s*|\s*$/g,"")}var r=n(0),p=n.n(r),l=n(25),u=n.n(l),c=!1,d=p.a.createContext(null),E="unmounted",f="exited",h="entering",x="entered",m="exiting",v=function(t){function e(e,n){var s;s=t.call(this,e,n)||this;var a,i=n&&!n.isMounting?e.enter:e.appear;return s.appea [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[76],{243:function(t,e,n){"use strict";var s=n(3),a=n(7),i=n(4);n(1);function o(t,e){return t.replace(new RegExp("(^|\\s)"+e+"(?:\\s|$)","g"),"$1").replace(/\s+/g," ").replace(/^\s*|\s*$/g,"")}var r=n(0),p=n.n(r),l=n(25),u=n.n(l),c=!1,d=p.a.createContext(null),E="unmounted",f="exited",h="entering",x="entered",m="exiting",v=function(t){function e(e,n){var s;s=t.call(this,e,n)||this;var a,i=n&&!n.isMounting?e.enter:e.appear;return s.appea [...]
\ No newline at end of file
diff --git a/assets/js/7af3052c.8522948c.js b/assets/js/7af3052c.8522948c.js
new file mode 100644
index 0000000..8a2ef9f
--- /dev/null
+++ b/assets/js/7af3052c.8522948c.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[36],{103:function(e,a,t){"use strict";t.r(a),t.d(a,"frontMatter",(function(){return s})),t.d(a,"metadata",(function(){return o})),t.d(a,"toc",(function(){return l})),t.d(a,"default",(function(){return p}));var n=t(3),i=t(7),r=(t(0),t(142)),s={id:"release-guide",title:"Release Guide"},o={unversionedId:"release-guide",id:"release-guide",isDocsHomePage:!1,title:"Release Guide",description:"Release Flow",source:"@site/docs/general/release- [...]
\ No newline at end of file
diff --git a/assets/js/7af3052c.8f843f82.js b/assets/js/7af3052c.8f843f82.js
deleted file mode 100644
index 9a094a7..0000000
--- a/assets/js/7af3052c.8f843f82.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[28],{125:function(e,a,t){"use strict";t.d(a,"a",(function(){return d})),t.d(a,"b",(function(){return u}));var n=t(0),i=t.n(n);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 s(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})) [...]
\ No newline at end of file
diff --git a/assets/js/7e37206e.7992680e.js b/assets/js/7e37206e.7992680e.js
deleted file mode 100644
index 9a5568e..0000000
--- a/assets/js/7e37206e.7992680e.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[29],{150:function(e,t,a){"use strict";var n=a(0);function r(){return(r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e}).apply(this,arguments)}function i(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},i=Object.keys(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t) [...]
\ No newline at end of file
diff --git a/assets/js/7e37206e.7f7bd448.js b/assets/js/7e37206e.7f7bd448.js
new file mode 100644
index 0000000..4606f39
--- /dev/null
+++ b/assets/js/7e37206e.7f7bd448.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[37],{104:function(e,t,a){"use strict";a.r(t);var n=a(0),r=a.n(n),i=a(151),l=a(146),c=a(167),o=i.a.h1.withConfig({displayName:"help__PageTitle",componentId:"sc-1evwiii-0"})(["margin-top:2rem;font-size:3rem;font-weight:800;"]),s=i.a.div.withConfig({displayName:"help__PageSubtitle",componentId:"sc-1evwiii-1"})(["margin-bottom:3rem;"]),m=i.a.div.withConfig({displayName:"help__Page",componentId:"sc-1evwiii-2"})(["max-width:var(--ifm-contain [...]
\ No newline at end of file
diff --git a/zh/assets/js/859cc09f.feab14f8.js b/assets/js/859cc09f.073c77b1.js
similarity index 96%
rename from zh/assets/js/859cc09f.feab14f8.js
rename to assets/js/859cc09f.073c77b1.js
index eea31bd..425337a 100644
--- a/zh/assets/js/859cc09f.feab14f8.js
+++ b/assets/js/859cc09f.073c77b1.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[31],{119:function(e,t,r){"use strict";r.r(t);var n=r(0),a=r.n(n),o=r(134),i=r(129),l=r(17),c=r(151);function p(){return(p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function m(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++ [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[38],{136:function(e,t,r){"use strict";r.r(t);var n=r(0),a=r.n(n),o=r(151),i=r(146),l=r(17),c=r(168);function p(){return(p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function m(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++ [...]
\ No newline at end of file
diff --git a/assets/js/8e27d69a.6af737c6.js b/assets/js/8e27d69a.6af737c6.js
new file mode 100644
index 0000000..e440c49
--- /dev/null
+++ b/assets/js/8e27d69a.6af737c6.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[39],{105:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return o})),n.d(t,"metadata",(function(){return l})),n.d(t,"toc",(function(){return c})),n.d(t,"default",(function(){return u}));var r=n(3),i=n(7),a=(n(0),n(142)),o={},l={unversionedId:"development",id:"development",isDocsHomePage:!1,title:"development",description:"\x3c!--",source:"@site/docs/apisix-ingress-controller/development.md",slug:"/development",perma [...]
\ No newline at end of file
diff --git a/assets/js/8e784bf3.1b962dc5.js b/assets/js/8e784bf3.1b962dc5.js
new file mode 100644
index 0000000..bc5ebc0
--- /dev/null
+++ b/assets/js/8e784bf3.1b962dc5.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[40],{106:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return i})),n.d(t,"metadata",(function(){return c})),n.d(t,"toc",(function(){return l})),n.d(t,"default",(function(){return b}));var o=n(3),r=n(7),a=(n(0),n(142)),i={id:"committer-guide",title:"Committer Guide"},c={unversionedId:"committer-guide",id:"committer-guide",isDocsHomePage:!1,title:"Committer Guide",description:"What can I contribute?",source:"@site/d [...]
\ No newline at end of file
diff --git a/assets/js/8e784bf3.e49a8071.js b/assets/js/8e784bf3.e49a8071.js
deleted file mode 100644
index a7fbbd9..0000000
--- a/assets/js/8e784bf3.e49a8071.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[31],{125:function(e,t,n){"use strict";n.d(t,"a",(function(){return m})),n.d(t,"b",(function(){return d}));var o=n(0),r=n.n(o);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})) [...]
\ No newline at end of file
diff --git a/assets/js/93013804.abd54dc1.js b/assets/js/93013804.abd54dc1.js
new file mode 100644
index 0000000..a58e436
--- /dev/null
+++ b/assets/js/93013804.abd54dc1.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[41],{107:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return s})),n.d(t,"metadata",(function(){return o})),n.d(t,"toc",(function(){return l})),n.d(t,"default",(function(){return p}));var r=n(3),i=n(7),a=(n(0),n(142)),s={},o={unversionedId:"deployments/minikube",id:"deployments/minikube",isDocsHomePage:!1,title:"minikube",description:"\x3c!--",source:"@site/docs/apisix-ingress-controller/deployments/minikube.md",s [...]
\ No newline at end of file
diff --git a/assets/js/935f2afb.04a89e4c.js b/assets/js/935f2afb.04a89e4c.js
new file mode 100644
index 0000000..a9dc73d
--- /dev/null
+++ b/assets/js/935f2afb.04a89e4c.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[42],{108:function(e){e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","isLast":true,"docsSidebars":{"docs":[{"collapsed":true,"type":"category","label":"General","items":[{"type":"link","label":"Security","href":"/docs/general/security"},{"type":"link","label":"Subscribe Guide","href":"/docs/general/subscribe-guide"},{"type":"link","label":"Contributor Guide","href":"/docs/general/contributor-guide"},{"typ [...]
\ No newline at end of file
diff --git a/assets/js/935f2afb.66e0e7d2.js b/assets/js/935f2afb.66e0e7d2.js
deleted file mode 100644
index f06b332..0000000
--- a/assets/js/935f2afb.66e0e7d2.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[32],{98:function(e){e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","isLast":true,"docsSidebars":{"docs":[{"collapsed":true,"type":"category","label":"General","items":[{"type":"link","label":"Security","href":"/docs/general/security"},{"type":"link","label":"Subscribe Guide","href":"/docs/general/subscribe-guide"},{"type":"link","label":"Contributor Guide","href":"/docs/general/contributor-guide"},{"type [...]
\ No newline at end of file
diff --git a/assets/js/941c758c.8297f47d.js b/assets/js/941c758c.8297f47d.js
new file mode 100644
index 0000000..53b9d41
--- /dev/null
+++ b/assets/js/941c758c.8297f47d.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[43],{109:function(e,t,r){"use strict";r.r(t),r.d(t,"frontMatter",(function(){return c})),r.d(t,"metadata",(function(){return o})),r.d(t,"toc",(function(){return p})),r.d(t,"default",(function(){return s}));var n=r(3),a=r(7),i=(r(0),r(142)),c={},o={unversionedId:"samples/proxy-the-httpbin-service",id:"samples/proxy-the-httpbin-service",isDocsHomePage:!1,title:"proxy-the-httpbin-service",description:"\x3c!--",source:"@site/docs/apisix-in [...]
\ No newline at end of file
diff --git a/assets/js/98c69322.3d9a7897.js b/assets/js/98c69322.997e699b.js
similarity index 96%
rename from assets/js/98c69322.3d9a7897.js
rename to assets/js/98c69322.997e699b.js
index 988f021..7be2a78 100644
--- a/assets/js/98c69322.3d9a7897.js
+++ b/assets/js/98c69322.997e699b.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[33],{139:function(e,t,r){"use strict";var n=r(0);function a(){return(a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function i(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t) [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[44],{156:function(e,t,r){"use strict";var n=r(0);function a(){return(a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function i(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t) [...]
\ No newline at end of file
diff --git a/assets/js/9c26c05d.2ea60543.js b/assets/js/9c26c05d.2ea60543.js
new file mode 100644
index 0000000..c1f3372
--- /dev/null
+++ b/assets/js/9c26c05d.2ea60543.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[45],{110:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return i})),n.d(t,"metadata",(function(){return c})),n.d(t,"toc",(function(){return s})),n.d(t,"default",(function(){return l}));var r=n(3),o=n(7),a=(n(0),n(142)),i={},c={unversionedId:"contribute",id:"contribute",isDocsHomePage:!1,title:"contribute",description:"\x3c!--",source:"@site/docs/apisix-ingress-controller/contribute.md",slug:"/contribute",permalink: [...]
\ No newline at end of file
diff --git a/assets/js/9dc47d34.65945a6e.js b/assets/js/9dc47d34.65945a6e.js
new file mode 100644
index 0000000..d474a9b
--- /dev/null
+++ b/assets/js/9dc47d34.65945a6e.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[46],{111:function(e,t,r){"use strict";r.r(t),r.d(t,"frontMatter",(function(){return a})),r.d(t,"metadata",(function(){return c})),r.d(t,"toc",(function(){return l})),r.d(t,"default",(function(){return p}));var n=r(3),i=r(7),o=(r(0),r(142)),a={},c={unversionedId:"FAQ",id:"FAQ",isDocsHomePage:!1,title:"FAQ",description:"\x3c!--",source:"@site/docs/apisix-ingress-controller/FAQ.md",slug:"/FAQ",permalink:"/docs/ingress-controller/FAQ",vers [...]
\ No newline at end of file
diff --git a/assets/js/a4a2cefa.10438715.js b/assets/js/a4a2cefa.10438715.js
new file mode 100644
index 0000000..cc8704a
--- /dev/null
+++ b/assets/js/a4a2cefa.10438715.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[47],{112:function(e,t,r){"use strict";r.r(t),r.d(t,"frontMatter",(function(){return l})),r.d(t,"metadata",(function(){return i})),r.d(t,"toc",(function(){return s})),r.d(t,"default",(function(){return p}));var a=r(3),n=r(7),b=(r(0),r(142)),l={title:"\u521d\u63a2 Kubernetes Service APIs",author:"Wei Jin",authorURL:"https://github.com/gxthrj",authorImageURL:"https://avatars2.githubusercontent.com/u/4413028?s=400&u=e140a6d2bf19c426da6498b [...]
\ No newline at end of file
diff --git a/assets/js/a6641250.4759241f.js b/assets/js/a6641250.0ca65b36.js
similarity index 94%
rename from assets/js/a6641250.4759241f.js
rename to assets/js/a6641250.0ca65b36.js
index 71c9c19..955be0f 100644
--- a/assets/js/a6641250.4759241f.js
+++ b/assets/js/a6641250.0ca65b36.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[35],{100:function(e,t,r){"use strict";r.r(t),r.d(t,"frontMatter",(function(){return c})),r.d(t,"metadata",(function(){return i})),r.d(t,"toc",(function(){return u})),r.d(t,"default",(function(){return l}));var n=r(3),o=r(7),a=(r(0),r(125)),c={title:"New website for Apache APISIX",author:"juzhiyuan",authorURL:"https://github.com/juzhiyuan",authorImageURL:"https://avatars3.githubusercontent.com/u/2106987?s=460&u=f92e880ce95fe1fee18becd0a [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[48],{113:function(e,t,r){"use strict";r.r(t),r.d(t,"frontMatter",(function(){return c})),r.d(t,"metadata",(function(){return i})),r.d(t,"toc",(function(){return u})),r.d(t,"default",(function(){return l}));var n=r(3),o=r(7),a=(r(0),r(142)),c={title:"New website for Apache APISIX",author:"juzhiyuan",authorURL:"https://github.com/juzhiyuan",authorImageURL:"https://avatars3.githubusercontent.com/u/2106987?s=460&u=f92e880ce95fe1fee18becd0a [...]
\ No newline at end of file
diff --git a/assets/js/a6aa9e1f.81639056.js b/assets/js/a6aa9e1f.55e4f1e9.js
similarity index 85%
rename from assets/js/a6aa9e1f.81639056.js
rename to assets/js/a6aa9e1f.55e4f1e9.js
index 1f14621..c2a0d85 100644
--- a/assets/js/a6aa9e1f.81639056.js
+++ b/assets/js/a6aa9e1f.55e4f1e9.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[36],{122:function(a,e,t){"use strict";t.r(e);var n=t(0),i=t.n(n),l=t(17),r=t(129),c=t(174),m=t(128);var s=function(a){var e=a.metadata,t=e.previousPage,n=e.nextPage;return i.a.createElement("nav",{className:"pagination-nav","aria-label":"Blog list page navigation"},i.a.createElement("div",{className:"pagination-nav__item"},t&&i.a.createElement(m.a,{className:"pagination-nav__link",to:t},i.a.createElement("div",{className:"pagination-na [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[49],{139:function(a,e,t){"use strict";t.r(e);var n=t(0),i=t.n(n),l=t(17),r=t(146),c=t(191),m=t(145);var s=function(a){var e=a.metadata,t=e.previousPage,n=e.nextPage;return i.a.createElement("nav",{className:"pagination-nav","aria-label":"Blog list page navigation"},i.a.createElement("div",{className:"pagination-nav__item"},t&&i.a.createElement(m.a,{className:"pagination-nav__link",to:t},i.a.createElement("div",{className:"pagination-na [...]
\ No newline at end of file
diff --git a/assets/js/adbb350b.50fd5a49.js b/assets/js/adbb350b.50fd5a49.js
deleted file mode 100644
index 580f3ae..0000000
--- a/assets/js/adbb350b.50fd5a49.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[37],{103:function(e,t,r){"use strict";r.r(t),r.d(t,"frontMatter",(function(){return i})),r.d(t,"metadata",(function(){return c})),r.d(t,"toc",(function(){return l})),r.d(t,"default",(function(){return b}));var n=r(3),o=r(7),a=(r(0),r(125)),i={id:"contributor-guide",title:"Contributor Guide"},c={unversionedId:"contributor-guide",id:"contributor-guide",isDocsHomePage:!1,title:"Contributor Guide",description:"Please fee free to report bug [...]
\ No newline at end of file
diff --git a/assets/js/adbb350b.ed55eb96.js b/assets/js/adbb350b.ed55eb96.js
new file mode 100644
index 0000000..a9cf678
--- /dev/null
+++ b/assets/js/adbb350b.ed55eb96.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[50],{116:function(e,t,r){"use strict";r.r(t),r.d(t,"frontMatter",(function(){return i})),r.d(t,"metadata",(function(){return c})),r.d(t,"toc",(function(){return l})),r.d(t,"default",(function(){return b}));var n=r(3),o=r(7),a=(r(0),r(142)),i={id:"contributor-guide",title:"Contributor Guide"},c={unversionedId:"contributor-guide",id:"contributor-guide",isDocsHomePage:!1,title:"Contributor Guide",description:"Please fee free to report bug [...]
\ No newline at end of file
diff --git a/assets/js/b123c67b.d341bb40.js b/assets/js/b123c67b.d341bb40.js
new file mode 100644
index 0000000..d8bd018
--- /dev/null
+++ b/assets/js/b123c67b.d341bb40.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[51],{117:function(e,n,t){"use strict";t.r(n),t.d(n,"frontMatter",(function(){return o})),t.d(n,"metadata",(function(){return s})),t.d(n,"toc",(function(){return c})),t.d(n,"default",(function(){return l}));var r=t(3),a=t(7),i=(t(0),t(142)),o={},s={unversionedId:"usage",id:"usage",isDocsHomePage:!1,title:"usage",description:"\x3c!--",source:"@site/docs/apisix-ingress-controller/usage.md",slug:"/usage",permalink:"/docs/ingress-controller [...]
\ No newline at end of file
diff --git a/assets/js/b2b675dd.f78e88c7.js b/assets/js/b2b675dd.03e0dad8.js
similarity index 73%
rename from assets/js/b2b675dd.f78e88c7.js
rename to assets/js/b2b675dd.03e0dad8.js
index 0011a73..86ca98c 100644
--- a/assets/js/b2b675dd.f78e88c7.js
+++ b/assets/js/b2b675dd.03e0dad8.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[38],{104:function(o){o.exports=JSON.parse('{"permalink":"/blog","page":1,"postsPerPage":10,"totalPages":1,"totalCount":5,"previousPage":null,"nextPage":null,"blogDescription":"Blog","blogTitle":"Blog"}')}}]);
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[52],{118:function(o){o.exports=JSON.parse('{"permalink":"/blog","page":1,"postsPerPage":10,"totalPages":1,"totalCount":5,"previousPage":null,"nextPage":null,"blogDescription":"Blog","blogTitle":"Blog"}')}}]);
\ No newline at end of file
diff --git a/assets/js/b4a67526.4e6383ea.js b/assets/js/b4a67526.4e6383ea.js
new file mode 100644
index 0000000..390b5a2
--- /dev/null
+++ b/assets/js/b4a67526.4e6383ea.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[53],{119:function(s){s.exports=JSON.parse('{"pluginId":"docs-apisix-ingress-controller","version":"current","label":"Next","isLast":true,"docsSidebars":{"docs":[]},"permalinkToSidebar":{}}')}}]);
\ No newline at end of file
diff --git a/assets/js/b4a67526.6f6704ad.js b/assets/js/b4a67526.6f6704ad.js
deleted file mode 100644
index 0faaec2..0000000
--- a/assets/js/b4a67526.6f6704ad.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[39],{105:function(o){o.exports=JSON.parse('{"pluginId":"docs-apisix-ingress-controller","version":"current","label":"Next","isLast":true,"docsSidebars":{"docs":[{"collapsed":true,"type":"category","label":"APISIX\u2122\ufe0f Ingress Controller","items":[{"type":"link","label":"Introduction","href":"/docs/ingress-controller/introduction"}]}]},"permalinkToSidebar":{"/docs/ingress-controller/introduction":"docs"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/b58143c5.577446c7.js b/assets/js/b58143c5.577446c7.js
new file mode 100644
index 0000000..be9eacb
--- /dev/null
+++ b/assets/js/b58143c5.577446c7.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[54],{120:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return s})),n.d(t,"metadata",(function(){return o})),n.d(t,"toc",(function(){return l})),n.d(t,"default",(function(){return p}));var r=n(3),a=n(7),i=(n(0),n(142)),s={},o={unversionedId:"deployments/kubesphere",id:"deployments/kubesphere",isDocsHomePage:!1,title:"kubesphere",description:"\x3c!--",source:"@site/docs/apisix-ingress-controller/deployments/kubesphe [...]
\ No newline at end of file
diff --git a/assets/js/bacea567.58c33be1.js b/assets/js/bacea567.52ee32ac.js
similarity index 94%
rename from assets/js/bacea567.58c33be1.js
rename to assets/js/bacea567.52ee32ac.js
index 5764aaa..b3b4cad 100644
--- a/assets/js/bacea567.58c33be1.js
+++ b/assets/js/bacea567.52ee32ac.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[40],{106:function(e,t,r){"use strict";r.r(t),r.d(t,"frontMatter",(function(){return c})),r.d(t,"metadata",(function(){return i})),r.d(t,"toc",(function(){return s})),r.d(t,"default",(function(){return l}));var n=r(3),a=r(7),o=(r(0),r(125)),c={title:"Release Apache APISIX Dashboard 2.4"},i={permalink:"/events/2021/02/12/release-apache-apisix-dashboard-2.4",source:"@site/events/2021-02-12-release-apache-apisix-dashboard-2.4.md",descripti [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[55],{121:function(e,t,r){"use strict";r.r(t),r.d(t,"frontMatter",(function(){return c})),r.d(t,"metadata",(function(){return i})),r.d(t,"toc",(function(){return s})),r.d(t,"default",(function(){return l}));var n=r(3),a=r(7),o=(r(0),r(142)),c={title:"Release Apache APISIX Dashboard 2.4"},i={permalink:"/events/2021/02/12/release-apache-apisix-dashboard-2.4",source:"@site/events/2021-02-12-release-apache-apisix-dashboard-2.4.md",descripti [...]
\ No newline at end of file
diff --git a/assets/js/c119cf3c.a240434d.js b/assets/js/c119cf3c.342e02c4.js
similarity index 92%
rename from assets/js/c119cf3c.a240434d.js
rename to assets/js/c119cf3c.342e02c4.js
index 69175bf..23b1a75 100644
--- a/assets/js/c119cf3c.a240434d.js
+++ b/assets/js/c119cf3c.342e02c4.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[41],{107:function(e,r,t){"use strict";t.r(r),t.d(r,"frontMatter",(function(){return c})),t.d(r,"metadata",(function(){return i})),t.d(r,"toc",(function(){return s})),t.d(r,"default",(function(){return l}));var n=t(3),a=t(7),o=(t(0),t(125)),c={title:"Release Apache APISIX Ingress Controller 0.3.0"},i={permalink:"/events/2021/02/11/release-apache-apisix-ingress-controller-0.3.0",source:"@site/events/2021-02-11-release-apache-apisix-ingre [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[56],{122:function(e,r,t){"use strict";t.r(r),t.d(r,"frontMatter",(function(){return c})),t.d(r,"metadata",(function(){return i})),t.d(r,"toc",(function(){return s})),t.d(r,"default",(function(){return l}));var n=t(3),a=t(7),o=(t(0),t(142)),c={title:"Release Apache APISIX Ingress Controller 0.3.0"},i={permalink:"/events/2021/02/11/release-apache-apisix-ingress-controller-0.3.0",source:"@site/events/2021-02-11-release-apache-apisix-ingre [...]
\ No newline at end of file
diff --git a/zh/assets/js/c4f5d8e4.a4d61c1b.js b/assets/js/c4f5d8e4.08af8182.js
similarity index 96%
rename from zh/assets/js/c4f5d8e4.a4d61c1b.js
rename to assets/js/c4f5d8e4.08af8182.js
index e3c839f..d2ec291 100644
--- a/zh/assets/js/c4f5d8e4.a4d61c1b.js
+++ b/assets/js/c4f5d8e4.08af8182.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[42],{108:function(e,t,a){"use strict";a.r(t);var n=a(128),l=a(17),r=a(132),c=a(129),i=a(151),s=a(0),o=a(226),m=a(150),u=a(0),d=function(){var e=Object(s.useState)(0),t=e[0],a=e[1],l=["Dynamic","Real-Time","High-Performance"],c=Object(s.useState)(!0),m=c[0],d=c[1],v=function(e){d(!1),a(e),d(!0)};return Object(s.useEffect)((function(){var e=setInterval((function(){v(t>=l.length-1?0:t+1)}),3600);return function(){return clearInterval(e)}} [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[57],{123:function(e,t,a){"use strict";a.r(t);var n=a(145),l=a(17),r=a(149),c=a(146),i=a(168),s=a(0),o=a(243),m=a(167),u=a(0),d=function(){var e=Object(s.useState)(0),t=e[0],a=e[1],l=["Dynamic","Real-Time","High-Performance"],c=Object(s.useState)(!0),m=c[0],d=c[1],v=function(e){d(!1),a(e),d(!0)};return Object(s.useEffect)((function(){var e=setInterval((function(){v(t>=l.length-1?0:t+1)}),3600);return function(){return clearInterval(e)}} [...]
\ No newline at end of file
diff --git a/assets/js/c5594f1a.b73b27b8.js b/assets/js/c5594f1a.9724dc93.js
similarity index 94%
rename from assets/js/c5594f1a.b73b27b8.js
rename to assets/js/c5594f1a.9724dc93.js
index a934232..4db38b8 100644
--- a/assets/js/c5594f1a.b73b27b8.js
+++ b/assets/js/c5594f1a.9724dc93.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[43],{109:function(e,r,t){"use strict";t.r(r),t.d(r,"frontMatter",(function(){return c})),t.d(r,"metadata",(function(){return i})),t.d(r,"toc",(function(){return s})),t.d(r,"default",(function(){return p}));var n=t(3),a=t(7),o=(t(0),t(125)),c={title:"Release Apache APISIX Ingress Controller 0.2.0"},i={permalink:"/events/2021/01/19/release-apache-apisix-ingress-controller-0.2.0",source:"@site/events/2021-01-19-release-apache-apisix-ingre [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[58],{124:function(e,r,t){"use strict";t.r(r),t.d(r,"frontMatter",(function(){return c})),t.d(r,"metadata",(function(){return i})),t.d(r,"toc",(function(){return s})),t.d(r,"default",(function(){return p}));var n=t(3),a=t(7),o=(t(0),t(142)),c={title:"Release Apache APISIX Ingress Controller 0.2.0"},i={permalink:"/events/2021/01/19/release-apache-apisix-ingress-controller-0.2.0",source:"@site/events/2021-01-19-release-apache-apisix-ingre [...]
\ No newline at end of file
diff --git a/assets/js/ccc49370.938f9db4.js b/assets/js/ccc49370.b142e6b6.js
similarity index 86%
rename from assets/js/ccc49370.938f9db4.js
rename to assets/js/ccc49370.b142e6b6.js
index 5efdd10..c0776e3 100644
--- a/assets/js/ccc49370.938f9db4.js
+++ b/assets/js/ccc49370.b142e6b6.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[44],{123:function(e,t,a){"use strict";a.r(t);var n=a(0),l=a.n(n),r=a(129),i=a(174),c=a(128);var o=function(e){var t=e.nextItem,a=e.prevItem;return l.a.createElement("nav",{className:"pagination-nav","aria-label":"Blog post page navigation"},l.a.createElement("div",{className:"pagination-nav__item"},a&&l.a.createElement(c.a,{className:"pagination-nav__link",to:a.permalink},l.a.createElement("div",{className:"pagination-nav__sublabel"}," [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[59],{140:function(e,t,a){"use strict";a.r(t);var n=a(0),l=a.n(n),r=a(146),i=a(191),c=a(145);var o=function(e){var t=e.nextItem,a=e.prevItem;return l.a.createElement("nav",{className:"pagination-nav","aria-label":"Blog post page navigation"},l.a.createElement("div",{className:"pagination-nav__item"},a&&l.a.createElement(c.a,{className:"pagination-nav__link",to:a.permalink},l.a.createElement("div",{className:"pagination-nav__sublabel"}," [...]
\ No newline at end of file
diff --git a/assets/js/d4de91ec.5615c552.js b/assets/js/d4de91ec.5a94f2f3.js
similarity index 97%
rename from assets/js/d4de91ec.5615c552.js
rename to assets/js/d4de91ec.5a94f2f3.js
index dddb365..f2aa280 100644
--- a/assets/js/d4de91ec.5615c552.js
+++ b/assets/js/d4de91ec.5a94f2f3.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[45],{110:function(e,t,a){"use strict";a.r(t),a.d(t,"frontMatter",(function(){return p})),a.d(t,"metadata",(function(){return c})),a.d(t,"toc",(function(){return l})),a.d(t,"default",(function(){return b}));var r=a(3),i=a(7),n=(a(0),a(125)),p={title:"Release Apache APISIX Dashboard 2.4"},c={permalink:"/events/2021/02/12/release-apache-apisix-dashboard-2.4",source:"@site/events/2021-02-12-release-apache-apisix-dashboard-2.4.md",descripti [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[60],{125:function(e,t,a){"use strict";a.r(t),a.d(t,"frontMatter",(function(){return p})),a.d(t,"metadata",(function(){return c})),a.d(t,"toc",(function(){return l})),a.d(t,"default",(function(){return b}));var r=a(3),i=a(7),n=(a(0),a(142)),p={title:"Release Apache APISIX Dashboard 2.4"},c={permalink:"/events/2021/02/12/release-apache-apisix-dashboard-2.4",source:"@site/events/2021-02-12-release-apache-apisix-dashboard-2.4.md",descripti [...]
\ No newline at end of file
diff --git a/assets/js/d73fca9b.100c8f68.js b/assets/js/d73fca9b.42acaf18.js
similarity index 77%
rename from assets/js/d73fca9b.100c8f68.js
rename to assets/js/d73fca9b.42acaf18.js
index 86efa1c..813bc54 100644
--- a/assets/js/d73fca9b.100c8f68.js
+++ b/assets/js/d73fca9b.42acaf18.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[46],{111:function(i){i.exports=JSON.parse('{"pluginId":"docs-apisix","version":"current","label":"Next","isLast":true,"docsSidebars":{"docs":[{"collapsed":true,"type":"category","label":"APISIX\u2122\ufe0f","items":[{"type":"link","label":"Introduction","href":"/docs/apisix/introduction"}]}]},"permalinkToSidebar":{"/docs/apisix/introduction":"docs"}}')}}]);
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[61],{126:function(i){i.exports=JSON.parse('{"pluginId":"docs-apisix","version":"current","label":"Next","isLast":true,"docsSidebars":{"docs":[{"collapsed":true,"type":"category","label":"APISIX\u2122\ufe0f","items":[{"type":"link","label":"Introduction","href":"/docs/apisix/introduction"}]}]},"permalinkToSidebar":{"/docs/apisix/introduction":"docs"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/e02da2c5.d84d16c5.js b/assets/js/e02da2c5.9aa3ef3b.js
similarity index 98%
rename from assets/js/e02da2c5.d84d16c5.js
rename to assets/js/e02da2c5.9aa3ef3b.js
index f2624c5..12fe9ea 100644
--- a/assets/js/e02da2c5.d84d16c5.js
+++ b/assets/js/e02da2c5.9aa3ef3b.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[47],{112:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return o})),n.d(t,"metadata",(function(){return l})),n.d(t,"toc",(function(){return c})),n.d(t,"default",(function(){return s}));var a=n(3),r=n(7),i=(n(0),n(125)),o={title:"Envoy and Apache APISIX: Another way to implement the Envoy filter",author:"nic-chen",authorURL:"https://github.com/nic-chen",authorImageURL:"https://avatars0.githubusercontent.com/u/330006 [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[62],{127:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return o})),n.d(t,"metadata",(function(){return l})),n.d(t,"toc",(function(){return c})),n.d(t,"default",(function(){return s}));var a=n(3),r=n(7),i=(n(0),n(142)),o={title:"Envoy and Apache APISIX: Another way to implement the Envoy filter",author:"nic-chen",authorURL:"https://github.com/nic-chen",authorImageURL:"https://avatars0.githubusercontent.com/u/330006 [...]
\ No newline at end of file
diff --git a/assets/js/e451ae2c.162a757f.js b/assets/js/e451ae2c.395a184f.js
similarity index 98%
rename from assets/js/e451ae2c.162a757f.js
rename to assets/js/e451ae2c.395a184f.js
index 8bb186b..7829f84 100644
--- a/assets/js/e451ae2c.162a757f.js
+++ b/assets/js/e451ae2c.395a184f.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[48],{113:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return o})),n.d(t,"metadata",(function(){return i})),n.d(t,"toc",(function(){return c})),n.d(t,"default",(function(){return u}));var a=n(3),r=n(7),s=(n(0),n(125)),o={title:"Stable Product Delivery with Cypress",author:"Yi Sun",authorURL:"https://github.com/LiteSun",authorImageURL:"https://avatars.githubusercontent.com/u/31329157?s=400&u=e81b4bb4db2be162c1fcac6 [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[63],{128:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return o})),n.d(t,"metadata",(function(){return i})),n.d(t,"toc",(function(){return c})),n.d(t,"default",(function(){return u}));var a=n(3),r=n(7),s=(n(0),n(142)),o={title:"Stable Product Delivery with Cypress",author:"Yi Sun",authorURL:"https://github.com/LiteSun",authorImageURL:"https://avatars.githubusercontent.com/u/31329157?s=400&u=e81b4bb4db2be162c1fcac6 [...]
\ No newline at end of file
diff --git a/assets/js/e60dd3b0.0e02eecb.js b/assets/js/e60dd3b0.0e02eecb.js
new file mode 100644
index 0000000..5a7519f
--- /dev/null
+++ b/assets/js/e60dd3b0.0e02eecb.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[64],{129:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return s})),n.d(t,"metadata",(function(){return o})),n.d(t,"toc",(function(){return c})),n.d(t,"default",(function(){return p}));var i=n(3),a=n(7),r=(n(0),n(142)),s={},o={unversionedId:"design",id:"design",isDocsHomePage:!1,title:"design",description:"\x3c!--",source:"@site/docs/apisix-ingress-controller/design.md",slug:"/design",permalink:"/docs/ingress-contr [...]
\ No newline at end of file
diff --git a/assets/js/f243156b.1561d1a4.js b/assets/js/f243156b.8867e6e0.js
similarity index 73%
rename from assets/js/f243156b.1561d1a4.js
rename to assets/js/f243156b.8867e6e0.js
index ef79b99..4165a10 100644
--- a/assets/js/f243156b.1561d1a4.js
+++ b/assets/js/f243156b.8867e6e0.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[49],{116:function(o){o.exports=JSON.parse('{"pluginId":"docs-apisix-dashboard","version":"current","label":"Next","isLast":true,"docsSidebars":{"docs":[{"collapsed":true,"type":"category","label":"APISIX\u2122\ufe0f Dashboard","items":[{"type":"link","label":"Introduction","href":"/docs/dashboard/introduction"}]}]},"permalinkToSidebar":{"/docs/dashboard/introduction":"docs"}}')}}]);
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[65],{132:function(o){o.exports=JSON.parse('{"pluginId":"docs-apisix-dashboard","version":"current","label":"Next","isLast":true,"docsSidebars":{"docs":[{"collapsed":true,"type":"category","label":"APISIX\u2122\ufe0f Dashboard","items":[{"type":"link","label":"Introduction","href":"/docs/dashboard/introduction"}]}]},"permalinkToSidebar":{"/docs/dashboard/introduction":"docs"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/f6cd6006.a5b31f3d.js b/assets/js/f6cd6006.a5b31f3d.js
new file mode 100644
index 0000000..452d1a7
--- /dev/null
+++ b/assets/js/f6cd6006.a5b31f3d.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[66],{133:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return s})),n.d(t,"metadata",(function(){return o})),n.d(t,"toc",(function(){return c})),n.d(t,"default",(function(){return p}));var r=n(3),a=n(7),i=(n(0),n(142)),s={},o={unversionedId:"deployments/azure",id:"deployments/azure",isDocsHomePage:!1,title:"azure",description:"\x3c!--",source:"@site/docs/apisix-ingress-controller/deployments/azure.md",slug:"/deploy [...]
\ No newline at end of file
diff --git a/assets/js/f7488fe8.e624b827.js b/assets/js/f7488fe8.115aa429.js
similarity index 91%
rename from assets/js/f7488fe8.e624b827.js
rename to assets/js/f7488fe8.115aa429.js
index bbce843..1d83b58 100644
--- a/assets/js/f7488fe8.e624b827.js
+++ b/assets/js/f7488fe8.115aa429.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[50],{117:function(e){e.exports=JSON.parse('{"title":"Recent posts","items":[{"title":"Release Apache APISIX Dashboard 2.4","permalink":"/events/2021/02/12/release-apache-apisix-dashboard-2.4"},{"title":"Release Apache APISIX Ingress Controller 0.3.0","permalink":"/events/2021/02/11/release-apache-apisix-ingress-controller-0.3.0"},{"title":"Release Apache APISIX 2.3","permalink":"/events/2021/02/09/release-apache-apisix-2.3"},{"title":" [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[67],{134:function(e){e.exports=JSON.parse('{"title":"Recent posts","items":[{"title":"Release Apache APISIX Dashboard 2.4","permalink":"/events/2021/02/12/release-apache-apisix-dashboard-2.4"},{"title":"Release Apache APISIX Ingress Controller 0.3.0","permalink":"/events/2021/02/11/release-apache-apisix-ingress-controller-0.3.0"},{"title":"Release Apache APISIX 2.3","permalink":"/events/2021/02/09/release-apache-apisix-2.3"},{"title":" [...]
\ No newline at end of file
diff --git a/assets/js/fa919c95.8686a53b.js b/assets/js/fa919c95.629820e4.js
similarity index 93%
rename from assets/js/fa919c95.8686a53b.js
rename to assets/js/fa919c95.629820e4.js
index 2ee16e4..8a3c3ee 100644
--- a/assets/js/fa919c95.8686a53b.js
+++ b/assets/js/fa919c95.629820e4.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[51],{118:function(e,r,t){"use strict";t.r(r),t.d(r,"frontMatter",(function(){return c})),t.d(r,"metadata",(function(){return i})),t.d(r,"toc",(function(){return s})),t.d(r,"default",(function(){return p}));var n=t(3),a=t(7),o=(t(0),t(125)),c={title:"Release Apache APISIX Ingress Controller 0.1.0"},i={permalink:"/events/2020/12/23/release-apache-apisix-ingress-controller-0.1.0",source:"@site/events/2020-12-23-release-apache-apisix-ingre [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[68],{135:function(e,r,t){"use strict";t.r(r),t.d(r,"frontMatter",(function(){return c})),t.d(r,"metadata",(function(){return i})),t.d(r,"toc",(function(){return s})),t.d(r,"default",(function(){return p}));var n=t(3),a=t(7),o=(t(0),t(142)),c={title:"Release Apache APISIX Ingress Controller 0.1.0"},i={permalink:"/events/2020/12/23/release-apache-apisix-ingress-controller-0.1.0",source:"@site/events/2020-12-23-release-apache-apisix-ingre [...]
\ No newline at end of file
diff --git a/assets/js/main.9d7dd60f.js b/assets/js/main.9d7dd60f.js
new file mode 100644
index 0000000..b8531fd
--- /dev/null
+++ b/assets/js/main.9d7dd60f.js
@@ -0,0 +1,2 @@
+/*! For license information please see main.9d7dd60f.js.LICENSE.txt */
+(window.webpackJsonp=window.webpackJsonp||[]).push([[69],[function(e,t,n){"use strict";e.exports=n(38)},function(e,t,n){e.exports=n(42)()},function(e,t,n){"use strict";n.d(t,"a",(function(){return v})),n.d(t,"b",(function(){return w})),n.d(t,"c",(function(){return S})),n.d(t,"d",(function(){return A})),n.d(t,"e",(function(){return b})),n.d(t,"f",(function(){return L})),n.d(t,"g",(function(){return j})),n.d(t,"h",(function(){return g})),n.d(t,"i",(function(){return E})),n.d(t,"j",(functio [...]
\ No newline at end of file
diff --git a/zh/assets/js/main.8ce1e08c.js.LICENSE.txt b/assets/js/main.9d7dd60f.js.LICENSE.txt
similarity index 100%
rename from zh/assets/js/main.8ce1e08c.js.LICENSE.txt
rename to assets/js/main.9d7dd60f.js.LICENSE.txt
diff --git a/assets/js/main.f336ec98.js b/assets/js/main.f336ec98.js
deleted file mode 100644
index c2eaeb5..0000000
--- a/assets/js/main.f336ec98.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/*! For license information please see main.f336ec98.js.LICENSE.txt */
-(window.webpackJsonp=window.webpackJsonp||[]).push([[52],[function(e,t,n){"use strict";e.exports=n(38)},function(e,t,n){e.exports=n(42)()},function(e,t,n){"use strict";n.d(t,"a",(function(){return v})),n.d(t,"b",(function(){return w})),n.d(t,"c",(function(){return S})),n.d(t,"d",(function(){return A})),n.d(t,"e",(function(){return b})),n.d(t,"f",(function(){return L})),n.d(t,"g",(function(){return j})),n.d(t,"h",(function(){return g})),n.d(t,"i",(function(){return x})),n.d(t,"j",(functio [...]
\ No newline at end of file
diff --git a/assets/js/runtime~main.cc8f64c2.js b/assets/js/runtime~main.cc8f64c2.js
new file mode 100644
index 0000000..efef7d9
--- /dev/null
+++ b/assets/js/runtime~main.cc8f64c2.js
@@ -0,0 +1 @@
+!function(e){function c(c){for(var f,r,t=c[0],n=c[1],o=c[2],u=0,l=[];u<t.length;u++)r=t[u],Object.prototype.hasOwnProperty.call(d,r)&&d[r]&&l.push(d[r][0]),d[r]=0;for(f in n)Object.prototype.hasOwnProperty.call(n,f)&&(e[f]=n[f]);for(i&&i(c);l.length;)l.shift()();return b.push.apply(b,o||[]),a()}function a(){for(var e,c=0;c<b.length;c++){for(var a=b[c],f=!0,r=1;r<a.length;r++){var n=a[r];0!==d[n]&&(f=!1)}f&&(b.splice(c--,1),e=t(t.s=a[0]))}return e}var f={},d={70:0},b=[];function r(e){retu [...]
\ No newline at end of file
diff --git a/assets/js/runtime~main.f2d98ad9.js b/assets/js/runtime~main.f2d98ad9.js
deleted file mode 100644
index 08e5b52..0000000
--- a/assets/js/runtime~main.f2d98ad9.js
+++ /dev/null
@@ -1 +0,0 @@
-!function(e){function f(f){for(var a,d,n=f[0],b=f[1],o=f[2],u=0,l=[];u<n.length;u++)d=n[u],Object.prototype.hasOwnProperty.call(r,d)&&r[d]&&l.push(r[d][0]),r[d]=0;for(a in b)Object.prototype.hasOwnProperty.call(b,a)&&(e[a]=b[a]);for(i&&i(f);l.length;)l.shift()();return t.push.apply(t,o||[]),c()}function c(){for(var e,f=0;f<t.length;f++){for(var c=t[f],a=!0,d=1;d<c.length;d++){var b=c[d];0!==r[b]&&(a=!1)}a&&(t.splice(f--,1),e=n(n.s=c[0]))}return e}var a={},r={53:0},t=[];function d(e){retu [...]
\ No newline at end of file
diff --git a/assets/js/styles.69143f42.js b/assets/js/styles.bf547cb6.js
similarity index 87%
rename from assets/js/styles.69143f42.js
rename to assets/js/styles.bf547cb6.js
index 7c6d562..a55647c 100644
--- a/assets/js/styles.69143f42.js
+++ b/assets/js/styles.bf547cb6.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[0],{101:function(e,o,n){e.exports={blogPostTitle:"blogPostTitle_GeHD",blogPostDate:"blogPostDate_fNvV"}},102:function(e,o,n){e.exports={sidebar:"sidebar_2ahu",sidebarItemTitle:"sidebarItemTitle_2hhb",sidebarItemList:"sidebarItemList_2xAf",sidebarItem:"sidebarItem_2UVv",sidebarItemLink:"sidebarItemLink_1RT6",sidebarItemLinkActive:"sidebarItemLinkActive_12pM"}},115:function(e,o,n){e.exports={searchQueryInput:"searchQueryInput_35WP",searc [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[0],{114:function(e,o,n){e.exports={blogPostTitle:"blogPostTitle_GeHD",blogPostDate:"blogPostDate_fNvV"}},115:function(e,o,n){e.exports={sidebar:"sidebar_2ahu",sidebarItemTitle:"sidebarItemTitle_2hhb",sidebarItemList:"sidebarItemList_2xAf",sidebarItem:"sidebarItem_2UVv",sidebarItemLink:"sidebarItemLink_1RT6",sidebarItemLinkActive:"sidebarItemLinkActive_12pM"}},131:function(e,o,n){e.exports={searchQueryInput:"searchQueryInput_35WP",searc [...]
\ No newline at end of file
diff --git a/blog/2020/08/22/new-website/index.html b/blog/2020/08/22/new-website/index.html
index 86fcb45..11dfe7a 100644
--- a/blog/2020/08/22/new-website/index.html
+++ b/blog/2020/08/22/new-website/index.html
@@ -11,27 +11,27 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">New website for Apache APISIX | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="New website for Apache APISIX | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="We are just refactored out website for Apache APISIX by using docusaurus."><meta data-react-helmet="true" name="t [...]
-<link rel="preload" href="/assets/js/styles.69143f42.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.f2d98ad9.js" as="script">
-<link rel="preload" href="/assets/js/main.f336ec98.js" as="script">
-<link rel="preload" href="/assets/js/1.b21fad17.js" as="script">
-<link rel="preload" href="/assets/js/2.c74b4887.js" as="script">
-<link rel="preload" href="/assets/js/4.f867f6a9.js" as="script">
-<link rel="preload" href="/assets/js/ccc49370.938f9db4.js" as="script">
-<link rel="preload" href="/assets/js/2d8fe9ee.09d7d664.js" as="script">
-<link rel="preload" href="/assets/js/a6641250.4759241f.js" as="script">
+<link rel="preload" href="/assets/js/styles.bf547cb6.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.cc8f64c2.js" as="script">
+<link rel="preload" href="/assets/js/main.9d7dd60f.js" as="script">
+<link rel="preload" href="/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/assets/js/4.c30f7bca.js" as="script">
+<link rel="preload" href="/assets/js/ccc49370.b142e6b6.js" as="script">
+<link rel="preload" href="/assets/js/2d8fe9ee.dd6ca160.js" as="script">
+<link rel="preload" href="/assets/js/a6641250.0ca65b36.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
-<script src="/assets/js/styles.69143f42.js"></script>
-<script src="/assets/js/runtime~main.f2d98ad9.js"></script>
-<script src="/assets/js/main.f336ec98.js"></script>
-<script src="/assets/js/1.b21fad17.js"></script>
-<script src="/assets/js/2.c74b4887.js"></script>
-<script src="/assets/js/4.f867f6a9.js"></script>
-<script src="/assets/js/ccc49370.938f9db4.js"></script>
-<script src="/assets/js/2d8fe9ee.09d7d664.js"></script>
-<script src="/assets/js/a6641250.4759241f.js"></script>
+<script src="/assets/js/styles.bf547cb6.js"></script>
+<script src="/assets/js/runtime~main.cc8f64c2.js"></script>
+<script src="/assets/js/main.9d7dd60f.js"></script>
+<script src="/assets/js/1.3237074b.js"></script>
+<script src="/assets/js/2.e4d54c2b.js"></script>
+<script src="/assets/js/4.c30f7bca.js"></script>
+<script src="/assets/js/ccc49370.b142e6b6.js"></script>
+<script src="/assets/js/2d8fe9ee.dd6ca160.js"></script>
+<script src="/assets/js/a6641250.0ca65b36.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 2761309..9dbe20e 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
@@ -11,29 +11,29 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Envoy and Apache APISIX: Another way to implement the Envoy filter | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Envoy and Apache APISIX: Another way to implement the Envoy filter | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="@nic-chen, Apache APISIX PMC from Shenz [...]
-<link rel="preload" href="/assets/js/styles.69143f42.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.f2d98ad9.js" as="script">
-<link rel="preload" href="/assets/js/main.f336ec98.js" as="script">
-<link rel="preload" href="/assets/js/1.b21fad17.js" as="script">
-<link rel="preload" href="/assets/js/2.c74b4887.js" as="script">
-<link rel="preload" href="/assets/js/4.f867f6a9.js" as="script">
-<link rel="preload" href="/assets/js/ccc49370.938f9db4.js" as="script">
-<link rel="preload" href="/assets/js/2d8fe9ee.09d7d664.js" as="script">
-<link rel="preload" href="/assets/js/749ed826.dbea5f11.js" as="script">
+<link rel="preload" href="/assets/js/styles.bf547cb6.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.cc8f64c2.js" as="script">
+<link rel="preload" href="/assets/js/main.9d7dd60f.js" as="script">
+<link rel="preload" href="/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/assets/js/4.c30f7bca.js" as="script">
+<link rel="preload" href="/assets/js/ccc49370.b142e6b6.js" as="script">
+<link rel="preload" href="/assets/js/2d8fe9ee.dd6ca160.js" as="script">
+<link rel="preload" href="/assets/js/749ed826.1e47188d.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
 A pluggable filter chain mechanism allows filters to be written to perform different tasks and inserted into the main server.</p><p><img src="https://static.apiseven.com/filters.png" alt="Envoy filter"></p><h3><a aria-hidden="true" tabindex="-1" class="anchor enhancedAnchor_2LWZ" id="expansion-method"></a>Expansion method<a class="hash-link" href="#expansion-method" title="Direct link to heading">#</a></h3><p>The existing filters may not meet the user&#x27;s custom requirements. In this  [...]
 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 enhancedAnchor_2LWZ" id="second-step-parse-request"></a>Second step, parse request<a class="hash-link" href="#second-step-parse-request" title="Direct link to heading">#</a></h4><p>We encapsulated the client request data into <code> [...]
-<script src="/assets/js/styles.69143f42.js"></script>
-<script src="/assets/js/runtime~main.f2d98ad9.js"></script>
-<script src="/assets/js/main.f336ec98.js"></script>
-<script src="/assets/js/1.b21fad17.js"></script>
-<script src="/assets/js/2.c74b4887.js"></script>
-<script src="/assets/js/4.f867f6a9.js"></script>
-<script src="/assets/js/ccc49370.938f9db4.js"></script>
-<script src="/assets/js/2d8fe9ee.09d7d664.js"></script>
-<script src="/assets/js/749ed826.dbea5f11.js"></script>
+<script src="/assets/js/styles.bf547cb6.js"></script>
+<script src="/assets/js/runtime~main.cc8f64c2.js"></script>
+<script src="/assets/js/main.9d7dd60f.js"></script>
+<script src="/assets/js/1.3237074b.js"></script>
+<script src="/assets/js/2.e4d54c2b.js"></script>
+<script src="/assets/js/4.c30f7bca.js"></script>
+<script src="/assets/js/ccc49370.b142e6b6.js"></script>
+<script src="/assets/js/2d8fe9ee.dd6ca160.js"></script>
+<script src="/assets/js/749ed826.1e47188d.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2020/12/18/a-first-look-at-kubernetes-service-api/index.html b/blog/2020/12/18/a-first-look-at-kubernetes-service-api/index.html
index d1bd955..1343171 100644
--- a/blog/2020/12/18/a-first-look-at-kubernetes-service-api/index.html
+++ b/blog/2020/12/18/a-first-look-at-kubernetes-service-api/index.html
@@ -11,27 +11,27 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">初探 Kubernetes Service APIs | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="初探 Kubernetes Service APIs | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="@gxthrj, Apache APISIX PMC &amp; Apache apisix-ingress-controller Founder from Shenzhen Zhiliu Technology Co."><meta da [...]
-<link rel="preload" href="/assets/js/styles.69143f42.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.f2d98ad9.js" as="script">
-<link rel="preload" href="/assets/js/main.f336ec98.js" as="script">
-<link rel="preload" href="/assets/js/1.b21fad17.js" as="script">
-<link rel="preload" href="/assets/js/2.c74b4887.js" as="script">
-<link rel="preload" href="/assets/js/4.f867f6a9.js" as="script">
-<link rel="preload" href="/assets/js/ccc49370.938f9db4.js" as="script">
-<link rel="preload" href="/assets/js/2d8fe9ee.09d7d664.js" as="script">
-<link rel="preload" href="/assets/js/a4a2cefa.4d2fd8e2.js" as="script">
+<link rel="preload" href="/assets/js/styles.bf547cb6.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.cc8f64c2.js" as="script">
+<link rel="preload" href="/assets/js/main.9d7dd60f.js" as="script">
+<link rel="preload" href="/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/assets/js/4.c30f7bca.js" as="script">
+<link rel="preload" href="/assets/js/ccc49370.b142e6b6.js" as="script">
+<link rel="preload" href="/assets/js/2d8fe9ee.dd6ca160.js" as="script">
+<link rel="preload" href="/assets/js/a4a2cefa.10438715.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
-<script src="/assets/js/styles.69143f42.js"></script>
-<script src="/assets/js/runtime~main.f2d98ad9.js"></script>
-<script src="/assets/js/main.f336ec98.js"></script>
-<script src="/assets/js/1.b21fad17.js"></script>
-<script src="/assets/js/2.c74b4887.js"></script>
-<script src="/assets/js/4.f867f6a9.js"></script>
-<script src="/assets/js/ccc49370.938f9db4.js"></script>
-<script src="/assets/js/2d8fe9ee.09d7d664.js"></script>
-<script src="/assets/js/a4a2cefa.4d2fd8e2.js"></script>
+<script src="/assets/js/styles.bf547cb6.js"></script>
+<script src="/assets/js/runtime~main.cc8f64c2.js"></script>
+<script src="/assets/js/main.9d7dd60f.js"></script>
+<script src="/assets/js/1.3237074b.js"></script>
+<script src="/assets/js/2.e4d54c2b.js"></script>
+<script src="/assets/js/4.c30f7bca.js"></script>
+<script src="/assets/js/ccc49370.b142e6b6.js"></script>
+<script src="/assets/js/2d8fe9ee.dd6ca160.js"></script>
+<script src="/assets/js/a4a2cefa.10438715.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 ffc9826..0dd1361 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
@@ -11,28 +11,28 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Run Ingress APISIX on Amazon EKS | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Run Ingress APISIX on Amazon EKS | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="@Chao Zhang, Apache APISIX Comitter from Shenzhen Zhiliu Technology Co."><meta data-react-helmet="true" nam [...]
-<link rel="preload" href="/assets/js/styles.69143f42.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.f2d98ad9.js" as="script">
-<link rel="preload" href="/assets/js/main.f336ec98.js" as="script">
-<link rel="preload" href="/assets/js/1.b21fad17.js" as="script">
-<link rel="preload" href="/assets/js/2.c74b4887.js" as="script">
-<link rel="preload" href="/assets/js/4.f867f6a9.js" as="script">
-<link rel="preload" href="/assets/js/ccc49370.938f9db4.js" as="script">
-<link rel="preload" href="/assets/js/2d8fe9ee.09d7d664.js" as="script">
-<link rel="preload" href="/assets/js/1c89ab3b.d668bc40.js" as="script">
+<link rel="preload" href="/assets/js/styles.bf547cb6.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.cc8f64c2.js" as="script">
+<link rel="preload" href="/assets/js/main.9d7dd60f.js" as="script">
+<link rel="preload" href="/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/assets/js/4.c30f7bca.js" as="script">
+<link rel="preload" href="/assets/js/ccc49370.b142e6b6.js" as="script">
+<link rel="preload" href="/assets/js/2d8fe9ee.dd6ca160.js" as="script">
+<link rel="preload" href="/assets/js/1c89ab3b.d0ddd7c3.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  </span><span class="token string" style="color:rgb(195, 232, 141)">&quot;headers&quot;</span><span class="token builtin class-name" style="color:rgb(255, 203, 107)">:</span><span class="token plain"> </span><span c [...]
-<script src="/assets/js/styles.69143f42.js"></script>
-<script src="/assets/js/runtime~main.f2d98ad9.js"></script>
-<script src="/assets/js/main.f336ec98.js"></script>
-<script src="/assets/js/1.b21fad17.js"></script>
-<script src="/assets/js/2.c74b4887.js"></script>
-<script src="/assets/js/4.f867f6a9.js"></script>
-<script src="/assets/js/ccc49370.938f9db4.js"></script>
-<script src="/assets/js/2d8fe9ee.09d7d664.js"></script>
-<script src="/assets/js/1c89ab3b.d668bc40.js"></script>
+<script src="/assets/js/styles.bf547cb6.js"></script>
+<script src="/assets/js/runtime~main.cc8f64c2.js"></script>
+<script src="/assets/js/main.9d7dd60f.js"></script>
+<script src="/assets/js/1.3237074b.js"></script>
+<script src="/assets/js/2.e4d54c2b.js"></script>
+<script src="/assets/js/4.c30f7bca.js"></script>
+<script src="/assets/js/ccc49370.b142e6b6.js"></script>
+<script src="/assets/js/2d8fe9ee.dd6ca160.js"></script>
+<script src="/assets/js/1c89ab3b.d0ddd7c3.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 b956c7c..4d6237e 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
@@ -11,27 +11,27 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Stable Product Delivery with Cypress | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Stable Product Delivery with Cypress | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="@LiteSun, Apache APISIX Committer from Shenzhen Zhiliu Technology Co."><meta data-react-helmet="tru [...]
-<link rel="preload" href="/assets/js/styles.69143f42.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.f2d98ad9.js" as="script">
-<link rel="preload" href="/assets/js/main.f336ec98.js" as="script">
-<link rel="preload" href="/assets/js/1.b21fad17.js" as="script">
-<link rel="preload" href="/assets/js/2.c74b4887.js" as="script">
-<link rel="preload" href="/assets/js/4.f867f6a9.js" as="script">
-<link rel="preload" href="/assets/js/ccc49370.938f9db4.js" as="script">
-<link rel="preload" href="/assets/js/2d8fe9ee.09d7d664.js" as="script">
-<link rel="preload" href="/assets/js/47e0bf55.a6c19db6.js" as="script">
+<link rel="preload" href="/assets/js/styles.bf547cb6.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.cc8f64c2.js" as="script">
+<link rel="preload" href="/assets/js/main.9d7dd60f.js" as="script">
+<link rel="preload" href="/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/assets/js/4.c30f7bca.js" as="script">
+<link rel="preload" href="/assets/js/ccc49370.b142e6b6.js" as="script">
+<link rel="preload" href="/assets/js/2d8fe9ee.dd6ca160.js" as="script">
+<link rel="preload" href="/assets/js/47e0bf55.61a2fe95.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
-<script src="/assets/js/styles.69143f42.js"></script>
-<script src="/assets/js/runtime~main.f2d98ad9.js"></script>
-<script src="/assets/js/main.f336ec98.js"></script>
-<script src="/assets/js/1.b21fad17.js"></script>
-<script src="/assets/js/2.c74b4887.js"></script>
-<script src="/assets/js/4.f867f6a9.js"></script>
-<script src="/assets/js/ccc49370.938f9db4.js"></script>
-<script src="/assets/js/2d8fe9ee.09d7d664.js"></script>
-<script src="/assets/js/47e0bf55.a6c19db6.js"></script>
+<script src="/assets/js/styles.bf547cb6.js"></script>
+<script src="/assets/js/runtime~main.cc8f64c2.js"></script>
+<script src="/assets/js/main.9d7dd60f.js"></script>
+<script src="/assets/js/1.3237074b.js"></script>
+<script src="/assets/js/2.e4d54c2b.js"></script>
+<script src="/assets/js/4.c30f7bca.js"></script>
+<script src="/assets/js/ccc49370.b142e6b6.js"></script>
+<script src="/assets/js/2d8fe9ee.dd6ca160.js"></script>
+<script src="/assets/js/47e0bf55.61a2fe95.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/index.html b/blog/index.html
index 288b404..e6e9822 100644
--- a/blog/index.html
+++ b/blog/index.html
@@ -11,20 +11,20 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Blog | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Blog | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="Blog"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://apisix.apa [...]
-<link rel="preload" href="/assets/js/styles.69143f42.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.f2d98ad9.js" as="script">
-<link rel="preload" href="/assets/js/main.f336ec98.js" as="script">
-<link rel="preload" href="/assets/js/1.b21fad17.js" as="script">
-<link rel="preload" href="/assets/js/2.c74b4887.js" as="script">
-<link rel="preload" href="/assets/js/4.f867f6a9.js" as="script">
-<link rel="preload" href="/assets/js/a6aa9e1f.81639056.js" as="script">
-<link rel="preload" href="/assets/js/2d8fe9ee.09d7d664.js" as="script">
-<link rel="preload" href="/assets/js/e451ae2c.162a757f.js" as="script">
-<link rel="preload" href="/assets/js/514de2af.d980fd4f.js" as="script">
-<link rel="preload" href="/assets/js/5bb67ffc.ef54c73b.js" as="script">
-<link rel="preload" href="/assets/js/e02da2c5.d84d16c5.js" as="script">
-<link rel="preload" href="/assets/js/37e3b3ea.bccc6220.js" as="script">
-<link rel="preload" href="/assets/js/b2b675dd.f78e88c7.js" as="script">
+<link rel="preload" href="/assets/js/styles.bf547cb6.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.cc8f64c2.js" as="script">
+<link rel="preload" href="/assets/js/main.9d7dd60f.js" as="script">
+<link rel="preload" href="/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/assets/js/4.c30f7bca.js" as="script">
+<link rel="preload" href="/assets/js/a6aa9e1f.55e4f1e9.js" as="script">
+<link rel="preload" href="/assets/js/2d8fe9ee.dd6ca160.js" as="script">
+<link rel="preload" href="/assets/js/e451ae2c.395a184f.js" as="script">
+<link rel="preload" href="/assets/js/514de2af.4139792e.js" as="script">
+<link rel="preload" href="/assets/js/5bb67ffc.29973ce6.js" as="script">
+<link rel="preload" href="/assets/js/e02da2c5.9aa3ef3b.js" as="script">
+<link rel="preload" href="/assets/js/37e3b3ea.0060877a.js" as="script">
+<link rel="preload" href="/assets/js/b2b675dd.03e0dad8.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -32,19 +32,19 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  </span><span class="token string" style="color:rgb(195, 232, 141)">&quot;headers&quot;</span><span class="token builtin class-name" style="color:rgb(255, 203, 107)">:</span><span class="token plain"> </span><span c [...]
 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 enhancedAnchor_2LWZ" id="expansion-method"></a>Expansion method<a class="hash-link" href="#expansion-method" title="Direct link to heading">#</a></h3><p>The existing filters may not meet the user&#x27;s custom requirements. In this  [...]
 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 enhancedAnchor_2LWZ" id="second-step-parse-request"></a>Second step, parse request<a class="hash-link" href="#second-step-parse-request" title="Direct link to heading">#</a></h4><p>We encapsulated the client request data into <code> [...]
-<script src="/assets/js/styles.69143f42.js"></script>
-<script src="/assets/js/runtime~main.f2d98ad9.js"></script>
-<script src="/assets/js/main.f336ec98.js"></script>
-<script src="/assets/js/1.b21fad17.js"></script>
-<script src="/assets/js/2.c74b4887.js"></script>
-<script src="/assets/js/4.f867f6a9.js"></script>
-<script src="/assets/js/a6aa9e1f.81639056.js"></script>
-<script src="/assets/js/2d8fe9ee.09d7d664.js"></script>
-<script src="/assets/js/e451ae2c.162a757f.js"></script>
-<script src="/assets/js/514de2af.d980fd4f.js"></script>
-<script src="/assets/js/5bb67ffc.ef54c73b.js"></script>
-<script src="/assets/js/e02da2c5.d84d16c5.js"></script>
-<script src="/assets/js/37e3b3ea.bccc6220.js"></script>
-<script src="/assets/js/b2b675dd.f78e88c7.js"></script>
+<script src="/assets/js/styles.bf547cb6.js"></script>
+<script src="/assets/js/runtime~main.cc8f64c2.js"></script>
+<script src="/assets/js/main.9d7dd60f.js"></script>
+<script src="/assets/js/1.3237074b.js"></script>
+<script src="/assets/js/2.e4d54c2b.js"></script>
+<script src="/assets/js/4.c30f7bca.js"></script>
+<script src="/assets/js/a6aa9e1f.55e4f1e9.js"></script>
+<script src="/assets/js/2d8fe9ee.dd6ca160.js"></script>
+<script src="/assets/js/e451ae2c.395a184f.js"></script>
+<script src="/assets/js/514de2af.4139792e.js"></script>
+<script src="/assets/js/5bb67ffc.29973ce6.js"></script>
+<script src="/assets/js/e02da2c5.9aa3ef3b.js"></script>
+<script src="/assets/js/37e3b3ea.0060877a.js"></script>
+<script src="/assets/js/b2b675dd.03e0dad8.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/introduction/index.html b/docs/apisix/introduction/index.html
index e06aa44..7b60294 100644
--- a/docs/apisix/introduction/index.html
+++ b/docs/apisix/introduction/index.html
@@ -11,27 +11,27 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Introduction | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs-do [...]
-<link rel="preload" href="/assets/js/styles.69143f42.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.f2d98ad9.js" as="script">
-<link rel="preload" href="/assets/js/main.f336ec98.js" as="script">
-<link rel="preload" href="/assets/js/1.b21fad17.js" as="script">
-<link rel="preload" href="/assets/js/2.c74b4887.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.d24880b0.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.100c8f68.js" as="script">
-<link rel="preload" href="/assets/js/17896441.ab569ce4.js" as="script">
-<link rel="preload" href="/assets/js/1b2ed0ef.fd13d6e7.js" as="script">
+<link rel="preload" href="/assets/js/styles.bf547cb6.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.cc8f64c2.js" as="script">
+<link rel="preload" href="/assets/js/main.9d7dd60f.js" as="script">
+<link rel="preload" href="/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/assets/js/1be78505.a6852249.js" as="script">
+<link rel="preload" href="/assets/js/d73fca9b.42acaf18.js" as="script">
+<link rel="preload" href="/assets/js/17896441.e58bae36.js" as="script">
+<link rel="preload" href="/assets/js/1b2ed0ef.ea56948e.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
-<script src="/assets/js/styles.69143f42.js"></script>
-<script src="/assets/js/runtime~main.f2d98ad9.js"></script>
-<script src="/assets/js/main.f336ec98.js"></script>
-<script src="/assets/js/1.b21fad17.js"></script>
-<script src="/assets/js/2.c74b4887.js"></script>
-<script src="/assets/js/1be78505.d24880b0.js"></script>
-<script src="/assets/js/d73fca9b.100c8f68.js"></script>
-<script src="/assets/js/17896441.ab569ce4.js"></script>
-<script src="/assets/js/1b2ed0ef.fd13d6e7.js"></script>
+<script src="/assets/js/styles.bf547cb6.js"></script>
+<script src="/assets/js/runtime~main.cc8f64c2.js"></script>
+<script src="/assets/js/main.9d7dd60f.js"></script>
+<script src="/assets/js/1.3237074b.js"></script>
+<script src="/assets/js/2.e4d54c2b.js"></script>
+<script src="/assets/js/1be78505.a6852249.js"></script>
+<script src="/assets/js/d73fca9b.42acaf18.js"></script>
+<script src="/assets/js/17896441.e58bae36.js"></script>
+<script src="/assets/js/1b2ed0ef.ea56948e.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/dashboard/introduction/index.html b/docs/dashboard/introduction/index.html
index 674db19..5f4324f 100644
--- a/docs/dashboard/introduction/index.html
+++ b/docs/dashboard/introduction/index.html
@@ -11,27 +11,27 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Introduction | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs-do [...]
-<link rel="preload" href="/assets/js/styles.69143f42.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.f2d98ad9.js" as="script">
-<link rel="preload" href="/assets/js/main.f336ec98.js" as="script">
-<link rel="preload" href="/assets/js/1.b21fad17.js" as="script">
-<link rel="preload" href="/assets/js/2.c74b4887.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.d24880b0.js" as="script">
-<link rel="preload" href="/assets/js/f243156b.1561d1a4.js" as="script">
-<link rel="preload" href="/assets/js/17896441.ab569ce4.js" as="script">
-<link rel="preload" href="/assets/js/6f9b6084.6cf4e9dd.js" as="script">
+<link rel="preload" href="/assets/js/styles.bf547cb6.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.cc8f64c2.js" as="script">
+<link rel="preload" href="/assets/js/main.9d7dd60f.js" as="script">
+<link rel="preload" href="/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/assets/js/1be78505.a6852249.js" as="script">
+<link rel="preload" href="/assets/js/f243156b.8867e6e0.js" as="script">
+<link rel="preload" href="/assets/js/17896441.e58bae36.js" as="script">
+<link rel="preload" href="/assets/js/6f9b6084.0b37295d.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
-<script src="/assets/js/styles.69143f42.js"></script>
-<script src="/assets/js/runtime~main.f2d98ad9.js"></script>
-<script src="/assets/js/main.f336ec98.js"></script>
-<script src="/assets/js/1.b21fad17.js"></script>
-<script src="/assets/js/2.c74b4887.js"></script>
-<script src="/assets/js/1be78505.d24880b0.js"></script>
-<script src="/assets/js/f243156b.1561d1a4.js"></script>
-<script src="/assets/js/17896441.ab569ce4.js"></script>
-<script src="/assets/js/6f9b6084.6cf4e9dd.js"></script>
+<script src="/assets/js/styles.bf547cb6.js"></script>
+<script src="/assets/js/runtime~main.cc8f64c2.js"></script>
+<script src="/assets/js/main.9d7dd60f.js"></script>
+<script src="/assets/js/1.3237074b.js"></script>
+<script src="/assets/js/2.e4d54c2b.js"></script>
+<script src="/assets/js/1be78505.a6852249.js"></script>
+<script src="/assets/js/f243156b.8867e6e0.js"></script>
+<script src="/assets/js/17896441.e58bae36.js"></script>
+<script src="/assets/js/6f9b6084.0b37295d.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/general/2fa/index.html b/docs/general/2fa/index.html
index d7a2f62..c4a4fab 100644
--- a/docs/general/2fa/index.html
+++ b/docs/general/2fa/index.html
@@ -11,27 +11,27 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">2FA | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs-default-cur [...]
-<link rel="preload" href="/assets/js/styles.69143f42.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.f2d98ad9.js" as="script">
-<link rel="preload" href="/assets/js/main.f336ec98.js" as="script">
-<link rel="preload" href="/assets/js/1.b21fad17.js" as="script">
-<link rel="preload" href="/assets/js/2.c74b4887.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.d24880b0.js" as="script">
-<link rel="preload" href="/assets/js/935f2afb.66e0e7d2.js" as="script">
-<link rel="preload" href="/assets/js/17896441.ab569ce4.js" as="script">
-<link rel="preload" href="/assets/js/3dc9f306.05b19a54.js" as="script">
+<link rel="preload" href="/assets/js/styles.bf547cb6.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.cc8f64c2.js" as="script">
+<link rel="preload" href="/assets/js/main.9d7dd60f.js" as="script">
+<link rel="preload" href="/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/assets/js/1be78505.a6852249.js" as="script">
+<link rel="preload" href="/assets/js/935f2afb.04a89e4c.js" as="script">
+<link rel="preload" href="/assets/js/17896441.e58bae36.js" as="script">
+<link rel="preload" href="/assets/js/3dc9f306.2fd73ec2.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
-<script src="/assets/js/styles.69143f42.js"></script>
-<script src="/assets/js/runtime~main.f2d98ad9.js"></script>
-<script src="/assets/js/main.f336ec98.js"></script>
-<script src="/assets/js/1.b21fad17.js"></script>
-<script src="/assets/js/2.c74b4887.js"></script>
-<script src="/assets/js/1be78505.d24880b0.js"></script>
-<script src="/assets/js/935f2afb.66e0e7d2.js"></script>
-<script src="/assets/js/17896441.ab569ce4.js"></script>
-<script src="/assets/js/3dc9f306.05b19a54.js"></script>
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
+<script src="/assets/js/styles.bf547cb6.js"></script>
+<script src="/assets/js/runtime~main.cc8f64c2.js"></script>
+<script src="/assets/js/main.9d7dd60f.js"></script>
+<script src="/assets/js/1.3237074b.js"></script>
+<script src="/assets/js/2.e4d54c2b.js"></script>
+<script src="/assets/js/1be78505.a6852249.js"></script>
+<script src="/assets/js/935f2afb.04a89e4c.js"></script>
+<script src="/assets/js/17896441.e58bae36.js"></script>
+<script src="/assets/js/3dc9f306.2fd73ec2.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/general/committer-guide/index.html b/docs/general/committer-guide/index.html
index f5cf95d..d37e72a 100644
--- a/docs/general/committer-guide/index.html
+++ b/docs/general/committer-guide/index.html
@@ -11,27 +11,27 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link 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 Guide | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs [...]
-<link rel="preload" href="/assets/js/styles.69143f42.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.f2d98ad9.js" as="script">
-<link rel="preload" href="/assets/js/main.f336ec98.js" as="script">
-<link rel="preload" href="/assets/js/1.b21fad17.js" as="script">
-<link rel="preload" href="/assets/js/2.c74b4887.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.d24880b0.js" as="script">
-<link rel="preload" href="/assets/js/935f2afb.66e0e7d2.js" as="script">
-<link rel="preload" href="/assets/js/17896441.ab569ce4.js" as="script">
-<link rel="preload" href="/assets/js/8e784bf3.e49a8071.js" as="script">
+<link rel="preload" href="/assets/js/styles.bf547cb6.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.cc8f64c2.js" as="script">
+<link rel="preload" href="/assets/js/main.9d7dd60f.js" as="script">
+<link rel="preload" href="/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/assets/js/1be78505.a6852249.js" as="script">
+<link rel="preload" href="/assets/js/935f2afb.04a89e4c.js" as="script">
+<link rel="preload" href="/assets/js/17896441.e58bae36.js" as="script">
+<link rel="preload" href="/assets/js/8e784bf3.1b962dc5.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
-<script src="/assets/js/styles.69143f42.js"></script>
-<script src="/assets/js/runtime~main.f2d98ad9.js"></script>
-<script src="/assets/js/main.f336ec98.js"></script>
-<script src="/assets/js/1.b21fad17.js"></script>
-<script src="/assets/js/2.c74b4887.js"></script>
-<script src="/assets/js/1be78505.d24880b0.js"></script>
-<script src="/assets/js/935f2afb.66e0e7d2.js"></script>
-<script src="/assets/js/17896441.ab569ce4.js"></script>
-<script src="/assets/js/8e784bf3.e49a8071.js"></script>
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
+<script src="/assets/js/styles.bf547cb6.js"></script>
+<script src="/assets/js/runtime~main.cc8f64c2.js"></script>
+<script src="/assets/js/main.9d7dd60f.js"></script>
+<script src="/assets/js/1.3237074b.js"></script>
+<script src="/assets/js/2.e4d54c2b.js"></script>
+<script src="/assets/js/1be78505.a6852249.js"></script>
+<script src="/assets/js/935f2afb.04a89e4c.js"></script>
+<script src="/assets/js/17896441.e58bae36.js"></script>
+<script src="/assets/js/8e784bf3.1b962dc5.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/general/contributor-guide/index.html b/docs/general/contributor-guide/index.html
index cad7152..25d633b 100644
--- a/docs/general/contributor-guide/index.html
+++ b/docs/general/contributor-guide/index.html
@@ -11,27 +11,27 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Contributor Guide | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="do [...]
-<link rel="preload" href="/assets/js/styles.69143f42.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.f2d98ad9.js" as="script">
-<link rel="preload" href="/assets/js/main.f336ec98.js" as="script">
-<link rel="preload" href="/assets/js/1.b21fad17.js" as="script">
-<link rel="preload" href="/assets/js/2.c74b4887.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.d24880b0.js" as="script">
-<link rel="preload" href="/assets/js/935f2afb.66e0e7d2.js" as="script">
-<link rel="preload" href="/assets/js/17896441.ab569ce4.js" as="script">
-<link rel="preload" href="/assets/js/adbb350b.50fd5a49.js" as="script">
+<link rel="preload" href="/assets/js/styles.bf547cb6.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.cc8f64c2.js" as="script">
+<link rel="preload" href="/assets/js/main.9d7dd60f.js" as="script">
+<link rel="preload" href="/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/assets/js/1be78505.a6852249.js" as="script">
+<link rel="preload" href="/assets/js/935f2afb.04a89e4c.js" as="script">
+<link rel="preload" href="/assets/js/17896441.e58bae36.js" as="script">
+<link rel="preload" href="/assets/js/adbb350b.ed55eb96.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
-<script src="/assets/js/styles.69143f42.js"></script>
-<script src="/assets/js/runtime~main.f2d98ad9.js"></script>
-<script src="/assets/js/main.f336ec98.js"></script>
-<script src="/assets/js/1.b21fad17.js"></script>
-<script src="/assets/js/2.c74b4887.js"></script>
-<script src="/assets/js/1be78505.d24880b0.js"></script>
-<script src="/assets/js/935f2afb.66e0e7d2.js"></script>
-<script src="/assets/js/17896441.ab569ce4.js"></script>
-<script src="/assets/js/adbb350b.50fd5a49.js"></script>
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
+<script src="/assets/js/styles.bf547cb6.js"></script>
+<script src="/assets/js/runtime~main.cc8f64c2.js"></script>
+<script src="/assets/js/main.9d7dd60f.js"></script>
+<script src="/assets/js/1.3237074b.js"></script>
+<script src="/assets/js/2.e4d54c2b.js"></script>
+<script src="/assets/js/1be78505.a6852249.js"></script>
+<script src="/assets/js/935f2afb.04a89e4c.js"></script>
+<script src="/assets/js/17896441.e58bae36.js"></script>
+<script src="/assets/js/adbb350b.ed55eb96.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/general/release-guide/index.html b/docs/general/release-guide/index.html
index b926ca7..eab0ccf 100644
--- a/docs/general/release-guide/index.html
+++ b/docs/general/release-guide/index.html
@@ -11,15 +11,15 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Release Guide | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs-d [...]
-<link rel="preload" href="/assets/js/styles.69143f42.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.f2d98ad9.js" as="script">
-<link rel="preload" href="/assets/js/main.f336ec98.js" as="script">
-<link rel="preload" href="/assets/js/1.b21fad17.js" as="script">
-<link rel="preload" href="/assets/js/2.c74b4887.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.d24880b0.js" as="script">
-<link rel="preload" href="/assets/js/935f2afb.66e0e7d2.js" as="script">
-<link rel="preload" href="/assets/js/17896441.ab569ce4.js" as="script">
-<link rel="preload" href="/assets/js/7af3052c.8f843f82.js" as="script">
+<link rel="preload" href="/assets/js/styles.bf547cb6.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.cc8f64c2.js" as="script">
+<link rel="preload" href="/assets/js/main.9d7dd60f.js" as="script">
+<link rel="preload" href="/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/assets/js/1be78505.a6852249.js" as="script">
+<link rel="preload" href="/assets/js/935f2afb.04a89e4c.js" as="script">
+<link rel="preload" href="/assets/js/17896441.e58bae36.js" as="script">
+<link rel="preload" href="/assets/js/7af3052c.8522948c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -69,15 +69,15 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">The vote will be open for at least 72 hours or until necessary number of</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">votes are reached.</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Please vote accordingly:</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">[ ] +1 approve</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">[ ] +0 no opinion</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">[ ] -1 disapprove with the reason</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
-</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><h3><a aria-hidden="true" tabindex="-1" class="anchor enhancedAnchor_2LWZ" id="send-vote-result-thread-to-the-dev-mailing-list"></a>Send VOTE RESULT thread to the dev mailing list<a class="hash-link" href="#send-vote-result-thread-to-the-dev-mailing-list" title="Direct link to heading">#</a></h3><p>Click <a href="https://lists.apache.org/thread.html/r9153da7 [...]
-<script src="/assets/js/styles.69143f42.js"></script>
-<script src="/assets/js/runtime~main.f2d98ad9.js"></script>
-<script src="/assets/js/main.f336ec98.js"></script>
-<script src="/assets/js/1.b21fad17.js"></script>
-<script src="/assets/js/2.c74b4887.js"></script>
-<script src="/assets/js/1be78505.d24880b0.js"></script>
-<script src="/assets/js/935f2afb.66e0e7d2.js"></script>
-<script src="/assets/js/17896441.ab569ce4.js"></script>
-<script src="/assets/js/7af3052c.8f843f82.js"></script>
+</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><h3><a aria-hidden="true" tabindex="-1" class="anchor enhancedAnchor_2LWZ" id="send-vote-result-thread-to-the-dev-mailing-list"></a>Send VOTE RESULT thread to the dev mailing list<a class="hash-link" href="#send-vote-result-thread-to-the-dev-mailing-list" title="Direct link to heading">#</a></h3><p>Click <a href="https://lists.apache.org/thread.html/r9153da7 [...]
+<script src="/assets/js/styles.bf547cb6.js"></script>
+<script src="/assets/js/runtime~main.cc8f64c2.js"></script>
+<script src="/assets/js/main.9d7dd60f.js"></script>
+<script src="/assets/js/1.3237074b.js"></script>
+<script src="/assets/js/2.e4d54c2b.js"></script>
+<script src="/assets/js/1be78505.a6852249.js"></script>
+<script src="/assets/js/935f2afb.04a89e4c.js"></script>
+<script src="/assets/js/17896441.e58bae36.js"></script>
+<script src="/assets/js/7af3052c.8522948c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/general/security/index.html b/docs/general/security/index.html
index f0bc9ab..09d5a23 100644
--- a/docs/general/security/index.html
+++ b/docs/general/security/index.html
@@ -11,27 +11,27 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Security | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs-defaul [...]
-<link rel="preload" href="/assets/js/styles.69143f42.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.f2d98ad9.js" as="script">
-<link rel="preload" href="/assets/js/main.f336ec98.js" as="script">
-<link rel="preload" href="/assets/js/1.b21fad17.js" as="script">
-<link rel="preload" href="/assets/js/2.c74b4887.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.d24880b0.js" as="script">
-<link rel="preload" href="/assets/js/935f2afb.66e0e7d2.js" as="script">
-<link rel="preload" href="/assets/js/17896441.ab569ce4.js" as="script">
-<link rel="preload" href="/assets/js/66fbb9c2.049ddc86.js" as="script">
+<link rel="preload" href="/assets/js/styles.bf547cb6.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.cc8f64c2.js" as="script">
+<link rel="preload" href="/assets/js/main.9d7dd60f.js" as="script">
+<link rel="preload" href="/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/assets/js/1be78505.a6852249.js" as="script">
+<link rel="preload" href="/assets/js/935f2afb.04a89e4c.js" as="script">
+<link rel="preload" href="/assets/js/17896441.e58bae36.js" as="script">
+<link rel="preload" href="/assets/js/66fbb9c2.8a5f87c5.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
-<script src="/assets/js/styles.69143f42.js"></script>
-<script src="/assets/js/runtime~main.f2d98ad9.js"></script>
-<script src="/assets/js/main.f336ec98.js"></script>
-<script src="/assets/js/1.b21fad17.js"></script>
-<script src="/assets/js/2.c74b4887.js"></script>
-<script src="/assets/js/1be78505.d24880b0.js"></script>
-<script src="/assets/js/935f2afb.66e0e7d2.js"></script>
-<script src="/assets/js/17896441.ab569ce4.js"></script>
-<script src="/assets/js/66fbb9c2.049ddc86.js"></script>
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
+<script src="/assets/js/styles.bf547cb6.js"></script>
+<script src="/assets/js/runtime~main.cc8f64c2.js"></script>
+<script src="/assets/js/main.9d7dd60f.js"></script>
+<script src="/assets/js/1.3237074b.js"></script>
+<script src="/assets/js/2.e4d54c2b.js"></script>
+<script src="/assets/js/1be78505.a6852249.js"></script>
+<script src="/assets/js/935f2afb.04a89e4c.js"></script>
+<script src="/assets/js/17896441.e58bae36.js"></script>
+<script src="/assets/js/66fbb9c2.8a5f87c5.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/general/subscribe-guide/index.html b/docs/general/subscribe-guide/index.html
index 779633c..f060457 100644
--- a/docs/general/subscribe-guide/index.html
+++ b/docs/general/subscribe-guide/index.html
@@ -11,27 +11,27 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Subscribe Guide | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs [...]
-<link rel="preload" href="/assets/js/styles.69143f42.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.f2d98ad9.js" as="script">
-<link rel="preload" href="/assets/js/main.f336ec98.js" as="script">
-<link rel="preload" href="/assets/js/1.b21fad17.js" as="script">
-<link rel="preload" href="/assets/js/2.c74b4887.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.d24880b0.js" as="script">
-<link rel="preload" href="/assets/js/935f2afb.66e0e7d2.js" as="script">
-<link rel="preload" href="/assets/js/17896441.ab569ce4.js" as="script">
-<link rel="preload" href="/assets/js/50facf8e.5e31a885.js" as="script">
+<link rel="preload" href="/assets/js/styles.bf547cb6.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.cc8f64c2.js" as="script">
+<link rel="preload" href="/assets/js/main.9d7dd60f.js" as="script">
+<link rel="preload" href="/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/assets/js/1be78505.a6852249.js" as="script">
+<link rel="preload" href="/assets/js/935f2afb.04a89e4c.js" as="script">
+<link rel="preload" href="/assets/js/17896441.e58bae36.js" as="script">
+<link rel="preload" href="/assets/js/50facf8e.5be62c13.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
-<script src="/assets/js/styles.69143f42.js"></script>
-<script src="/assets/js/runtime~main.f2d98ad9.js"></script>
-<script src="/assets/js/main.f336ec98.js"></script>
-<script src="/assets/js/1.b21fad17.js"></script>
-<script src="/assets/js/2.c74b4887.js"></script>
-<script src="/assets/js/1be78505.d24880b0.js"></script>
-<script src="/assets/js/935f2afb.66e0e7d2.js"></script>
-<script src="/assets/js/17896441.ab569ce4.js"></script>
-<script src="/assets/js/50facf8e.5e31a885.js"></script>
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
+<script src="/assets/js/styles.bf547cb6.js"></script>
+<script src="/assets/js/runtime~main.cc8f64c2.js"></script>
+<script src="/assets/js/main.9d7dd60f.js"></script>
+<script src="/assets/js/1.3237074b.js"></script>
+<script src="/assets/js/2.e4d54c2b.js"></script>
+<script src="/assets/js/1be78505.a6852249.js"></script>
+<script src="/assets/js/935f2afb.04a89e4c.js"></script>
+<script src="/assets/js/17896441.e58bae36.js"></script>
+<script src="/assets/js/50facf8e.5be62c13.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/index.html b/docs/index.html
index a258527..c07f72d 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -11,23 +11,23 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link 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™</title><meta data-react-helmet="true" property="og:title" content="Apache APISIX™"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs"><meta data-react-helmet="true" name="docsearch:language" content="en">< [...]
-<link rel="preload" href="/assets/js/styles.69143f42.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.f2d98ad9.js" as="script">
-<link rel="preload" href="/assets/js/main.f336ec98.js" as="script">
-<link rel="preload" href="/assets/js/1.b21fad17.js" as="script">
-<link rel="preload" href="/assets/js/2.c74b4887.js" as="script">
-<link rel="preload" href="/assets/js/3.e5911a24.js" as="script">
-<link rel="preload" href="/assets/js/25b7c3f2.1e053d90.js" as="script">
+<link rel="preload" href="/assets/js/styles.bf547cb6.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.cc8f64c2.js" as="script">
+<link rel="preload" href="/assets/js/main.9d7dd60f.js" as="script">
+<link rel="preload" href="/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/assets/js/3.b8da59b5.js" as="script">
+<link rel="preload" href="/assets/js/25b7c3f2.b10b26ef.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
-<script src="/assets/js/styles.69143f42.js"></script>
-<script src="/assets/js/runtime~main.f2d98ad9.js"></script>
-<script src="/assets/js/main.f336ec98.js"></script>
-<script src="/assets/js/1.b21fad17.js"></script>
-<script src="/assets/js/2.c74b4887.js"></script>
-<script src="/assets/js/3.e5911a24.js"></script>
-<script src="/assets/js/25b7c3f2.1e053d90.js"></script>
+<script src="/assets/js/styles.bf547cb6.js"></script>
+<script src="/assets/js/runtime~main.cc8f64c2.js"></script>
+<script src="/assets/js/main.9d7dd60f.js"></script>
+<script src="/assets/js/1.3237074b.js"></script>
+<script src="/assets/js/2.e4d54c2b.js"></script>
+<script src="/assets/js/3.b8da59b5.js"></script>
+<script src="/assets/js/25b7c3f2.b10b26ef.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/ingress-controller/CRD-specification/index.html b/docs/ingress-controller/CRD-specification/index.html
new file mode 100644
index 0000000..4c98d9a
--- /dev/null
+++ b/docs/ingress-controller/CRD-specification/index.html
@@ -0,0 +1,55 @@
+<!doctype html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="robots" content="noindex, nofollow">
+<link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX™" href="/opensearch.xml">
+<link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">CRD-specification | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="do [...]
+<link rel="preload" href="/assets/js/styles.bf547cb6.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.cc8f64c2.js" as="script">
+<link rel="preload" href="/assets/js/main.9d7dd60f.js" as="script">
+<link rel="preload" href="/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/assets/js/1be78505.a6852249.js" as="script">
+<link rel="preload" href="/assets/js/b4a67526.4e6383ea.js" as="script">
+<link rel="preload" href="/assets/js/17896441.e58bae36.js" as="script">
+<link rel="preload" href="/assets/js/03b7a20f.e4a2d3d7.js" as="script">
+</head>
+<body>
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
+then loads and executes the corresponding plugin based on the matching result, and forwards the request to the specified Upstream.
+To learn more, please check the <a href="https://github.com/apache/apisix/blob/master/doc/architecture-design.md#route" target="_blank" rel="noopener noreferrer">Apache APISIX architecture-design docs</a>.</p><p>Structure example:</p><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style=" [...]
+load balancing, health check, retry, timeout parameters and etc.</p><p>Resort to <code>ApisixUpstream</code> and the Kubernetes Service, apisix ingress controller will generates the APISIX Upstream(s).
+To learn more, please check the <a href="https://github.com/apache/apisix/blob/master/doc/architecture-design.md#upstream" target="_blank" rel="noopener noreferrer">Apache APISIX architecture-design docs</a>.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor enhancedAnchor_2LWZ" id="configuring-load-balancer"></a>Configuring Load Balancer<a class="hash-link" href="#configuring-load-balancer" title="Direct link to heading">#</a></h3><p>A proper load balancing algorithm is required  [...]
+like the passive feedback capability.</p><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token key atrule">apiVersion</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> apisix.apache.org/v1</span></d [...]
+endpoints, once there are three consecutive requests with bad status code (one of <code>500</code>, <code>502</code>, <code>503</code>, <code>504</code>), the endpoint
+will be set to unhealthy and no requests can be routed there until it&#x27;s healthy again.</p><p>That&#x27;s why the active health checker comes in, endpoints might be down for a short while and ready again, the active health checker detects these unhealthy endpoints continuously, and pull them
+up once the healthy conditions are met (three consecutive requests got good status codes, e.g. <code>200</code> and <code>206</code>).</p><p>Note the active health checker is somewhat duplicated with the liveness/readiness probes but it&#x27;s required if the passive feedback mechanism is in use. So once you use the health check feature in ApisixUpstream,
+the active health checker is mandatory.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor enhancedAnchor_2LWZ" id="configuring-retry-and-timeout"></a>Configuring Retry and Timeout<a class="hash-link" href="#configuring-retry-and-timeout" title="Direct link to heading">#</a></h3><p>You may want the proxy to retry when requests occur faults like transient network errors
+or service unavailable, by default the retry count is <code>1</code>. You can change it by specifying the <code>retries</code> field.</p><p>The following configuration configures the <code>retries</code> to <code>3</code>, which indicates there&#x27;ll be at most <code>3</code> requests sent to
+Kubernetes service <code>httpbin</code>&#x27;s endpoints.</p><p>One should bear in mind that passing a request to the next endpoint is only possible
+if nothing has been sent to a client yet. That is, if an error or timeout occurs in the middle
+of the transferring of a response, fixing this is impossible.</p><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token key atrule">apiVersion</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> apisix [...]
+just change them in the <code>timeout</code> field.</p><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token key atrule">apiVersion</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> apisix.apache.or [...]
+In that case, you can create configurations for individual port.</p><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token key atrule">apiVersion</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> api [...]
+In the meanwhile, the ApisixUpstream <code>foo</code> sets <code>http</code> scheme for port <code>7000</code> and <code>grpc</code> scheme for <code>7001</code>
+(all ports are the service port). But both ports shares the load balancer configuration.</p><p><code>PortLevelSettings</code> is not mandatory if the service only exposes one port but is useful when multiple ports are defined.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor enhancedAnchor_2LWZ" id="configuration-references"></a>Configuration References<a class="hash-link" href="#configuration-references" title="Direct link to heading">#</a></h3><table><thead><tr><th>Field</th><t [...]
+To learn more, please check the <a href="https://github.com/apache/apisix/blob/master/doc/architecture-design.md#router" target="_blank" rel="noopener noreferrer">Apache APISIX architecture-design docs</a>.</p><p>Structure example:</p><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style= [...]
+<script src="/assets/js/styles.bf547cb6.js"></script>
+<script src="/assets/js/runtime~main.cc8f64c2.js"></script>
+<script src="/assets/js/main.9d7dd60f.js"></script>
+<script src="/assets/js/1.3237074b.js"></script>
+<script src="/assets/js/2.e4d54c2b.js"></script>
+<script src="/assets/js/1be78505.a6852249.js"></script>
+<script src="/assets/js/b4a67526.4e6383ea.js"></script>
+<script src="/assets/js/17896441.e58bae36.js"></script>
+<script src="/assets/js/03b7a20f.e4a2d3d7.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/ingress-controller/FAQ/index.html b/docs/ingress-controller/FAQ/index.html
new file mode 100644
index 0000000..6d0b214
--- /dev/null
+++ b/docs/ingress-controller/FAQ/index.html
@@ -0,0 +1,37 @@
+<!doctype html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="robots" content="noindex, nofollow">
+<link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX™" href="/opensearch.xml">
+<link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">FAQ | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs-docs-apisix [...]
+<link rel="preload" href="/assets/js/styles.bf547cb6.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.cc8f64c2.js" as="script">
+<link rel="preload" href="/assets/js/main.9d7dd60f.js" as="script">
+<link rel="preload" href="/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/assets/js/1be78505.a6852249.js" as="script">
+<link rel="preload" href="/assets/js/b4a67526.4e6383ea.js" as="script">
+<link rel="preload" href="/assets/js/17896441.e58bae36.js" as="script">
+<link rel="preload" href="/assets/js/9dc47d34.65945a6e.js" as="script">
+</head>
+<body>
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
+<script src="/assets/js/styles.bf547cb6.js"></script>
+<script src="/assets/js/runtime~main.cc8f64c2.js"></script>
+<script src="/assets/js/main.9d7dd60f.js"></script>
+<script src="/assets/js/1.3237074b.js"></script>
+<script src="/assets/js/2.e4d54c2b.js"></script>
+<script src="/assets/js/1be78505.a6852249.js"></script>
+<script src="/assets/js/b4a67526.4e6383ea.js"></script>
+<script src="/assets/js/17896441.e58bae36.js"></script>
+<script src="/assets/js/9dc47d34.65945a6e.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/ingress-controller/contribute/index.html b/docs/ingress-controller/contribute/index.html
new file mode 100644
index 0000000..aeda845
--- /dev/null
+++ b/docs/ingress-controller/contribute/index.html
@@ -0,0 +1,41 @@
+<!doctype html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="robots" content="noindex, nofollow">
+<link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX™" href="/opensearch.xml">
+<link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">contribute | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs-docs [...]
+<link rel="preload" href="/assets/js/styles.bf547cb6.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.cc8f64c2.js" as="script">
+<link rel="preload" href="/assets/js/main.9d7dd60f.js" as="script">
+<link rel="preload" href="/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/assets/js/1be78505.a6852249.js" as="script">
+<link rel="preload" href="/assets/js/b4a67526.4e6383ea.js" as="script">
+<link rel="preload" href="/assets/js/17896441.e58bae36.js" as="script">
+<link rel="preload" href="/assets/js/9c26c05d.2ea60543.js" as="script">
+</head>
+<body>
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
+pleasant first experience for you, and that you will return to continue
+contributing.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor enhancedAnchor_2LWZ" id="how-to-contribute"></a>How to contribute<a class="hash-link" href="#how-to-contribute" title="Direct link to heading">#</a></h2><p>Most of the contributions that we receive are code contributions, but you can
+also contribute to the documentation or simply report solid bugs
+for us to fix.</p><p> For new contributors, please take a look at issues with a tag called <a href="https://github.com/apache/apisix-ingress-controller/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22" target="_blank" rel="noopener noreferrer">Good first issue</a> or <a href="https://github.com/apache/apisix-ingress-controller/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22" target="_blank" rel="noopener noreferrer">Help wanted</a>.</p><h2><a aria-hidden="true" tabind [...]
+<script src="/assets/js/styles.bf547cb6.js"></script>
+<script src="/assets/js/runtime~main.cc8f64c2.js"></script>
+<script src="/assets/js/main.9d7dd60f.js"></script>
+<script src="/assets/js/1.3237074b.js"></script>
+<script src="/assets/js/2.e4d54c2b.js"></script>
+<script src="/assets/js/1be78505.a6852249.js"></script>
+<script src="/assets/js/b4a67526.4e6383ea.js"></script>
+<script src="/assets/js/17896441.e58bae36.js"></script>
+<script src="/assets/js/9c26c05d.2ea60543.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/ingress-controller/deployments/ack/index.html b/docs/ingress-controller/deployments/ack/index.html
new file mode 100644
index 0000000..3e813de
--- /dev/null
+++ b/docs/ingress-controller/deployments/ack/index.html
@@ -0,0 +1,37 @@
+<!doctype html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="robots" content="noindex, nofollow">
+<link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX™" href="/opensearch.xml">
+<link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">ack | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs-docs-apisix [...]
+<link rel="preload" href="/assets/js/styles.bf547cb6.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.cc8f64c2.js" as="script">
+<link rel="preload" href="/assets/js/main.9d7dd60f.js" as="script">
+<link rel="preload" href="/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/assets/js/1be78505.a6852249.js" as="script">
+<link rel="preload" href="/assets/js/b4a67526.4e6383ea.js" as="script">
+<link rel="preload" href="/assets/js/17896441.e58bae36.js" as="script">
+<link rel="preload" href="/assets/js/6967878f.e1ef4f0f.js" as="script">
+</head>
+<body>
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
+<script src="/assets/js/styles.bf547cb6.js"></script>
+<script src="/assets/js/runtime~main.cc8f64c2.js"></script>
+<script src="/assets/js/main.9d7dd60f.js"></script>
+<script src="/assets/js/1.3237074b.js"></script>
+<script src="/assets/js/2.e4d54c2b.js"></script>
+<script src="/assets/js/1be78505.a6852249.js"></script>
+<script src="/assets/js/b4a67526.4e6383ea.js"></script>
+<script src="/assets/js/17896441.e58bae36.js"></script>
+<script src="/assets/js/6967878f.e1ef4f0f.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/ingress-controller/deployments/aws/index.html b/docs/ingress-controller/deployments/aws/index.html
new file mode 100644
index 0000000..6b5087d
--- /dev/null
+++ b/docs/ingress-controller/deployments/aws/index.html
@@ -0,0 +1,37 @@
+<!doctype html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="robots" content="noindex, nofollow">
+<link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX™" href="/opensearch.xml">
+<link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">aws | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs-docs-apisix [...]
+<link rel="preload" href="/assets/js/styles.bf547cb6.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.cc8f64c2.js" as="script">
+<link rel="preload" href="/assets/js/main.9d7dd60f.js" as="script">
+<link rel="preload" href="/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/assets/js/1be78505.a6852249.js" as="script">
+<link rel="preload" href="/assets/js/b4a67526.4e6383ea.js" as="script">
+<link rel="preload" href="/assets/js/17896441.e58bae36.js" as="script">
+<link rel="preload" href="/assets/js/4e55a385.72fe71d9.js" as="script">
+</head>
+<body>
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
+<script src="/assets/js/styles.bf547cb6.js"></script>
+<script src="/assets/js/runtime~main.cc8f64c2.js"></script>
+<script src="/assets/js/main.9d7dd60f.js"></script>
+<script src="/assets/js/1.3237074b.js"></script>
+<script src="/assets/js/2.e4d54c2b.js"></script>
+<script src="/assets/js/1be78505.a6852249.js"></script>
+<script src="/assets/js/b4a67526.4e6383ea.js"></script>
+<script src="/assets/js/17896441.e58bae36.js"></script>
+<script src="/assets/js/4e55a385.72fe71d9.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/ingress-controller/deployments/azure/index.html b/docs/ingress-controller/deployments/azure/index.html
new file mode 100644
index 0000000..425e693
--- /dev/null
+++ b/docs/ingress-controller/deployments/azure/index.html
@@ -0,0 +1,37 @@
+<!doctype html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="robots" content="noindex, nofollow">
+<link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX™" href="/opensearch.xml">
+<link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">azure | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs-docs-apis [...]
+<link rel="preload" href="/assets/js/styles.bf547cb6.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.cc8f64c2.js" as="script">
+<link rel="preload" href="/assets/js/main.9d7dd60f.js" as="script">
+<link rel="preload" href="/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/assets/js/1be78505.a6852249.js" as="script">
+<link rel="preload" href="/assets/js/b4a67526.4e6383ea.js" as="script">
+<link rel="preload" href="/assets/js/17896441.e58bae36.js" as="script">
+<link rel="preload" href="/assets/js/f6cd6006.a5b31f3d.js" as="script">
+</head>
+<body>
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
+<script src="/assets/js/styles.bf547cb6.js"></script>
+<script src="/assets/js/runtime~main.cc8f64c2.js"></script>
+<script src="/assets/js/main.9d7dd60f.js"></script>
+<script src="/assets/js/1.3237074b.js"></script>
+<script src="/assets/js/2.e4d54c2b.js"></script>
+<script src="/assets/js/1be78505.a6852249.js"></script>
+<script src="/assets/js/b4a67526.4e6383ea.js"></script>
+<script src="/assets/js/17896441.e58bae36.js"></script>
+<script src="/assets/js/f6cd6006.a5b31f3d.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/ingress-controller/deployments/gke/index.html b/docs/ingress-controller/deployments/gke/index.html
new file mode 100644
index 0000000..75864c5
--- /dev/null
+++ b/docs/ingress-controller/deployments/gke/index.html
@@ -0,0 +1,37 @@
+<!doctype html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="robots" content="noindex, nofollow">
+<link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX™" href="/opensearch.xml">
+<link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">gke | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs-docs-apisix [...]
+<link rel="preload" href="/assets/js/styles.bf547cb6.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.cc8f64c2.js" as="script">
+<link rel="preload" href="/assets/js/main.9d7dd60f.js" as="script">
+<link rel="preload" href="/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/assets/js/1be78505.a6852249.js" as="script">
+<link rel="preload" href="/assets/js/b4a67526.4e6383ea.js" as="script">
+<link rel="preload" href="/assets/js/17896441.e58bae36.js" as="script">
+<link rel="preload" href="/assets/js/43aea6af.48c9c214.js" as="script">
+</head>
+<body>
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
+<script src="/assets/js/styles.bf547cb6.js"></script>
+<script src="/assets/js/runtime~main.cc8f64c2.js"></script>
+<script src="/assets/js/main.9d7dd60f.js"></script>
+<script src="/assets/js/1.3237074b.js"></script>
+<script src="/assets/js/2.e4d54c2b.js"></script>
+<script src="/assets/js/1be78505.a6852249.js"></script>
+<script src="/assets/js/b4a67526.4e6383ea.js"></script>
+<script src="/assets/js/17896441.e58bae36.js"></script>
+<script src="/assets/js/43aea6af.48c9c214.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/ingress-controller/deployments/k3s-rke/index.html b/docs/ingress-controller/deployments/k3s-rke/index.html
new file mode 100644
index 0000000..3c38123
--- /dev/null
+++ b/docs/ingress-controller/deployments/k3s-rke/index.html
@@ -0,0 +1,39 @@
+<!doctype html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="robots" content="noindex, nofollow">
+<link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX™" href="/opensearch.xml">
+<link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">k3s-rke | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs-docs-ap [...]
+<link rel="preload" href="/assets/js/styles.bf547cb6.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.cc8f64c2.js" as="script">
+<link rel="preload" href="/assets/js/main.9d7dd60f.js" as="script">
+<link rel="preload" href="/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/assets/js/1be78505.a6852249.js" as="script">
+<link rel="preload" href="/assets/js/b4a67526.4e6383ea.js" as="script">
+<link rel="preload" href="/assets/js/17896441.e58bae36.js" as="script">
+<link rel="preload" href="/assets/js/6f365930.72cde7c4.js" as="script">
+</head>
+<body>
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
+It&#x27;s a good choice to use Ingress APISIX as the north-south API gateway in K3S.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor enhancedAnchor_2LWZ" id="prerequisites"></a>Prerequisites<a class="hash-link" href="#prerequisites" title="Direct link to heading">#</a></h2><ul><li>Install <a href="https://rancher.com/docs/k3s/latest/en/installation/" target="_blank" rel="noopener noreferrer">K3S</a> or <a href="https://rancher.com/docs/rke/latest/en/installation/" target="_blank [...]
+If you are using K3S and you want to expose a <code>LoadBalancer</code> service, try to use <a href="https://github.com/k3s-io/klipper-lb" target="_blank" rel="noopener noreferrer">Klipper</a>.</p><p>Another thing should be concerned that the <code>allow.ipList</code> field should be customized according to the Pod CIDR settings(see <a href="https://rancher.com/docs/k3s/latest/en/installation/install-options/server-config/#networking" target="_blank" rel="noopener noreferrer">K3S</a> or  [...]
+<script src="/assets/js/styles.bf547cb6.js"></script>
+<script src="/assets/js/runtime~main.cc8f64c2.js"></script>
+<script src="/assets/js/main.9d7dd60f.js"></script>
+<script src="/assets/js/1.3237074b.js"></script>
+<script src="/assets/js/2.e4d54c2b.js"></script>
+<script src="/assets/js/1be78505.a6852249.js"></script>
+<script src="/assets/js/b4a67526.4e6383ea.js"></script>
+<script src="/assets/js/17896441.e58bae36.js"></script>
+<script src="/assets/js/6f365930.72cde7c4.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/ingress-controller/deployments/kubesphere/index.html b/docs/ingress-controller/deployments/kubesphere/index.html
new file mode 100644
index 0000000..f1f5a72
--- /dev/null
+++ b/docs/ingress-controller/deployments/kubesphere/index.html
@@ -0,0 +1,38 @@
+<!doctype html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="robots" content="noindex, nofollow">
+<link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX™" href="/opensearch.xml">
+<link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">kubesphere | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs-docs [...]
+<link rel="preload" href="/assets/js/styles.bf547cb6.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.cc8f64c2.js" as="script">
+<link rel="preload" href="/assets/js/main.9d7dd60f.js" as="script">
+<link rel="preload" href="/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/assets/js/1be78505.a6852249.js" as="script">
+<link rel="preload" href="/assets/js/b4a67526.4e6383ea.js" as="script">
+<link rel="preload" href="/assets/js/17896441.e58bae36.js" as="script">
+<link rel="preload" href="/assets/js/b58143c5.577446c7.js" as="script">
+</head>
+<body>
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
+If you want to expose a <code>LoadBalancer</code> service, try to use <a href="https://github.com/kubesphere/porter" target="_blank" rel="noopener noreferrer">Porter</a>.</p><p>Another thing that should be concerned that the <code>allow.ipList</code> field should be customized according to the Pod CIDR settings, so that the apisix-ingress-controller instances can access the APISIX instances (resources pushing).</p><h2><a aria-hidden="true" tabindex="-1" class="anchor enhancedAnchor_2LWZ" [...]
+<script src="/assets/js/styles.bf547cb6.js"></script>
+<script src="/assets/js/runtime~main.cc8f64c2.js"></script>
+<script src="/assets/js/main.9d7dd60f.js"></script>
+<script src="/assets/js/1.3237074b.js"></script>
+<script src="/assets/js/2.e4d54c2b.js"></script>
+<script src="/assets/js/1be78505.a6852249.js"></script>
+<script src="/assets/js/b4a67526.4e6383ea.js"></script>
+<script src="/assets/js/17896441.e58bae36.js"></script>
+<script src="/assets/js/b58143c5.577446c7.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/ingress-controller/deployments/minikube/index.html b/docs/ingress-controller/deployments/minikube/index.html
new file mode 100644
index 0000000..775dce3
--- /dev/null
+++ b/docs/ingress-controller/deployments/minikube/index.html
@@ -0,0 +1,37 @@
+<!doctype html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="robots" content="noindex, nofollow">
+<link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX™" href="/opensearch.xml">
+<link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">minikube | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs-docs-a [...]
+<link rel="preload" href="/assets/js/styles.bf547cb6.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.cc8f64c2.js" as="script">
+<link rel="preload" href="/assets/js/main.9d7dd60f.js" as="script">
+<link rel="preload" href="/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/assets/js/1be78505.a6852249.js" as="script">
+<link rel="preload" href="/assets/js/b4a67526.4e6383ea.js" as="script">
+<link rel="preload" href="/assets/js/17896441.e58bae36.js" as="script">
+<link rel="preload" href="/assets/js/93013804.abd54dc1.js" as="script">
+</head>
+<body>
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
+<script src="/assets/js/styles.bf547cb6.js"></script>
+<script src="/assets/js/runtime~main.cc8f64c2.js"></script>
+<script src="/assets/js/main.9d7dd60f.js"></script>
+<script src="/assets/js/1.3237074b.js"></script>
+<script src="/assets/js/2.e4d54c2b.js"></script>
+<script src="/assets/js/1be78505.a6852249.js"></script>
+<script src="/assets/js/b4a67526.4e6383ea.js"></script>
+<script src="/assets/js/17896441.e58bae36.js"></script>
+<script src="/assets/js/93013804.abd54dc1.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/ingress-controller/deployments/tke/index.html b/docs/ingress-controller/deployments/tke/index.html
new file mode 100644
index 0000000..00ffdaa
--- /dev/null
+++ b/docs/ingress-controller/deployments/tke/index.html
@@ -0,0 +1,37 @@
+<!doctype html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="robots" content="noindex, nofollow">
+<link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX™" href="/opensearch.xml">
+<link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">tke | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs-docs-apisix [...]
+<link rel="preload" href="/assets/js/styles.bf547cb6.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.cc8f64c2.js" as="script">
+<link rel="preload" href="/assets/js/main.9d7dd60f.js" as="script">
+<link rel="preload" href="/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/assets/js/1be78505.a6852249.js" as="script">
+<link rel="preload" href="/assets/js/b4a67526.4e6383ea.js" as="script">
+<link rel="preload" href="/assets/js/17896441.e58bae36.js" as="script">
+<link rel="preload" href="/assets/js/64288df6.ad151f74.js" as="script">
+</head>
+<body>
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
+<script src="/assets/js/styles.bf547cb6.js"></script>
+<script src="/assets/js/runtime~main.cc8f64c2.js"></script>
+<script src="/assets/js/main.9d7dd60f.js"></script>
+<script src="/assets/js/1.3237074b.js"></script>
+<script src="/assets/js/2.e4d54c2b.js"></script>
+<script src="/assets/js/1be78505.a6852249.js"></script>
+<script src="/assets/js/b4a67526.4e6383ea.js"></script>
+<script src="/assets/js/17896441.e58bae36.js"></script>
+<script src="/assets/js/64288df6.ad151f74.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/ingress-controller/design/index.html b/docs/ingress-controller/design/index.html
new file mode 100644
index 0000000..bdd8b7c
--- /dev/null
+++ b/docs/ingress-controller/design/index.html
@@ -0,0 +1,37 @@
+<!doctype html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="robots" content="noindex, nofollow">
+<link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX™" href="/opensearch.xml">
+<link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">design | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs-docs-api [...]
+<link rel="preload" href="/assets/js/styles.bf547cb6.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.cc8f64c2.js" as="script">
+<link rel="preload" href="/assets/js/main.9d7dd60f.js" as="script">
+<link rel="preload" href="/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/assets/js/1be78505.a6852249.js" as="script">
+<link rel="preload" href="/assets/js/b4a67526.4e6383ea.js" as="script">
+<link rel="preload" href="/assets/js/17896441.e58bae36.js" as="script">
+<link rel="preload" href="/assets/js/e60dd3b0.0e02eecb.js" as="script">
+</head>
+<body>
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
+<script src="/assets/js/styles.bf547cb6.js"></script>
+<script src="/assets/js/runtime~main.cc8f64c2.js"></script>
+<script src="/assets/js/main.9d7dd60f.js"></script>
+<script src="/assets/js/1.3237074b.js"></script>
+<script src="/assets/js/2.e4d54c2b.js"></script>
+<script src="/assets/js/1be78505.a6852249.js"></script>
+<script src="/assets/js/b4a67526.4e6383ea.js"></script>
+<script src="/assets/js/17896441.e58bae36.js"></script>
+<script src="/assets/js/e60dd3b0.0e02eecb.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/ingress-controller/development/index.html b/docs/ingress-controller/development/index.html
new file mode 100644
index 0000000..a136ddc
--- /dev/null
+++ b/docs/ingress-controller/development/index.html
@@ -0,0 +1,37 @@
+<!doctype html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="robots" content="noindex, nofollow">
+<link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX™" href="/opensearch.xml">
+<link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">development | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs-doc [...]
+<link rel="preload" href="/assets/js/styles.bf547cb6.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.cc8f64c2.js" as="script">
+<link rel="preload" href="/assets/js/main.9d7dd60f.js" as="script">
+<link rel="preload" href="/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/assets/js/1be78505.a6852249.js" as="script">
+<link rel="preload" href="/assets/js/b4a67526.4e6383ea.js" as="script">
+<link rel="preload" href="/assets/js/17896441.e58bae36.js" as="script">
+<link rel="preload" href="/assets/js/8e27d69a.6af737c6.js" as="script">
+</head>
+<body>
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
+<script src="/assets/js/styles.bf547cb6.js"></script>
+<script src="/assets/js/runtime~main.cc8f64c2.js"></script>
+<script src="/assets/js/main.9d7dd60f.js"></script>
+<script src="/assets/js/1.3237074b.js"></script>
+<script src="/assets/js/2.e4d54c2b.js"></script>
+<script src="/assets/js/1be78505.a6852249.js"></script>
+<script src="/assets/js/b4a67526.4e6383ea.js"></script>
+<script src="/assets/js/17896441.e58bae36.js"></script>
+<script src="/assets/js/8e27d69a.6af737c6.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/ingress-controller/introduction/index.html b/docs/ingress-controller/introduction/index.html
index caa7e54..cabf40b 100644
--- a/docs/ingress-controller/introduction/index.html
+++ b/docs/ingress-controller/introduction/index.html
@@ -11,27 +11,27 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Introduction | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs-do [...]
-<link rel="preload" href="/assets/js/styles.69143f42.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.f2d98ad9.js" as="script">
-<link rel="preload" href="/assets/js/main.f336ec98.js" as="script">
-<link rel="preload" href="/assets/js/1.b21fad17.js" as="script">
-<link rel="preload" href="/assets/js/2.c74b4887.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.d24880b0.js" as="script">
-<link rel="preload" href="/assets/js/b4a67526.6f6704ad.js" as="script">
-<link rel="preload" href="/assets/js/17896441.ab569ce4.js" as="script">
-<link rel="preload" href="/assets/js/30788500.5be7947f.js" as="script">
+<link rel="preload" href="/assets/js/styles.bf547cb6.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.cc8f64c2.js" as="script">
+<link rel="preload" href="/assets/js/main.9d7dd60f.js" as="script">
+<link rel="preload" href="/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/assets/js/1be78505.a6852249.js" as="script">
+<link rel="preload" href="/assets/js/b4a67526.4e6383ea.js" as="script">
+<link rel="preload" href="/assets/js/17896441.e58bae36.js" as="script">
+<link rel="preload" href="/assets/js/30788500.ba236561.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
-<script src="/assets/js/styles.69143f42.js"></script>
-<script src="/assets/js/runtime~main.f2d98ad9.js"></script>
-<script src="/assets/js/main.f336ec98.js"></script>
-<script src="/assets/js/1.b21fad17.js"></script>
-<script src="/assets/js/2.c74b4887.js"></script>
-<script src="/assets/js/1be78505.d24880b0.js"></script>
-<script src="/assets/js/b4a67526.6f6704ad.js"></script>
-<script src="/assets/js/17896441.ab569ce4.js"></script>
-<script src="/assets/js/30788500.5be7947f.js"></script>
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
+<script src="/assets/js/styles.bf547cb6.js"></script>
+<script src="/assets/js/runtime~main.cc8f64c2.js"></script>
+<script src="/assets/js/main.9d7dd60f.js"></script>
+<script src="/assets/js/1.3237074b.js"></script>
+<script src="/assets/js/2.e4d54c2b.js"></script>
+<script src="/assets/js/1be78505.a6852249.js"></script>
+<script src="/assets/js/b4a67526.4e6383ea.js"></script>
+<script src="/assets/js/17896441.e58bae36.js"></script>
+<script src="/assets/js/30788500.ba236561.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/ingress-controller/samples/index/index.html b/docs/ingress-controller/samples/index/index.html
new file mode 100644
index 0000000..a50bb12
--- /dev/null
+++ b/docs/ingress-controller/samples/index/index.html
@@ -0,0 +1,37 @@
+<!doctype html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="robots" content="noindex, nofollow">
+<link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX™" href="/opensearch.xml">
+<link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">index | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs-docs-apis [...]
+<link rel="preload" href="/assets/js/styles.bf547cb6.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.cc8f64c2.js" as="script">
+<link rel="preload" href="/assets/js/main.9d7dd60f.js" as="script">
+<link rel="preload" href="/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/assets/js/1be78505.a6852249.js" as="script">
+<link rel="preload" href="/assets/js/b4a67526.4e6383ea.js" as="script">
+<link rel="preload" href="/assets/js/17896441.e58bae36.js" as="script">
+<link rel="preload" href="/assets/js/33c9e5b3.fa2ee99d.js" as="script">
+</head>
+<body>
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
+<script src="/assets/js/styles.bf547cb6.js"></script>
+<script src="/assets/js/runtime~main.cc8f64c2.js"></script>
+<script src="/assets/js/main.9d7dd60f.js"></script>
+<script src="/assets/js/1.3237074b.js"></script>
+<script src="/assets/js/2.e4d54c2b.js"></script>
+<script src="/assets/js/1be78505.a6852249.js"></script>
+<script src="/assets/js/b4a67526.4e6383ea.js"></script>
+<script src="/assets/js/17896441.e58bae36.js"></script>
+<script src="/assets/js/33c9e5b3.fa2ee99d.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/ingress-controller/samples/proxy-the-httpbin-service-with-ingress/index.html b/docs/ingress-controller/samples/proxy-the-httpbin-service-with-ingress/index.html
new file mode 100644
index 0000000..b5187b7
--- /dev/null
+++ b/docs/ingress-controller/samples/proxy-the-httpbin-service-with-ingress/index.html
@@ -0,0 +1,39 @@
+<!doctype html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="robots" content="noindex, nofollow">
+<link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX™" href="/opensearch.xml">
+<link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">proxy-the-httpbin-service-with-ingress | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusa [...]
+<link rel="preload" href="/assets/js/styles.bf547cb6.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.cc8f64c2.js" as="script">
+<link rel="preload" href="/assets/js/main.9d7dd60f.js" as="script">
+<link rel="preload" href="/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/assets/js/1be78505.a6852249.js" as="script">
+<link rel="preload" href="/assets/js/b4a67526.4e6383ea.js" as="script">
+<link rel="preload" href="/assets/js/17896441.e58bae36.js" as="script">
+<link rel="preload" href="/assets/js/5971cb1d.4c69067e.js" as="script">
+</head>
+<body>
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># Use ingress.networking.k8s.io/v1beta1 if your Kubernetes cluster</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># version is older than v1.19.0.</span><span class= [...]
+Now try to create it.</p><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">kubectl apply -f httpbin-ingress.yaml</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></di [...]
+<script src="/assets/js/styles.bf547cb6.js"></script>
+<script src="/assets/js/runtime~main.cc8f64c2.js"></script>
+<script src="/assets/js/main.9d7dd60f.js"></script>
+<script src="/assets/js/1.3237074b.js"></script>
+<script src="/assets/js/2.e4d54c2b.js"></script>
+<script src="/assets/js/1be78505.a6852249.js"></script>
+<script src="/assets/js/b4a67526.4e6383ea.js"></script>
+<script src="/assets/js/17896441.e58bae36.js"></script>
+<script src="/assets/js/5971cb1d.4c69067e.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/ingress-controller/samples/proxy-the-httpbin-service/index.html b/docs/ingress-controller/samples/proxy-the-httpbin-service/index.html
new file mode 100644
index 0000000..258fafb
--- /dev/null
+++ b/docs/ingress-controller/samples/proxy-the-httpbin-service/index.html
@@ -0,0 +1,38 @@
+<!doctype html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="robots" content="noindex, nofollow">
+<link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX™" href="/opensearch.xml">
+<link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">proxy-the-httpbin-service | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" con [...]
+<link rel="preload" href="/assets/js/styles.bf547cb6.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.cc8f64c2.js" as="script">
+<link rel="preload" href="/assets/js/main.9d7dd60f.js" as="script">
+<link rel="preload" href="/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/assets/js/1be78505.a6852249.js" as="script">
+<link rel="preload" href="/assets/js/b4a67526.4e6383ea.js" as="script">
+<link rel="preload" href="/assets/js/17896441.e58bae36.js" as="script">
+<link rel="preload" href="/assets/js/941c758c.8297f47d.js" as="script">
+</head>
+<body>
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
+Now try to create it.</p><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">kubectl apply -f httpbin-route.yaml</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div> [...]
+<script src="/assets/js/styles.bf547cb6.js"></script>
+<script src="/assets/js/runtime~main.cc8f64c2.js"></script>
+<script src="/assets/js/main.9d7dd60f.js"></script>
+<script src="/assets/js/1.3237074b.js"></script>
+<script src="/assets/js/2.e4d54c2b.js"></script>
+<script src="/assets/js/1be78505.a6852249.js"></script>
+<script src="/assets/js/b4a67526.4e6383ea.js"></script>
+<script src="/assets/js/17896441.e58bae36.js"></script>
+<script src="/assets/js/941c758c.8297f47d.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/ingress-controller/usage/index.html b/docs/ingress-controller/usage/index.html
new file mode 100644
index 0000000..bff469e
--- /dev/null
+++ b/docs/ingress-controller/usage/index.html
@@ -0,0 +1,39 @@
+<!doctype html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="robots" content="noindex, nofollow">
+<link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX™" href="/opensearch.xml">
+<link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">usage | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs-docs-apis [...]
+<link rel="preload" href="/assets/js/styles.bf547cb6.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.cc8f64c2.js" as="script">
+<link rel="preload" href="/assets/js/main.9d7dd60f.js" as="script">
+<link rel="preload" href="/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/assets/js/1be78505.a6852249.js" as="script">
+<link rel="preload" href="/assets/js/b4a67526.4e6383ea.js" as="script">
+<link rel="preload" href="/assets/js/17896441.e58bae36.js" as="script">
+<link rel="preload" href="/assets/js/b123c67b.d341bb40.js" as="script">
+</head>
+<body>
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># 3. Define route: foo-route, id=3, binding service: foo-service</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> -XPUT http://127.0.0.1:9080/apisix/admin/routes/3 -H </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><span class="token plain"> -d </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;</span></div><d [...]
+<script src="/assets/js/styles.bf547cb6.js"></script>
+<script src="/assets/js/runtime~main.cc8f64c2.js"></script>
+<script src="/assets/js/main.9d7dd60f.js"></script>
+<script src="/assets/js/1.3237074b.js"></script>
+<script src="/assets/js/2.e4d54c2b.js"></script>
+<script src="/assets/js/1be78505.a6852249.js"></script>
+<script src="/assets/js/b4a67526.4e6383ea.js"></script>
+<script src="/assets/js/17896441.e58bae36.js"></script>
+<script src="/assets/js/b123c67b.d341bb40.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/downloads/ProjectCard/index.html b/downloads/ProjectCard/index.html
index 99db77e..753892c 100644
--- a/downloads/ProjectCard/index.html
+++ b/downloads/ProjectCard/index.html
@@ -11,21 +11,21 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true"></title><link rel="stylesheet" href="/assets/css/styles.68c2735f.css">
-<link rel="preload" href="/assets/js/styles.69143f42.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.f2d98ad9.js" as="script">
-<link rel="preload" href="/assets/js/main.f336ec98.js" as="script">
-<link rel="preload" href="/assets/js/3.e5911a24.js" as="script">
-<link rel="preload" href="/assets/js/98c69322.3d9a7897.js" as="script">
-<link rel="preload" href="/assets/js/47f8a22a.e97fe1a0.js" as="script">
+<link rel="preload" href="/assets/js/styles.bf547cb6.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.cc8f64c2.js" as="script">
+<link rel="preload" href="/assets/js/main.9d7dd60f.js" as="script">
+<link rel="preload" href="/assets/js/3.b8da59b5.js" as="script">
+<link rel="preload" href="/assets/js/98c69322.997e699b.js" as="script">
+<link rel="preload" href="/assets/js/47f8a22a.09ed66e0.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <div class="ProjectCard__Card-sc-12v8c3p-0 fUOFUE"><div class="ProjectCard__LeftSide-sc-12v8c3p-1 ewHYSJ"><a href="https://github.com/undefined" target="_blank" class="ProjectCard__Title-sc-12v8c3p-2 eXqIcO"><span class="ProjectCard__ShapeBeforeTitle-sc-12v8c3p-4 kjTfns"><svg aria-hidden="true" data-prefix="fas" data-icon="hexagon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512" class="hexagon_svg__svg-inline--fa hexagon_svg__fa-hexagon hexagon_svg__fa-w-18 hexagon_svg__fa-7x">< [...]
-<script src="/assets/js/styles.69143f42.js"></script>
-<script src="/assets/js/runtime~main.f2d98ad9.js"></script>
-<script src="/assets/js/main.f336ec98.js"></script>
-<script src="/assets/js/3.e5911a24.js"></script>
-<script src="/assets/js/98c69322.3d9a7897.js"></script>
-<script src="/assets/js/47f8a22a.e97fe1a0.js"></script>
+<script src="/assets/js/styles.bf547cb6.js"></script>
+<script src="/assets/js/runtime~main.cc8f64c2.js"></script>
+<script src="/assets/js/main.9d7dd60f.js"></script>
+<script src="/assets/js/3.b8da59b5.js"></script>
+<script src="/assets/js/98c69322.997e699b.js"></script>
+<script src="/assets/js/47f8a22a.09ed66e0.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/downloads/index.html b/downloads/index.html
index d3d0b0e..7cb6262 100644
--- a/downloads/index.html
+++ b/downloads/index.html
@@ -11,14 +11,14 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Apache APISIX™"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//downloads/"><meta data-react-helmet="true" name="docsearch:language" content= [...]
-<link rel="preload" href="/assets/js/styles.69143f42.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.f2d98ad9.js" as="script">
-<link rel="preload" href="/assets/js/main.f336ec98.js" as="script">
-<link rel="preload" href="/assets/js/1.b21fad17.js" as="script">
-<link rel="preload" href="/assets/js/2.c74b4887.js" as="script">
-<link rel="preload" href="/assets/js/3.e5911a24.js" as="script">
-<link rel="preload" href="/assets/js/98c69322.3d9a7897.js" as="script">
-<link rel="preload" href="/assets/js/47f8a22a.e97fe1a0.js" as="script">
+<link rel="preload" href="/assets/js/styles.bf547cb6.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.cc8f64c2.js" as="script">
+<link rel="preload" href="/assets/js/main.9d7dd60f.js" as="script">
+<link rel="preload" href="/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/assets/js/3.b8da59b5.js" as="script">
+<link rel="preload" href="/assets/js/98c69322.997e699b.js" as="script">
+<link rel="preload" href="/assets/js/47f8a22a.09ed66e0.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -26,13 +26,13 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"># or</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">pgp -ka KEYS</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div><br>To verify the binaries/sources you can download the relevant asc files for it from main distribution directory and follow the below guide.<div class="codeBlockContent_hGly"><di [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"># or</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">pgpv apache-apisix-********.asc</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"># or</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">pgp apache-apisix-********.asc</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div></div></div></div><footer class="footer"><div class="container"><div class="row footer__links"><div class="col footer__col"><h4 class="footer__title">ASF</h [...]
-<script src="/assets/js/styles.69143f42.js"></script>
-<script src="/assets/js/runtime~main.f2d98ad9.js"></script>
-<script src="/assets/js/main.f336ec98.js"></script>
-<script src="/assets/js/1.b21fad17.js"></script>
-<script src="/assets/js/2.c74b4887.js"></script>
-<script src="/assets/js/3.e5911a24.js"></script>
-<script src="/assets/js/98c69322.3d9a7897.js"></script>
-<script src="/assets/js/47f8a22a.e97fe1a0.js"></script>
+<script src="/assets/js/styles.bf547cb6.js"></script>
+<script src="/assets/js/runtime~main.cc8f64c2.js"></script>
+<script src="/assets/js/main.9d7dd60f.js"></script>
+<script src="/assets/js/1.3237074b.js"></script>
+<script src="/assets/js/2.e4d54c2b.js"></script>
+<script src="/assets/js/3.b8da59b5.js"></script>
+<script src="/assets/js/98c69322.997e699b.js"></script>
+<script src="/assets/js/47f8a22a.09ed66e0.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/events/2020/12/23/release-apache-apisix-ingress-controller-0.1.0/index.html b/events/2020/12/23/release-apache-apisix-ingress-controller-0.1.0/index.html
index f576f1c..1f2919f 100644
--- a/events/2020/12/23/release-apache-apisix-ingress-controller-0.1.0/index.html
+++ b/events/2020/12/23/release-apache-apisix-ingress-controller-0.1.0/index.html
@@ -11,27 +11,27 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link 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 Ingress Controller 0.1.0 | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Release Apache APISIX Ingress Controller 0.1.0 | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="This release mainly improve basic features, bugfix and adds test cases."><meta  [...]
-<link rel="preload" href="/assets/js/styles.69143f42.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.f2d98ad9.js" as="script">
-<link rel="preload" href="/assets/js/main.f336ec98.js" as="script">
-<link rel="preload" href="/assets/js/1.b21fad17.js" as="script">
-<link rel="preload" href="/assets/js/2.c74b4887.js" as="script">
-<link rel="preload" href="/assets/js/4.f867f6a9.js" as="script">
-<link rel="preload" href="/assets/js/ccc49370.938f9db4.js" as="script">
-<link rel="preload" href="/assets/js/f7488fe8.e624b827.js" as="script">
-<link rel="preload" href="/assets/js/12e5767f.2a3dfa9d.js" as="script">
+<link rel="preload" href="/assets/js/styles.bf547cb6.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.cc8f64c2.js" as="script">
+<link rel="preload" href="/assets/js/main.9d7dd60f.js" as="script">
+<link rel="preload" href="/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/assets/js/4.c30f7bca.js" as="script">
+<link rel="preload" href="/assets/js/ccc49370.b142e6b6.js" as="script">
+<link rel="preload" href="/assets/js/f7488fe8.115aa429.js" as="script">
+<link rel="preload" href="/assets/js/12e5767f.850d19de.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
-<script src="/assets/js/styles.69143f42.js"></script>
-<script src="/assets/js/runtime~main.f2d98ad9.js"></script>
-<script src="/assets/js/main.f336ec98.js"></script>
-<script src="/assets/js/1.b21fad17.js"></script>
-<script src="/assets/js/2.c74b4887.js"></script>
-<script src="/assets/js/4.f867f6a9.js"></script>
-<script src="/assets/js/ccc49370.938f9db4.js"></script>
-<script src="/assets/js/f7488fe8.e624b827.js"></script>
-<script src="/assets/js/12e5767f.2a3dfa9d.js"></script>
+<script src="/assets/js/styles.bf547cb6.js"></script>
+<script src="/assets/js/runtime~main.cc8f64c2.js"></script>
+<script src="/assets/js/main.9d7dd60f.js"></script>
+<script src="/assets/js/1.3237074b.js"></script>
+<script src="/assets/js/2.e4d54c2b.js"></script>
+<script src="/assets/js/4.c30f7bca.js"></script>
+<script src="/assets/js/ccc49370.b142e6b6.js"></script>
+<script src="/assets/js/f7488fe8.115aa429.js"></script>
+<script src="/assets/js/12e5767f.850d19de.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/events/2021/01/19/release-apache-apisix-ingress-controller-0.2.0/index.html b/events/2021/01/19/release-apache-apisix-ingress-controller-0.2.0/index.html
index 6e2434d..4aad682 100644
--- a/events/2021/01/19/release-apache-apisix-ingress-controller-0.2.0/index.html
+++ b/events/2021/01/19/release-apache-apisix-ingress-controller-0.2.0/index.html
@@ -11,27 +11,27 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link 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 Ingress Controller 0.2.0 | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Release Apache APISIX Ingress Controller 0.2.0 | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="This release mainly improve basic features, bugfix and adds test cases."><meta  [...]
-<link rel="preload" href="/assets/js/styles.69143f42.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.f2d98ad9.js" as="script">
-<link rel="preload" href="/assets/js/main.f336ec98.js" as="script">
-<link rel="preload" href="/assets/js/1.b21fad17.js" as="script">
-<link rel="preload" href="/assets/js/2.c74b4887.js" as="script">
-<link rel="preload" href="/assets/js/4.f867f6a9.js" as="script">
-<link rel="preload" href="/assets/js/ccc49370.938f9db4.js" as="script">
-<link rel="preload" href="/assets/js/f7488fe8.e624b827.js" as="script">
-<link rel="preload" href="/assets/js/4eed9ed2.f6cbdbbf.js" as="script">
+<link rel="preload" href="/assets/js/styles.bf547cb6.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.cc8f64c2.js" as="script">
+<link rel="preload" href="/assets/js/main.9d7dd60f.js" as="script">
+<link rel="preload" href="/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/assets/js/4.c30f7bca.js" as="script">
+<link rel="preload" href="/assets/js/ccc49370.b142e6b6.js" as="script">
+<link rel="preload" href="/assets/js/f7488fe8.115aa429.js" as="script">
+<link rel="preload" href="/assets/js/4eed9ed2.604b9b33.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
-<script src="/assets/js/styles.69143f42.js"></script>
-<script src="/assets/js/runtime~main.f2d98ad9.js"></script>
-<script src="/assets/js/main.f336ec98.js"></script>
-<script src="/assets/js/1.b21fad17.js"></script>
-<script src="/assets/js/2.c74b4887.js"></script>
-<script src="/assets/js/4.f867f6a9.js"></script>
-<script src="/assets/js/ccc49370.938f9db4.js"></script>
-<script src="/assets/js/f7488fe8.e624b827.js"></script>
-<script src="/assets/js/4eed9ed2.f6cbdbbf.js"></script>
+<script src="/assets/js/styles.bf547cb6.js"></script>
+<script src="/assets/js/runtime~main.cc8f64c2.js"></script>
+<script src="/assets/js/main.9d7dd60f.js"></script>
+<script src="/assets/js/1.3237074b.js"></script>
+<script src="/assets/js/2.e4d54c2b.js"></script>
+<script src="/assets/js/4.c30f7bca.js"></script>
+<script src="/assets/js/ccc49370.b142e6b6.js"></script>
+<script src="/assets/js/f7488fe8.115aa429.js"></script>
+<script src="/assets/js/4eed9ed2.604b9b33.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/events/2021/02/09/release-apache-apisix-2.3/index.html b/events/2021/02/09/release-apache-apisix-2.3/index.html
index 09a0c06..b2a6467 100644
--- a/events/2021/02/09/release-apache-apisix-2.3/index.html
+++ b/events/2021/02/09/release-apache-apisix-2.3/index.html
@@ -11,27 +11,27 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link 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.3 | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Release Apache APISIX 2.3 | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="Change"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" p [...]
-<link rel="preload" href="/assets/js/styles.69143f42.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.f2d98ad9.js" as="script">
-<link rel="preload" href="/assets/js/main.f336ec98.js" as="script">
-<link rel="preload" href="/assets/js/1.b21fad17.js" as="script">
-<link rel="preload" href="/assets/js/2.c74b4887.js" as="script">
-<link rel="preload" href="/assets/js/4.f867f6a9.js" as="script">
-<link rel="preload" href="/assets/js/ccc49370.938f9db4.js" as="script">
-<link rel="preload" href="/assets/js/f7488fe8.e624b827.js" as="script">
-<link rel="preload" href="/assets/js/41b4926b.b72ec77b.js" as="script">
+<link rel="preload" href="/assets/js/styles.bf547cb6.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.cc8f64c2.js" as="script">
+<link rel="preload" href="/assets/js/main.9d7dd60f.js" as="script">
+<link rel="preload" href="/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/assets/js/4.c30f7bca.js" as="script">
+<link rel="preload" href="/assets/js/ccc49370.b142e6b6.js" as="script">
+<link rel="preload" href="/assets/js/f7488fe8.115aa429.js" as="script">
+<link rel="preload" href="/assets/js/41b4926b.1ebfdec5.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
-<script src="/assets/js/styles.69143f42.js"></script>
-<script src="/assets/js/runtime~main.f2d98ad9.js"></script>
-<script src="/assets/js/main.f336ec98.js"></script>
-<script src="/assets/js/1.b21fad17.js"></script>
-<script src="/assets/js/2.c74b4887.js"></script>
-<script src="/assets/js/4.f867f6a9.js"></script>
-<script src="/assets/js/ccc49370.938f9db4.js"></script>
-<script src="/assets/js/f7488fe8.e624b827.js"></script>
-<script src="/assets/js/41b4926b.b72ec77b.js"></script>
+<script src="/assets/js/styles.bf547cb6.js"></script>
+<script src="/assets/js/runtime~main.cc8f64c2.js"></script>
+<script src="/assets/js/main.9d7dd60f.js"></script>
+<script src="/assets/js/1.3237074b.js"></script>
+<script src="/assets/js/2.e4d54c2b.js"></script>
+<script src="/assets/js/4.c30f7bca.js"></script>
+<script src="/assets/js/ccc49370.b142e6b6.js"></script>
+<script src="/assets/js/f7488fe8.115aa429.js"></script>
+<script src="/assets/js/41b4926b.1ebfdec5.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/events/2021/02/11/release-apache-apisix-ingress-controller-0.3.0/index.html b/events/2021/02/11/release-apache-apisix-ingress-controller-0.3.0/index.html
index a2adf9f..b87ad0c 100644
--- a/events/2021/02/11/release-apache-apisix-ingress-controller-0.3.0/index.html
+++ b/events/2021/02/11/release-apache-apisix-ingress-controller-0.3.0/index.html
@@ -11,27 +11,27 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link 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 Ingress Controller 0.3.0 | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Release Apache APISIX Ingress Controller 0.3.0 | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="This release mainly improves the program robustness and adds some features."><m [...]
-<link rel="preload" href="/assets/js/styles.69143f42.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.f2d98ad9.js" as="script">
-<link rel="preload" href="/assets/js/main.f336ec98.js" as="script">
-<link rel="preload" href="/assets/js/1.b21fad17.js" as="script">
-<link rel="preload" href="/assets/js/2.c74b4887.js" as="script">
-<link rel="preload" href="/assets/js/4.f867f6a9.js" as="script">
-<link rel="preload" href="/assets/js/ccc49370.938f9db4.js" as="script">
-<link rel="preload" href="/assets/js/f7488fe8.e624b827.js" as="script">
-<link rel="preload" href="/assets/js/1be5d2e8.0ab794df.js" as="script">
+<link rel="preload" href="/assets/js/styles.bf547cb6.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.cc8f64c2.js" as="script">
+<link rel="preload" href="/assets/js/main.9d7dd60f.js" as="script">
+<link rel="preload" href="/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/assets/js/4.c30f7bca.js" as="script">
+<link rel="preload" href="/assets/js/ccc49370.b142e6b6.js" as="script">
+<link rel="preload" href="/assets/js/f7488fe8.115aa429.js" as="script">
+<link rel="preload" href="/assets/js/1be5d2e8.28e9f8eb.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
-<script src="/assets/js/styles.69143f42.js"></script>
-<script src="/assets/js/runtime~main.f2d98ad9.js"></script>
-<script src="/assets/js/main.f336ec98.js"></script>
-<script src="/assets/js/1.b21fad17.js"></script>
-<script src="/assets/js/2.c74b4887.js"></script>
-<script src="/assets/js/4.f867f6a9.js"></script>
-<script src="/assets/js/ccc49370.938f9db4.js"></script>
-<script src="/assets/js/f7488fe8.e624b827.js"></script>
-<script src="/assets/js/1be5d2e8.0ab794df.js"></script>
+<script src="/assets/js/styles.bf547cb6.js"></script>
+<script src="/assets/js/runtime~main.cc8f64c2.js"></script>
+<script src="/assets/js/main.9d7dd60f.js"></script>
+<script src="/assets/js/1.3237074b.js"></script>
+<script src="/assets/js/2.e4d54c2b.js"></script>
+<script src="/assets/js/4.c30f7bca.js"></script>
+<script src="/assets/js/ccc49370.b142e6b6.js"></script>
+<script src="/assets/js/f7488fe8.115aa429.js"></script>
+<script src="/assets/js/1be5d2e8.28e9f8eb.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/events/2021/02/12/release-apache-apisix-dashboard-2.4/index.html b/events/2021/02/12/release-apache-apisix-dashboard-2.4/index.html
index bffc646..4dd30ad 100644
--- a/events/2021/02/12/release-apache-apisix-dashboard-2.4/index.html
+++ b/events/2021/02/12/release-apache-apisix-dashboard-2.4/index.html
@@ -11,27 +11,27 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link 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 Dashboard 2.4 | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Release Apache APISIX Dashboard 2.4 | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="This release mainly improves basic features, bugfix and adds test cases."><meta data-react-helmet="tr [...]
-<link rel="preload" href="/assets/js/styles.69143f42.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.f2d98ad9.js" as="script">
-<link rel="preload" href="/assets/js/main.f336ec98.js" as="script">
-<link rel="preload" href="/assets/js/1.b21fad17.js" as="script">
-<link rel="preload" href="/assets/js/2.c74b4887.js" as="script">
-<link rel="preload" href="/assets/js/4.f867f6a9.js" as="script">
-<link rel="preload" href="/assets/js/ccc49370.938f9db4.js" as="script">
-<link rel="preload" href="/assets/js/f7488fe8.e624b827.js" as="script">
-<link rel="preload" href="/assets/js/d4de91ec.5615c552.js" as="script">
+<link rel="preload" href="/assets/js/styles.bf547cb6.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.cc8f64c2.js" as="script">
+<link rel="preload" href="/assets/js/main.9d7dd60f.js" as="script">
+<link rel="preload" href="/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/assets/js/4.c30f7bca.js" as="script">
+<link rel="preload" href="/assets/js/ccc49370.b142e6b6.js" as="script">
+<link rel="preload" href="/assets/js/f7488fe8.115aa429.js" as="script">
+<link rel="preload" href="/assets/js/d4de91ec.5a94f2f3.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
-<script src="/assets/js/styles.69143f42.js"></script>
-<script src="/assets/js/runtime~main.f2d98ad9.js"></script>
-<script src="/assets/js/main.f336ec98.js"></script>
-<script src="/assets/js/1.b21fad17.js"></script>
-<script src="/assets/js/2.c74b4887.js"></script>
-<script src="/assets/js/4.f867f6a9.js"></script>
-<script src="/assets/js/ccc49370.938f9db4.js"></script>
-<script src="/assets/js/f7488fe8.e624b827.js"></script>
-<script src="/assets/js/d4de91ec.5615c552.js"></script>
+<script src="/assets/js/styles.bf547cb6.js"></script>
+<script src="/assets/js/runtime~main.cc8f64c2.js"></script>
+<script src="/assets/js/main.9d7dd60f.js"></script>
+<script src="/assets/js/1.3237074b.js"></script>
+<script src="/assets/js/2.e4d54c2b.js"></script>
+<script src="/assets/js/4.c30f7bca.js"></script>
+<script src="/assets/js/ccc49370.b142e6b6.js"></script>
+<script src="/assets/js/f7488fe8.115aa429.js"></script>
+<script src="/assets/js/d4de91ec.5a94f2f3.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/events/index.html b/events/index.html
index dee1330..f97d027 100644
--- a/events/index.html
+++ b/events/index.html
@@ -11,37 +11,37 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Blog | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Blog | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="Blog"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://apisix.apa [...]
-<link rel="preload" href="/assets/js/styles.69143f42.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.f2d98ad9.js" as="script">
-<link rel="preload" href="/assets/js/main.f336ec98.js" as="script">
-<link rel="preload" href="/assets/js/1.b21fad17.js" as="script">
-<link rel="preload" href="/assets/js/2.c74b4887.js" as="script">
-<link rel="preload" href="/assets/js/4.f867f6a9.js" as="script">
-<link rel="preload" href="/assets/js/a6aa9e1f.81639056.js" as="script">
-<link rel="preload" href="/assets/js/f7488fe8.e624b827.js" as="script">
-<link rel="preload" href="/assets/js/bacea567.58c33be1.js" as="script">
-<link rel="preload" href="/assets/js/c119cf3c.a240434d.js" as="script">
-<link rel="preload" href="/assets/js/17dc512b.570e01fe.js" as="script">
-<link rel="preload" href="/assets/js/c5594f1a.b73b27b8.js" as="script">
-<link rel="preload" href="/assets/js/fa919c95.8686a53b.js" as="script">
-<link rel="preload" href="/assets/js/574dc000.24d7bcfe.js" as="script">
+<link rel="preload" href="/assets/js/styles.bf547cb6.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.cc8f64c2.js" as="script">
+<link rel="preload" href="/assets/js/main.9d7dd60f.js" as="script">
+<link rel="preload" href="/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/assets/js/4.c30f7bca.js" as="script">
+<link rel="preload" href="/assets/js/a6aa9e1f.55e4f1e9.js" as="script">
+<link rel="preload" href="/assets/js/f7488fe8.115aa429.js" as="script">
+<link rel="preload" href="/assets/js/bacea567.52ee32ac.js" as="script">
+<link rel="preload" href="/assets/js/c119cf3c.342e02c4.js" as="script">
+<link rel="preload" href="/assets/js/17dc512b.86d51ee0.js" as="script">
+<link rel="preload" href="/assets/js/c5594f1a.9724dc93.js" as="script">
+<link rel="preload" href="/assets/js/fa919c95.629820e4.js" as="script">
+<link rel="preload" href="/assets/js/574dc000.3d3106e8.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
-<script src="/assets/js/styles.69143f42.js"></script>
-<script src="/assets/js/runtime~main.f2d98ad9.js"></script>
-<script src="/assets/js/main.f336ec98.js"></script>
-<script src="/assets/js/1.b21fad17.js"></script>
-<script src="/assets/js/2.c74b4887.js"></script>
-<script src="/assets/js/4.f867f6a9.js"></script>
-<script src="/assets/js/a6aa9e1f.81639056.js"></script>
-<script src="/assets/js/f7488fe8.e624b827.js"></script>
-<script src="/assets/js/bacea567.58c33be1.js"></script>
-<script src="/assets/js/c119cf3c.a240434d.js"></script>
-<script src="/assets/js/17dc512b.570e01fe.js"></script>
-<script src="/assets/js/c5594f1a.b73b27b8.js"></script>
-<script src="/assets/js/fa919c95.8686a53b.js"></script>
-<script src="/assets/js/574dc000.24d7bcfe.js"></script>
+<script src="/assets/js/styles.bf547cb6.js"></script>
+<script src="/assets/js/runtime~main.cc8f64c2.js"></script>
+<script src="/assets/js/main.9d7dd60f.js"></script>
+<script src="/assets/js/1.3237074b.js"></script>
+<script src="/assets/js/2.e4d54c2b.js"></script>
+<script src="/assets/js/4.c30f7bca.js"></script>
+<script src="/assets/js/a6aa9e1f.55e4f1e9.js"></script>
+<script src="/assets/js/f7488fe8.115aa429.js"></script>
+<script src="/assets/js/bacea567.52ee32ac.js"></script>
+<script src="/assets/js/c119cf3c.342e02c4.js"></script>
+<script src="/assets/js/17dc512b.86d51ee0.js"></script>
+<script src="/assets/js/c5594f1a.9724dc93.js"></script>
+<script src="/assets/js/fa919c95.629820e4.js"></script>
+<script src="/assets/js/574dc000.3d3106e8.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/help/index.html b/help/index.html
index 4a58aca..5771391 100644
--- a/help/index.html
+++ b/help/index.html
@@ -11,23 +11,23 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link 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™</title><meta data-react-helmet="true" property="og:title" content="Apache APISIX™"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//help"><meta data-react-helmet="true" name="docsearch:language" content="en">< [...]
-<link rel="preload" href="/assets/js/styles.69143f42.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.f2d98ad9.js" as="script">
-<link rel="preload" href="/assets/js/main.f336ec98.js" as="script">
-<link rel="preload" href="/assets/js/1.b21fad17.js" as="script">
-<link rel="preload" href="/assets/js/2.c74b4887.js" as="script">
-<link rel="preload" href="/assets/js/3.e5911a24.js" as="script">
-<link rel="preload" href="/assets/js/7e37206e.7992680e.js" as="script">
+<link rel="preload" href="/assets/js/styles.bf547cb6.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.cc8f64c2.js" as="script">
+<link rel="preload" href="/assets/js/main.9d7dd60f.js" as="script">
+<link rel="preload" href="/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/assets/js/3.b8da59b5.js" as="script">
+<link rel="preload" href="/assets/js/7e37206e.7f7bd448.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
-<script src="/assets/js/styles.69143f42.js"></script>
-<script src="/assets/js/runtime~main.f2d98ad9.js"></script>
-<script src="/assets/js/main.f336ec98.js"></script>
-<script src="/assets/js/1.b21fad17.js"></script>
-<script src="/assets/js/2.c74b4887.js"></script>
-<script src="/assets/js/3.e5911a24.js"></script>
-<script src="/assets/js/7e37206e.7992680e.js"></script>
+<script src="/assets/js/styles.bf547cb6.js"></script>
+<script src="/assets/js/runtime~main.cc8f64c2.js"></script>
+<script src="/assets/js/main.9d7dd60f.js"></script>
+<script src="/assets/js/1.3237074b.js"></script>
+<script src="/assets/js/2.e4d54c2b.js"></script>
+<script src="/assets/js/3.b8da59b5.js"></script>
+<script src="/assets/js/7e37206e.7f7bd448.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/index.html b/index.html
index bf06ec1..49f2b53 100644
--- a/index.html
+++ b/index.html
@@ -11,23 +11,23 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link 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™</title><meta data-react-helmet="true" property="og:title" content="Apache APISIX™"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta [...]
-<link rel="preload" href="/assets/js/styles.69143f42.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.f2d98ad9.js" as="script">
-<link rel="preload" href="/assets/js/main.f336ec98.js" as="script">
-<link rel="preload" href="/assets/js/1.b21fad17.js" as="script">
-<link rel="preload" href="/assets/js/2.c74b4887.js" as="script">
-<link rel="preload" href="/assets/js/59.654079dd.js" as="script">
-<link rel="preload" href="/assets/js/c4f5d8e4.a4d61c1b.js" as="script">
+<link rel="preload" href="/assets/js/styles.bf547cb6.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.cc8f64c2.js" as="script">
+<link rel="preload" href="/assets/js/main.9d7dd60f.js" as="script">
+<link rel="preload" href="/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/assets/js/76.0f6d1c85.js" as="script">
+<link rel="preload" href="/assets/js/c4f5d8e4.08af8182.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <div id="docusaurus-base-url-issue-banner-container"></div><nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title> [...]
-<script src="/assets/js/styles.69143f42.js"></script>
-<script src="/assets/js/runtime~main.f2d98ad9.js"></script>
-<script src="/assets/js/main.f336ec98.js"></script>
-<script src="/assets/js/1.b21fad17.js"></script>
-<script src="/assets/js/2.c74b4887.js"></script>
-<script src="/assets/js/59.654079dd.js"></script>
-<script src="/assets/js/c4f5d8e4.a4d61c1b.js"></script>
+<script src="/assets/js/styles.bf547cb6.js"></script>
+<script src="/assets/js/runtime~main.cc8f64c2.js"></script>
+<script src="/assets/js/main.9d7dd60f.js"></script>
+<script src="/assets/js/1.3237074b.js"></script>
+<script src="/assets/js/2.e4d54c2b.js"></script>
+<script src="/assets/js/76.0f6d1c85.js"></script>
+<script src="/assets/js/c4f5d8e4.08af8182.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/search/index.html b/search/index.html
index bdd5282..3c85662 100644
--- a/search/index.html
+++ b/search/index.html
@@ -11,21 +11,21 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Search the documentation | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Apache APISIX™"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//search"><meta data-react-helmet="true" name="docse [...]
-<link rel="preload" href="/assets/js/styles.69143f42.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.f2d98ad9.js" as="script">
-<link rel="preload" href="/assets/js/main.f336ec98.js" as="script">
-<link rel="preload" href="/assets/js/1.b21fad17.js" as="script">
-<link rel="preload" href="/assets/js/2.c74b4887.js" as="script">
-<link rel="preload" href="/assets/js/54.b7cce01d.js" as="script">
+<link rel="preload" href="/assets/js/styles.bf547cb6.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.cc8f64c2.js" as="script">
+<link rel="preload" href="/assets/js/main.9d7dd60f.js" as="script">
+<link rel="preload" href="/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/assets/js/71.349eb674.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
-<script src="/assets/js/styles.69143f42.js"></script>
-<script src="/assets/js/runtime~main.f2d98ad9.js"></script>
-<script src="/assets/js/main.f336ec98.js"></script>
-<script src="/assets/js/1.b21fad17.js"></script>
-<script src="/assets/js/2.c74b4887.js"></script>
-<script src="/assets/js/54.b7cce01d.js"></script>
+<script src="/assets/js/styles.bf547cb6.js"></script>
+<script src="/assets/js/runtime~main.cc8f64c2.js"></script>
+<script src="/assets/js/main.9d7dd60f.js"></script>
+<script src="/assets/js/1.3237074b.js"></script>
+<script src="/assets/js/2.e4d54c2b.js"></script>
+<script src="/assets/js/71.349eb674.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/sitemap.xml b/sitemap.xml
index ced1d92..5c1bdf1 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:mobile="http://www.google.com/schemas/sitemap-mobile/1.0" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://apisix.apache.org/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url> [...]
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:mobile="http://www.google.com/schemas/sitemap-mobile/1.0" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://apisix.apache.org/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url> [...]
\ No newline at end of file
diff --git a/team/index.html b/team/index.html
index f559d2c..92c0e04 100644
--- a/team/index.html
+++ b/team/index.html
@@ -11,23 +11,23 @@
 <link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link 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™</title><meta data-react-helmet="true" property="og:title" content="Apache APISIX™"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//team"><meta data-react-helmet="true" name="docsearch:language" content="en">< [...]
-<link rel="preload" href="/assets/js/styles.69143f42.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.f2d98ad9.js" as="script">
-<link rel="preload" href="/assets/js/main.f336ec98.js" as="script">
-<link rel="preload" href="/assets/js/1.b21fad17.js" as="script">
-<link rel="preload" href="/assets/js/2.c74b4887.js" as="script">
-<link rel="preload" href="/assets/js/3.e5911a24.js" as="script">
-<link rel="preload" href="/assets/js/859cc09f.fd7722bd.js" as="script">
+<link rel="preload" href="/assets/js/styles.bf547cb6.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.cc8f64c2.js" as="script">
+<link rel="preload" href="/assets/js/main.9d7dd60f.js" as="script">
+<link rel="preload" href="/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/assets/js/3.b8da59b5.js" as="script">
+<link rel="preload" href="/assets/js/859cc09f.073c77b1.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
-<script src="/assets/js/styles.69143f42.js"></script>
-<script src="/assets/js/runtime~main.f2d98ad9.js"></script>
-<script src="/assets/js/main.f336ec98.js"></script>
-<script src="/assets/js/1.b21fad17.js"></script>
-<script src="/assets/js/2.c74b4887.js"></script>
-<script src="/assets/js/3.e5911a24.js"></script>
-<script src="/assets/js/859cc09f.fd7722bd.js"></script>
+<script src="/assets/js/styles.bf547cb6.js"></script>
+<script src="/assets/js/runtime~main.cc8f64c2.js"></script>
+<script src="/assets/js/main.9d7dd60f.js"></script>
+<script src="/assets/js/1.3237074b.js"></script>
+<script src="/assets/js/2.e4d54c2b.js"></script>
+<script src="/assets/js/3.b8da59b5.js"></script>
+<script src="/assets/js/859cc09f.073c77b1.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh/404.html b/zh/404.html
index e60abb5..2c4e4d2 100644
--- a/zh/404.html
+++ b/zh/404.html
@@ -11,15 +11,15 @@
 <link rel="alternate" type="application/rss+xml" href="/zh/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Page Not Found | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Page Not Found | Apache APISIX™"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//zh/404.html"><meta data-react-helmet="true" [...]
-<link rel="preload" href="/zh/assets/js/styles.d25a02cf.js" as="script">
-<link rel="preload" href="/zh/assets/js/runtime~main.d3f78d59.js" as="script">
-<link rel="preload" href="/zh/assets/js/main.8ce1e08c.js" as="script">
+<link rel="preload" href="/zh/assets/js/styles.8ae08ebc.js" as="script">
+<link rel="preload" href="/zh/assets/js/runtime~main.0b5a1314.js" as="script">
+<link rel="preload" href="/zh/assets/js/main.0749e470.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
-<script src="/zh/assets/js/styles.d25a02cf.js"></script>
-<script src="/zh/assets/js/runtime~main.d3f78d59.js"></script>
-<script src="/zh/assets/js/main.8ce1e08c.js"></script>
+<script src="/zh/assets/js/styles.8ae08ebc.js"></script>
+<script src="/zh/assets/js/runtime~main.0b5a1314.js"></script>
+<script src="/zh/assets/js/main.0749e470.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh/assets/js/03b7a20f.3bf1c927.js b/zh/assets/js/03b7a20f.3bf1c927.js
new file mode 100644
index 0000000..d791a2f
--- /dev/null
+++ b/zh/assets/js/03b7a20f.3bf1c927.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[5],{142:function(e,t,n){"use strict";n.d(t,"a",(function(){return d})),n.d(t,"b",(function(){return m}));var a=n(0),r=n.n(a);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 l(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}))) [...]
\ No newline at end of file
diff --git a/zh/assets/js/1.b21fad17.js b/zh/assets/js/1.3237074b.js
similarity index 83%
rename from zh/assets/js/1.b21fad17.js
rename to zh/assets/js/1.3237074b.js
index 74d50e6..b933418 100644
--- a/zh/assets/js/1.b21fad17.js
+++ b/zh/assets/js/1.3237074b.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{126:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(158);Object.defineProperty(t,"useThemeConfig",{enumerable:!0,get:function(){return r.useThemeConfig}});var o=n(185);Object.defineProperty(t,"useAlternatePageUtils",{enumerable:!0,get:function(){return o.useAlternatePageUtils}});var i=n(186);Object.defineProperty(t,"docVersionSearchTag",{enumerable:!0,get:function(){return i.docVersionSearchTag [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{143:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(175);Object.defineProperty(t,"useThemeConfig",{enumerable:!0,get:function(){return r.useThemeConfig}});var o=n(202);Object.defineProperty(t,"useAlternatePageUtils",{enumerable:!0,get:function(){return o.useAlternatePageUtils}});var i=n(203);Object.defineProperty(t,"docVersionSearchTag",{enumerable:!0,get:function(){return i.docVersionSearchTag [...]
\ No newline at end of file
diff --git a/zh/assets/js/12e5767f.d61c8e43.js b/zh/assets/js/12e5767f.f2eec07d.js
similarity index 95%
rename from zh/assets/js/12e5767f.d61c8e43.js
rename to zh/assets/js/12e5767f.f2eec07d.js
index 6960bcb..00d7bd0 100644
--- a/zh/assets/js/12e5767f.d61c8e43.js
+++ b/zh/assets/js/12e5767f.f2eec07d.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[5],{125:function(e,t,r){"use strict";r.d(t,"a",(function(){return u})),r.d(t,"b",(function(){return h}));var n=r(0),a=r.n(n);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 l(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}))) [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{142:function(e,t,r){"use strict";r.d(t,"a",(function(){return u})),r.d(t,"b",(function(){return h}));var n=r(0),a=r.n(n);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 l(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}))) [...]
\ No newline at end of file
diff --git a/assets/js/17896441.ab569ce4.js b/zh/assets/js/17896441.e58bae36.js
similarity index 92%
rename from assets/js/17896441.ab569ce4.js
rename to zh/assets/js/17896441.e58bae36.js
index 07efa83..6ea3b57 100644
--- a/assets/js/17896441.ab569ce4.js
+++ b/zh/assets/js/17896441.e58bae36.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{120:function(e,t,a){"use strict";a.r(t);var n=a(0),l=a.n(n),r=a(24),c=a(126),i=a(17),o=a(132),m=a(128);var s=function(e){var t=e.metadata;return l.a.createElement("nav",{className:"pagination-nav","aria-label":"Blog list page navigation"},l.a.createElement("div",{className:"pagination-nav__item"},t.previous&&l.a.createElement(m.a,{className:"pagination-nav__link",to:t.previous.permalink},l.a.createElement("div",{className:"paginati [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{137:function(e,t,a){"use strict";a.r(t);var n=a(0),l=a.n(n),r=a(24),c=a(143),i=a(17),o=a(149),m=a(145);var s=function(e){var t=e.metadata;return l.a.createElement("nav",{className:"pagination-nav","aria-label":"Blog list page navigation"},l.a.createElement("div",{className:"pagination-nav__item"},t.previous&&l.a.createElement(m.a,{className:"pagination-nav__link",to:t.previous.permalink},l.a.createElement("div",{className:"paginati [...]
\ No newline at end of file
diff --git a/zh/assets/js/17dc512b.888d5c12.js b/zh/assets/js/17dc512b.9356f2ae.js
similarity index 92%
rename from zh/assets/js/17dc512b.888d5c12.js
rename to zh/assets/js/17dc512b.9356f2ae.js
index efd9ea8..0e88e32 100644
--- a/zh/assets/js/17dc512b.888d5c12.js
+++ b/zh/assets/js/17dc512b.9356f2ae.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{125:function(e,t,r){"use strict";r.d(t,"a",(function(){return s})),r.d(t,"b",(function(){return y}));var n=r(0),a=r.n(n);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}))) [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{142:function(e,t,r){"use strict";r.d(t,"a",(function(){return s})),r.d(t,"b",(function(){return y}));var n=r(0),a=r.n(n);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}))) [...]
\ No newline at end of file
diff --git a/zh/assets/js/1b2ed0ef.1ea9785f.js b/zh/assets/js/1b2ed0ef.30fe001f.js
similarity index 93%
rename from zh/assets/js/1b2ed0ef.1ea9785f.js
rename to zh/assets/js/1b2ed0ef.30fe001f.js
index c3884b5..0be4d1f 100644
--- a/zh/assets/js/1b2ed0ef.1ea9785f.js
+++ b/zh/assets/js/1b2ed0ef.30fe001f.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{125:function(e,t,n){"use strict";n.d(t,"a",(function(){return f})),n.d(t,"b",(function(){return m}));var r=n(0),o=n.n(r);function c(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}))) [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[9],{142:function(e,t,n){"use strict";n.d(t,"a",(function(){return f})),n.d(t,"b",(function(){return m}));var r=n(0),o=n.n(r);function c(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}))) [...]
\ No newline at end of file
diff --git a/zh/assets/js/1be5d2e8.8711092b.js b/zh/assets/js/1be5d2e8.8711092b.js
deleted file mode 100644
index b17e6ff..0000000
--- a/zh/assets/js/1be5d2e8.8711092b.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[9],{125:function(e,t,r){"use strict";r.d(t,"a",(function(){return u})),r.d(t,"b",(function(){return h}));var n=r(0),a=r.n(n);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 l(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}))) [...]
\ No newline at end of file
diff --git a/zh/assets/js/1be5d2e8.e89757e0.js b/zh/assets/js/1be5d2e8.e89757e0.js
new file mode 100644
index 0000000..11a0fb8
--- /dev/null
+++ b/zh/assets/js/1be5d2e8.e89757e0.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[10],{142:function(e,t,r){"use strict";r.d(t,"a",(function(){return u})),r.d(t,"b",(function(){return h}));var n=r(0),a=r.n(n);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 l(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})) [...]
\ No newline at end of file
diff --git a/zh/assets/js/1be78505.d24880b0.js b/zh/assets/js/1be78505.a6852249.js
similarity index 92%
rename from zh/assets/js/1be78505.d24880b0.js
rename to zh/assets/js/1be78505.a6852249.js
index 3d93535..16111fa 100644
--- a/zh/assets/js/1be78505.d24880b0.js
+++ b/zh/assets/js/1be78505.a6852249.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[10],{121:function(e,a,t){"use strict";t.r(a);var n=t(0),c=t.n(n),i=t(125),l=t(17),r=t(27),o=t(129),s=t(3),u=t(7),b=t(127),d=t(126),m=t(161),p=t(167),f=t(168),v=t(166),h=t(128),E=t(146),O=t(170),j=t(173),k=t(172),C=t(76),_=t.n(C),g=t(169);var N=function e(a,t){return"link"===a.type?Object(d.isSamePath)(a.href,t):"category"===a.type&&a.items.some((function(a){return e(a,t)}))};function I(e){var a,t,i,l=e.item,r=e.onItemClick,o=e.collapsi [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[11],{138:function(e,a,t){"use strict";t.r(a);var n=t(0),c=t.n(n),i=t(142),l=t(17),r=t(27),o=t(146),s=t(3),u=t(7),b=t(144),d=t(143),m=t(178),p=t(184),f=t(185),v=t(183),h=t(145),E=t(163),O=t(187),j=t(190),k=t(189),C=t(77),_=t.n(C),g=t(186);var N=function e(a,t){return"link"===a.type?Object(d.isSamePath)(a.href,t):"category"===a.type&&a.items.some((function(a){return e(a,t)}))};function I(e){var a,t,i,l=e.item,r=e.onItemClick,o=e.collapsi [...]
\ No newline at end of file
diff --git a/zh/assets/js/1c89ab3b.19ea93a0.js b/zh/assets/js/1c89ab3b.bd66ba2f.js
similarity index 98%
rename from zh/assets/js/1c89ab3b.19ea93a0.js
rename to zh/assets/js/1c89ab3b.bd66ba2f.js
index cb22810..7b97af6 100644
--- a/zh/assets/js/1c89ab3b.19ea93a0.js
+++ b/zh/assets/js/1c89ab3b.bd66ba2f.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[11],{125:function(e,t,a){"use strict";a.d(t,"a",(function(){return h})),a.d(t,"b",(function(){return m}));var n=a(0),r=a.n(n);function s(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})) [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[12],{142:function(e,t,a){"use strict";a.d(t,"a",(function(){return h})),a.d(t,"b",(function(){return m}));var n=a(0),r=a.n(n);function s(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})) [...]
\ No newline at end of file
diff --git a/zh/assets/js/2.c74b4887.js b/zh/assets/js/2.e4d54c2b.js
similarity index 91%
rename from zh/assets/js/2.c74b4887.js
rename to zh/assets/js/2.e4d54c2b.js
index 732bc1d..7e64d69 100644
--- a/zh/assets/js/2.c74b4887.js
+++ b/zh/assets/js/2.e4d54c2b.js
@@ -1,2 +1,2 @@
-/*! For license information please see 2.c74b4887.js.LICENSE.txt */
-(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{129:function(e,t,a){"use strict";var n=a(0),r=a.n(n),c=a(127),o=a(63),l=a.n(o);var i=function(){return r.a.createElement("nav",{"aria-label":"Skip navigation links"},r.a.createElement("button",{type:"button",tabIndex:0,className:l.a.skipToContent,onKeyDown:function(e){if(13===e.keyCode){document.activeElement.blur();var t=document.querySelector("main:first-of-type");t&&t.scrollIntoView()}}},"Skip to main content"))},s=a(126),u=a(16 [...]
\ No newline at end of file
+/*! For license information please see 2.e4d54c2b.js.LICENSE.txt */
+(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{146:function(e,t,a){"use strict";var n=a(0),r=a.n(n),c=a(144),o=a(63),l=a.n(o);var i=function(){return r.a.createElement("nav",{"aria-label":"Skip navigation links"},r.a.createElement("button",{type:"button",tabIndex:0,className:l.a.skipToContent,onKeyDown:function(e){if(13===e.keyCode){document.activeElement.blur();var t=document.querySelector("main:first-of-type");t&&t.scrollIntoView()}}},"Skip to main content"))},s=a(143),u=a(17 [...]
\ No newline at end of file
diff --git a/assets/js/2.c74b4887.js.LICENSE.txt b/zh/assets/js/2.e4d54c2b.js.LICENSE.txt
similarity index 100%
rename from assets/js/2.c74b4887.js.LICENSE.txt
rename to zh/assets/js/2.e4d54c2b.js.LICENSE.txt
diff --git a/zh/assets/js/25b7c3f2.1e053d90.js b/zh/assets/js/25b7c3f2.b10b26ef.js
similarity index 93%
rename from zh/assets/js/25b7c3f2.1e053d90.js
rename to zh/assets/js/25b7c3f2.b10b26ef.js
index 1756f2d..1d9608a 100644
--- a/zh/assets/js/25b7c3f2.1e053d90.js
+++ b/zh/assets/js/25b7c3f2.b10b26ef.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[12],{139:function(e,t,r){"use strict";var n=r(0);function a(){return(a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function i(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t) [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[13],{156:function(e,t,r){"use strict";var n=r(0);function a(){return(a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function i(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t) [...]
\ No newline at end of file
diff --git a/zh/assets/js/2d8fe9ee.fbf876c8.js b/zh/assets/js/2d8fe9ee.b9f3aac6.js
similarity index 87%
rename from zh/assets/js/2d8fe9ee.fbf876c8.js
rename to zh/assets/js/2d8fe9ee.b9f3aac6.js
index e8136a3..59f3c5e 100644
--- a/zh/assets/js/2d8fe9ee.fbf876c8.js
+++ b/zh/assets/js/2d8fe9ee.b9f3aac6.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[13],{80:function(e){e.exports=JSON.parse('{"title":"Recent posts","items":[{"title":"Stable Product Delivery with Cypress","permalink":"/zh/blog/2021/02/08/stable-product-delivery-with-cypress"},{"title":"Run Ingress APISIX on Amazon EKS","permalink":"/zh/blog/2021/01/21/run-ingress-apisix-on-amazon-eks"},{"title":"\u521d\u63a2 Kubernetes Service APIs","permalink":"/zh/blog/2020/12/18/a-first-look-at-kubernetes-service-api"},{"title":" [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[14],{81:function(e){e.exports=JSON.parse('{"title":"Recent posts","items":[{"title":"Stable Product Delivery with Cypress","permalink":"/zh/blog/2021/02/08/stable-product-delivery-with-cypress"},{"title":"Run Ingress APISIX on Amazon EKS","permalink":"/zh/blog/2021/01/21/run-ingress-apisix-on-amazon-eks"},{"title":"\u521d\u63a2 Kubernetes Service APIs","permalink":"/zh/blog/2020/12/18/a-first-look-at-kubernetes-service-api"},{"title":" [...]
\ No newline at end of file
diff --git a/assets/js/3.e5911a24.js b/zh/assets/js/3.b8da59b5.js
similarity index 98%
rename from assets/js/3.e5911a24.js
rename to zh/assets/js/3.b8da59b5.js
index a39d05b..83c4219 100644
--- a/assets/js/3.e5911a24.js
+++ b/zh/assets/js/3.b8da59b5.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{134:function(e,t,r){"use strict";(function(e){var n=r(26),i=r(0),a=r.n(i),o=r(202),s=r.n(o),c=r(203),l=r(204),u=r(218),h=r(29),f=r.n(h);function d(){return(d=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}var p=function(e,t){for(var r=[e[0]],n=0,i=t.length;n<i;n+=1)r.push(t[n],e[n+1]);return r},g [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{151:function(e,t,r){"use strict";(function(e){var n=r(26),i=r(0),a=r.n(i),o=r(219),s=r.n(o),c=r(220),l=r(221),u=r(235),h=r(29),f=r.n(h);function d(){return(d=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}var p=function(e,t){for(var r=[e[0]],n=0,i=t.length;n<i;n+=1)r.push(t[n],e[n+1]);return r},g [...]
\ No newline at end of file
diff --git a/zh/assets/js/30788500.8f19702c.js b/zh/assets/js/30788500.2a62b56a.js
similarity index 73%
rename from zh/assets/js/30788500.8f19702c.js
rename to zh/assets/js/30788500.2a62b56a.js
index 868562b..b6b51e1 100644
--- a/zh/assets/js/30788500.8f19702c.js
+++ b/zh/assets/js/30788500.2a62b56a.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[14],{125:function(e,n,t){"use strict";t.d(n,"a",(function(){return s})),t.d(n,"b",(function(){return m}));var r=t(0),o=t.n(r);function c(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})) [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[15],{142:function(e,n,t){"use strict";t.d(n,"a",(function(){return f})),t.d(n,"b",(function(){return m}));var r=t(0),o=t.n(r);function c(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})) [...]
\ No newline at end of file
diff --git a/zh/assets/js/33c9e5b3.b55b8b6d.js b/zh/assets/js/33c9e5b3.b55b8b6d.js
new file mode 100644
index 0000000..3bae5b1
--- /dev/null
+++ b/zh/assets/js/33c9e5b3.b55b8b6d.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[16],{142:function(e,r,t){"use strict";t.d(r,"a",(function(){return u})),t.d(r,"b",(function(){return m}));var n=t(0),o=t.n(n);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function i(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})) [...]
\ No newline at end of file
diff --git a/zh/assets/js/37e3b3ea.6fa5c709.js b/zh/assets/js/37e3b3ea.f690ecb9.js
similarity index 92%
rename from zh/assets/js/37e3b3ea.6fa5c709.js
rename to zh/assets/js/37e3b3ea.f690ecb9.js
index 2a83cab..e7fc2d7 100644
--- a/zh/assets/js/37e3b3ea.6fa5c709.js
+++ b/zh/assets/js/37e3b3ea.f690ecb9.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[15],{125:function(e,t,r){"use strict";r.d(t,"a",(function(){return l})),r.d(t,"b",(function(){return m}));var n=r(0),o=r.n(n);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})) [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[17],{142:function(e,t,r){"use strict";r.d(t,"a",(function(){return l})),r.d(t,"b",(function(){return m}));var n=r(0),o=r.n(n);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})) [...]
\ No newline at end of file
diff --git a/zh/assets/js/3a332aed.00986c3a.js b/zh/assets/js/3a332aed.f192c258.js
similarity index 73%
rename from zh/assets/js/3a332aed.00986c3a.js
rename to zh/assets/js/3a332aed.f192c258.js
index fb4d5a3..e2b2eb8 100644
--- a/zh/assets/js/3a332aed.00986c3a.js
+++ b/zh/assets/js/3a332aed.f192c258.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[16],{83:function(o){o.exports=JSON.parse('{"permalink":"/zh/blog","page":1,"postsPerPage":10,"totalPages":1,"totalCount":5,"previousPage":null,"nextPage":null,"blogDescription":"Blog","blogTitle":"Blog"}')}}]);
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[18],{85:function(o){o.exports=JSON.parse('{"permalink":"/zh/blog","page":1,"postsPerPage":10,"totalPages":1,"totalCount":5,"previousPage":null,"nextPage":null,"blogDescription":"Blog","blogTitle":"Blog"}')}}]);
\ No newline at end of file
diff --git a/zh/assets/js/3dc9f306.9d4a6d24.js b/zh/assets/js/3dc9f306.ab8af202.js
similarity index 51%
rename from zh/assets/js/3dc9f306.9d4a6d24.js
rename to zh/assets/js/3dc9f306.ab8af202.js
index 62658b8..d6e6e01 100644
--- a/zh/assets/js/3dc9f306.9d4a6d24.js
+++ b/zh/assets/js/3dc9f306.ab8af202.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[17],{125:function(e,t,n){"use strict";n.d(t,"a",(function(){return p})),n.d(t,"b",(function(){return b}));var r=n(0),o=n.n(r);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})) [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[19],{142:function(e,t,n){"use strict";n.d(t,"a",(function(){return p})),n.d(t,"b",(function(){return b}));var r=n(0),o=n.n(r);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})) [...]
\ No newline at end of file
diff --git a/zh/assets/js/4.a448f392.js b/zh/assets/js/4.02c38c66.js
similarity index 93%
rename from zh/assets/js/4.a448f392.js
rename to zh/assets/js/4.02c38c66.js
index c165b5e..068c3df 100644
--- a/zh/assets/js/4.a448f392.js
+++ b/zh/assets/js/4.02c38c66.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[4],{125:function(e,t,a){"use strict";a.d(t,"a",(function(){return m})),a.d(t,"b",(function(){return d}));var n=a(0),r=a.n(n);function o(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}))) [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[4],{142:function(e,t,a){"use strict";a.d(t,"a",(function(){return m})),a.d(t,"b",(function(){return d}));var n=a(0),r=a.n(n);function o(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}))) [...]
\ No newline at end of file
diff --git a/zh/assets/js/41b4926b.702246a9.js b/zh/assets/js/41b4926b.4289490b.js
similarity index 97%
rename from zh/assets/js/41b4926b.702246a9.js
rename to zh/assets/js/41b4926b.4289490b.js
index f7a5884..7cb934d 100644
--- a/zh/assets/js/41b4926b.702246a9.js
+++ b/zh/assets/js/41b4926b.4289490b.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[18],{125:function(e,t,a){"use strict";a.d(t,"a",(function(){return b})),a.d(t,"b",(function(){return m}));var r=a(0),i=a.n(r);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})) [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[20],{142:function(e,t,a){"use strict";a.d(t,"a",(function(){return b})),a.d(t,"b",(function(){return m}));var r=a(0),i=a.n(r);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})) [...]
\ No newline at end of file
diff --git a/zh/assets/js/43aea6af.5bc382da.js b/zh/assets/js/43aea6af.5bc382da.js
new file mode 100644
index 0000000..b2212a8
--- /dev/null
+++ b/zh/assets/js/43aea6af.5bc382da.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[21],{142:function(e,t,n){"use strict";n.d(t,"a",(function(){return u})),n.d(t,"b",(function(){return d}));var r=n(0),a=n.n(r);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 s(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})) [...]
\ No newline at end of file
diff --git a/zh/assets/js/47e0bf55.1e18a655.js b/zh/assets/js/47e0bf55.12d78c9c.js
similarity index 98%
rename from zh/assets/js/47e0bf55.1e18a655.js
rename to zh/assets/js/47e0bf55.12d78c9c.js
index 34b4237..7123e9e 100644
--- a/zh/assets/js/47e0bf55.1e18a655.js
+++ b/zh/assets/js/47e0bf55.12d78c9c.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[19],{125:function(e,t,n){"use strict";n.d(t,"a",(function(){return p})),n.d(t,"b",(function(){return d}));var a=n(0),r=n.n(a);function s(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})) [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[22],{142:function(e,t,n){"use strict";n.d(t,"a",(function(){return p})),n.d(t,"b",(function(){return d}));var a=n(0),r=n.n(a);function s(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})) [...]
\ No newline at end of file
diff --git a/zh/assets/js/47f8a22a.b9d7e773.js b/zh/assets/js/47f8a22a.24c3a77a.js
similarity index 95%
rename from zh/assets/js/47f8a22a.b9d7e773.js
rename to zh/assets/js/47f8a22a.24c3a77a.js
index 91055c3..45a3be2 100644
--- a/zh/assets/js/47f8a22a.b9d7e773.js
+++ b/zh/assets/js/47f8a22a.24c3a77a.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[20,34],{137:function(e,t,n){"use strict";const r=(e,{target:t=document.body}={})=>{const n=document.createElement("textarea"),r=document.activeElement;n.value=e,n.setAttribute("readonly",""),n.style.contain="strict",n.style.position="absolute",n.style.left="-9999px",n.style.fontSize="12pt";const a=document.getSelection();let o=!1;a.rangeCount>0&&(o=a.getRangeAt(0)),t.append(n),n.select(),n.selectionStart=0,n.selectionEnd=e.length;let i [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[23,45],{154:function(e,t,n){"use strict";const r=(e,{target:t=document.body}={})=>{const n=document.createElement("textarea"),r=document.activeElement;n.value=e,n.setAttribute("readonly",""),n.style.contain="strict",n.style.position="absolute",n.style.left="-9999px",n.style.fontSize="12pt";const a=document.getSelection();let o=!1;a.rangeCount>0&&(o=a.getRangeAt(0)),t.append(n),n.select(),n.selectionStart=0,n.selectionEnd=e.length;let i [...]
\ No newline at end of file
diff --git a/zh/assets/js/4e55a385.224b6088.js b/zh/assets/js/4e55a385.224b6088.js
new file mode 100644
index 0000000..11c5c1a
--- /dev/null
+++ b/zh/assets/js/4e55a385.224b6088.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[24],{142:function(e,t,n){"use strict";n.d(t,"a",(function(){return b})),n.d(t,"b",(function(){return m}));var a=n(0),r=n.n(a);function s(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})) [...]
\ No newline at end of file
diff --git a/zh/assets/js/4eed9ed2.6483805d.js b/zh/assets/js/4eed9ed2.b4732670.js
similarity index 95%
rename from zh/assets/js/4eed9ed2.6483805d.js
rename to zh/assets/js/4eed9ed2.b4732670.js
index 4650ad9..58abd65 100644
--- a/zh/assets/js/4eed9ed2.6483805d.js
+++ b/zh/assets/js/4eed9ed2.b4732670.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[21],{125:function(e,t,r){"use strict";r.d(t,"a",(function(){return u})),r.d(t,"b",(function(){return m}));var a=r(0),n=r.n(a);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 c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})) [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[25],{142:function(e,t,r){"use strict";r.d(t,"a",(function(){return u})),r.d(t,"b",(function(){return m}));var a=r(0),n=r.n(a);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 c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})) [...]
\ No newline at end of file
diff --git a/zh/assets/js/50facf8e.f2524bf0.js b/zh/assets/js/50facf8e.3be2ee6d.js
similarity index 56%
rename from zh/assets/js/50facf8e.f2524bf0.js
rename to zh/assets/js/50facf8e.3be2ee6d.js
index c1a05fa..9b857a4 100644
--- a/zh/assets/js/50facf8e.f2524bf0.js
+++ b/zh/assets/js/50facf8e.3be2ee6d.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[22],{125:function(e,t,r){"use strict";r.d(t,"a",(function(){return p})),r.d(t,"b",(function(){return d}));var n=r(0),i=r.n(n);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})) [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[26],{142:function(e,t,r){"use strict";r.d(t,"a",(function(){return p})),r.d(t,"b",(function(){return d}));var n=r(0),i=r.n(n);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})) [...]
\ No newline at end of file
diff --git a/zh/assets/js/514de2af.c87083ac.js b/zh/assets/js/514de2af.ddff589b.js
similarity index 98%
rename from zh/assets/js/514de2af.c87083ac.js
rename to zh/assets/js/514de2af.ddff589b.js
index 891bb4e..5cd29d2 100644
--- a/zh/assets/js/514de2af.c87083ac.js
+++ b/zh/assets/js/514de2af.ddff589b.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[23],{125:function(e,t,a){"use strict";a.d(t,"a",(function(){return h})),a.d(t,"b",(function(){return m}));var n=a(0),r=a.n(n);function s(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})) [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[27],{142:function(e,t,a){"use strict";a.d(t,"a",(function(){return h})),a.d(t,"b",(function(){return m}));var n=a(0),r=a.n(n);function s(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})) [...]
\ No newline at end of file
diff --git a/zh/assets/js/5971cb1d.bd68b8d9.js b/zh/assets/js/5971cb1d.bd68b8d9.js
new file mode 100644
index 0000000..e6c09d4
--- /dev/null
+++ b/zh/assets/js/5971cb1d.bd68b8d9.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[28],{142:function(e,t,n){"use strict";n.d(t,"a",(function(){return b})),n.d(t,"b",(function(){return d}));var r=n(0),i=n.n(r);function s(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})) [...]
\ No newline at end of file
diff --git a/zh/assets/js/5bb67ffc.5facfc0f.js b/zh/assets/js/5bb67ffc.6676bc64.js
similarity index 99%
rename from zh/assets/js/5bb67ffc.5facfc0f.js
rename to zh/assets/js/5bb67ffc.6676bc64.js
index 67bbe3e..0ffa808 100644
--- a/zh/assets/js/5bb67ffc.5facfc0f.js
+++ b/zh/assets/js/5bb67ffc.6676bc64.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[24],{125:function(e,t,r){"use strict";r.d(t,"a",(function(){return u})),r.d(t,"b",(function(){return m}));var a=r(0),n=r.n(a);function b(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})) [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[29],{142:function(e,t,r){"use strict";r.d(t,"a",(function(){return u})),r.d(t,"b",(function(){return m}));var a=r(0),n=r.n(a);function b(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})) [...]
\ No newline at end of file
diff --git a/zh/assets/js/64288df6.0b1a8e60.js b/zh/assets/js/64288df6.0b1a8e60.js
new file mode 100644
index 0000000..9d18ae3
--- /dev/null
+++ b/zh/assets/js/64288df6.0b1a8e60.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[30],{142:function(e,t,n){"use strict";n.d(t,"a",(function(){return u})),n.d(t,"b",(function(){return d}));var r=n(0),a=n.n(r);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 s(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})) [...]
\ No newline at end of file
diff --git a/zh/assets/js/66fbb9c2.3ba511fe.js b/zh/assets/js/66fbb9c2.ceb2996a.js
similarity index 63%
rename from zh/assets/js/66fbb9c2.3ba511fe.js
rename to zh/assets/js/66fbb9c2.ceb2996a.js
index 209eabe..9c8efc8 100644
--- a/zh/assets/js/66fbb9c2.3ba511fe.js
+++ b/zh/assets/js/66fbb9c2.ceb2996a.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[25],{125:function(e,t,r){"use strict";r.d(t,"a",(function(){return l})),r.d(t,"b",(function(){return f}));var n=r(0),a=r.n(n);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})) [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[31],{142:function(e,t,r){"use strict";r.d(t,"a",(function(){return l})),r.d(t,"b",(function(){return f}));var n=r(0),a=r.n(n);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})) [...]
\ No newline at end of file
diff --git a/zh/assets/js/6967878f.a631fe17.js b/zh/assets/js/6967878f.a631fe17.js
new file mode 100644
index 0000000..820ffcd
--- /dev/null
+++ b/zh/assets/js/6967878f.a631fe17.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[32],{142:function(e,t,n){"use strict";n.d(t,"a",(function(){return u})),n.d(t,"b",(function(){return d}));var a=n(0),r=n.n(a);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 s(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})) [...]
\ No newline at end of file
diff --git a/zh/assets/js/6f365930.2f46b0c6.js b/zh/assets/js/6f365930.2f46b0c6.js
new file mode 100644
index 0000000..c302407
--- /dev/null
+++ b/zh/assets/js/6f365930.2f46b0c6.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[33],{100:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return s})),n.d(t,"metadata",(function(){return o})),n.d(t,"toc",(function(){return c})),n.d(t,"default",(function(){return p}));var r=n(3),a=n(7),i=(n(0),n(142)),s={},o={unversionedId:"deployments/k3s-rke",id:"deployments/k3s-rke",isDocsHomePage:!1,title:"k3s-rke",description:"\x3c!--",source:"@site/docs/apisix-ingress-controller/deployments/k3s-rke.md",slug: [...]
\ No newline at end of file
diff --git a/zh/assets/js/6f9b6084.47c7a420.js b/zh/assets/js/6f9b6084.47c7a420.js
deleted file mode 100644
index e2d5eec..0000000
--- a/zh/assets/js/6f9b6084.47c7a420.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[26],{125:function(e,t,n){"use strict";n.d(t,"a",(function(){return f})),n.d(t,"b",(function(){return b}));var r=n(0),o=n.n(r);function c(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})) [...]
\ No newline at end of file
diff --git a/assets/js/1b2ed0ef.fd13d6e7.js b/zh/assets/js/6f9b6084.bbbc7524.js
similarity index 63%
rename from assets/js/1b2ed0ef.fd13d6e7.js
rename to zh/assets/js/6f9b6084.bbbc7524.js
index 1b863b0..52438c3 100644
--- a/assets/js/1b2ed0ef.fd13d6e7.js
+++ b/zh/assets/js/6f9b6084.bbbc7524.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{125:function(e,t,n){"use strict";n.d(t,"a",(function(){return f})),n.d(t,"b",(function(){return m}));var r=n(0),o=n.n(r);function c(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}))) [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[34],{101:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return i})),n.d(t,"metadata",(function(){return a})),n.d(t,"toc",(function(){return u})),n.d(t,"default",(function(){return l}));var r=n(3),o=n(7),c=(n(0),n(142)),i={id:"introduction",title:"Introduction"},a={unversionedId:"introduction",id:"introduction",isDocsHomePage:!1,title:"Introduction",description:"Coming Soon",source:"@site/docs/apisix-dashboard/intro [...]
\ No newline at end of file
diff --git a/assets/js/54.b7cce01d.js b/zh/assets/js/71.349eb674.js
similarity index 96%
rename from assets/js/54.b7cce01d.js
rename to zh/assets/js/71.349eb674.js
index ebe4aa6..29f3f7e 100644
--- a/assets/js/54.b7cce01d.js
+++ b/zh/assets/js/71.349eb674.js
@@ -1,2 +1,2 @@
-/*! For license information please see 54.b7cce01d.js.LICENSE.txt */
-(window.webpackJsonp=window.webpackJsonp||[]).push([[54],{114:function(e,t,n){"use strict";n.r(t);var r=n(0),i=n.n(r),a=n(217),s=n.n(a),c=n(206),u=n.n(c),o=n(127),f=n(24),h=n(128),l=n(11),m=n(126),d=n(17),v=n(130),p=n(163),g=n(129),y=n(115),R=n.n(y);var F=function(e){var t=e.docsSearchVersionsHelpers,n=Object.entries(t.allDocsData).filter((function(e){return e[1].versions.length>1}));return i.a.createElement("div",{className:Object(o.a)("col","col--3","padding-left--none",R.a.searchVersi [...]
\ No newline at end of file
+/*! For license information please see 71.349eb674.js.LICENSE.txt */
+(window.webpackJsonp=window.webpackJsonp||[]).push([[71],{130:function(e,t,n){"use strict";n.r(t);var r=n(0),i=n.n(r),a=n(234),s=n.n(a),c=n(223),u=n.n(c),o=n(144),f=n(24),h=n(145),l=n(11),m=n(143),d=n(17),v=n(147),p=n(180),g=n(146),y=n(131),R=n.n(y);var F=function(e){var t=e.docsSearchVersionsHelpers,n=Object.entries(t.allDocsData).filter((function(e){return e[1].versions.length>1}));return i.a.createElement("div",{className:Object(o.a)("col","col--3","padding-left--none",R.a.searchVersi [...]
\ No newline at end of file
diff --git a/assets/js/54.b7cce01d.js.LICENSE.txt b/zh/assets/js/71.349eb674.js.LICENSE.txt
similarity index 100%
rename from assets/js/54.b7cce01d.js.LICENSE.txt
rename to zh/assets/js/71.349eb674.js.LICENSE.txt
diff --git a/zh/assets/js/55.e6e1e1c1.js b/zh/assets/js/72.359b3048.js
similarity index 93%
rename from zh/assets/js/55.e6e1e1c1.js
rename to zh/assets/js/72.359b3048.js
index d8ab90c..085a044 100644
--- a/zh/assets/js/55.e6e1e1c1.js
+++ b/zh/assets/js/72.359b3048.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[55,58],{125:function(e,t,n){"use strict";n.d(t,"a",(function(){return p})),n.d(t,"b",(function(){return f}));var r=n(0),a=n.n(r);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 [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[72,75],{142:function(e,t,n){"use strict";n.d(t,"a",(function(){return p})),n.d(t,"b",(function(){return f}));var r=n(0),a=n.n(r);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 [...]
\ No newline at end of file
diff --git a/assets/js/56.56a582f4.js b/zh/assets/js/73.149af841.js
similarity index 99%
rename from assets/js/56.56a582f4.js
rename to zh/assets/js/73.149af841.js
index fbd33d3..5b13c47 100644
--- a/assets/js/56.56a582f4.js
+++ b/zh/assets/js/73.149af841.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[56],{225:function(e,t,r){"use strict";function n(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,n)}return r}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,r){var a=t.initialState;return{getState:func [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[73],{242:function(e,t,r){"use strict";function n(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,n)}return r}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,r){var a=t.initialState;return{getState:func [...]
\ No newline at end of file
diff --git a/zh/assets/js/57.ff9147f8.js b/zh/assets/js/74.6d6bc613.js
similarity index 62%
rename from zh/assets/js/57.ff9147f8.js
rename to zh/assets/js/74.6d6bc613.js
index e9d92f7..9e138f6 100644
--- a/zh/assets/js/57.ff9147f8.js
+++ b/zh/assets/js/74.6d6bc613.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[57],{224:function(n,i,o){"use strict";o.r(i);var r=o(62);for(var t in r)["default"].indexOf(t)<0&&function(n){o.d(i,n,(function(){return r[n]}))}(t)}}]);
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[74],{241:function(n,i,o){"use strict";o.r(i);var r=o(62);for(var t in r)["default"].indexOf(t)<0&&function(n){o.d(i,n,(function(){return r[n]}))}(t)}}]);
\ No newline at end of file
diff --git a/zh/assets/js/749ed826.21ee0429.js b/zh/assets/js/749ed826.21ee0429.js
deleted file mode 100644
index 6ebe813..0000000
--- a/zh/assets/js/749ed826.21ee0429.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[27],{125:function(e,t,n){"use strict";n.d(t,"a",(function(){return b})),n.d(t,"b",(function(){return m}));var a=n(0),r=n.n(a);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})) [...]
\ No newline at end of file
diff --git a/zh/assets/js/e02da2c5.2b498400.js b/zh/assets/js/749ed826.c7c49442.js
similarity index 98%
copy from zh/assets/js/e02da2c5.2b498400.js
copy to zh/assets/js/749ed826.c7c49442.js
index 8f80f0b..684209b 100644
--- a/zh/assets/js/e02da2c5.2b498400.js
+++ b/zh/assets/js/749ed826.c7c49442.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[47],{112:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return o})),n.d(t,"metadata",(function(){return l})),n.d(t,"toc",(function(){return c})),n.d(t,"default",(function(){return s}));var a=n(3),r=n(7),i=(n(0),n(125)),o={title:"Envoy and Apache APISIX: Another way to implement the Envoy filter",author:"nic-chen",authorURL:"https://github.com/nic-chen",authorImageURL:"https://avatars0.githubusercontent.com/u/330006 [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[35],{102:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return o})),n.d(t,"metadata",(function(){return l})),n.d(t,"toc",(function(){return c})),n.d(t,"default",(function(){return s}));var a=n(3),r=n(7),i=(n(0),n(142)),o={title:"Envoy and Apache APISIX: Another way to implement the Envoy filter",author:"nic-chen",authorURL:"https://github.com/nic-chen",authorImageURL:"https://avatars0.githubusercontent.com/u/330006 [...]
\ No newline at end of file
diff --git a/zh/assets/js/58.79cc1bdb.js b/zh/assets/js/75.f01d5ce7.js
similarity index 76%
rename from zh/assets/js/58.79cc1bdb.js
rename to zh/assets/js/75.f01d5ce7.js
index 87abaca..28e5bde 100644
--- a/zh/assets/js/58.79cc1bdb.js
+++ b/zh/assets/js/75.f01d5ce7.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[58],{157:function(e,t,a){"use strict";a.r(t);var n=a(0),o=a.n(n),l=a(129);t.default=function(){return o.a.createElement(l.a,{title:"Page Not Found"},o.a.createElement("main",{className:"container margin-vert--xl"},o.a.createElement("div",{className:"row"},o.a.createElement("div",{className:"col col--6 col--offset-3"},o.a.createElement("h1",{className:"hero__title"},"Page Not Found"),o.a.createElement("p",null,"We could not find what yo [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[75],{174:function(e,t,a){"use strict";a.r(t);var n=a(0),o=a.n(n),l=a(146);t.default=function(){return o.a.createElement(l.a,{title:"Page Not Found"},o.a.createElement("main",{className:"container margin-vert--xl"},o.a.createElement("div",{className:"row"},o.a.createElement("div",{className:"col col--6 col--offset-3"},o.a.createElement("h1",{className:"hero__title"},"Page Not Found"),o.a.createElement("p",null,"We could not find what yo [...]
\ No newline at end of file
diff --git a/zh/assets/js/59.654079dd.js b/zh/assets/js/76.0f6d1c85.js
similarity index 98%
rename from zh/assets/js/59.654079dd.js
rename to zh/assets/js/76.0f6d1c85.js
index c83c172..6d2c252 100644
--- a/zh/assets/js/59.654079dd.js
+++ b/zh/assets/js/76.0f6d1c85.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[59],{226:function(t,e,n){"use strict";var s=n(3),a=n(7),i=n(4);n(1);function o(t,e){return t.replace(new RegExp("(^|\\s)"+e+"(?:\\s|$)","g"),"$1").replace(/\s+/g," ").replace(/^\s*|\s*$/g,"")}var r=n(0),p=n.n(r),l=n(25),u=n.n(l),c=!1,d=p.a.createContext(null),E="unmounted",f="exited",h="entering",x="entered",m="exiting",v=function(t){function e(e,n){var s;s=t.call(this,e,n)||this;var a,i=n&&!n.isMounting?e.enter:e.appear;return s.appea [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[76],{243:function(t,e,n){"use strict";var s=n(3),a=n(7),i=n(4);n(1);function o(t,e){return t.replace(new RegExp("(^|\\s)"+e+"(?:\\s|$)","g"),"$1").replace(/\s+/g," ").replace(/^\s*|\s*$/g,"")}var r=n(0),p=n.n(r),l=n(25),u=n.n(l),c=!1,d=p.a.createContext(null),E="unmounted",f="exited",h="entering",x="entered",m="exiting",v=function(t){function e(e,n){var s;s=t.call(this,e,n)||this;var a,i=n&&!n.isMounting?e.enter:e.appear;return s.appea [...]
\ No newline at end of file
diff --git a/zh/assets/js/7af3052c.38082a70.js b/zh/assets/js/7af3052c.38082a70.js
deleted file mode 100644
index 2fef928..0000000
--- a/zh/assets/js/7af3052c.38082a70.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[28],{125:function(e,a,t){"use strict";t.d(a,"a",(function(){return d})),t.d(a,"b",(function(){return u}));var n=t(0),i=t.n(n);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 s(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})) [...]
\ No newline at end of file
diff --git a/zh/assets/js/7af3052c.4a3e2915.js b/zh/assets/js/7af3052c.4a3e2915.js
new file mode 100644
index 0000000..55cff9a
--- /dev/null
+++ b/zh/assets/js/7af3052c.4a3e2915.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[36],{103:function(e,a,t){"use strict";t.r(a),t.d(a,"frontMatter",(function(){return s})),t.d(a,"metadata",(function(){return o})),t.d(a,"toc",(function(){return l})),t.d(a,"default",(function(){return p}));var n=t(3),i=t(7),r=(t(0),t(142)),s={id:"release-guide",title:"Release Guide"},o={unversionedId:"release-guide",id:"release-guide",isDocsHomePage:!1,title:"Release Guide",description:"Release Flow",source:"@site/docs/general/release- [...]
\ No newline at end of file
diff --git a/zh/assets/js/7e37206e.7992680e.js b/zh/assets/js/7e37206e.7992680e.js
deleted file mode 100644
index 9a5568e..0000000
--- a/zh/assets/js/7e37206e.7992680e.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[29],{150:function(e,t,a){"use strict";var n=a(0);function r(){return(r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e}).apply(this,arguments)}function i(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},i=Object.keys(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t) [...]
\ No newline at end of file
diff --git a/zh/assets/js/7e37206e.7f7bd448.js b/zh/assets/js/7e37206e.7f7bd448.js
new file mode 100644
index 0000000..4606f39
--- /dev/null
+++ b/zh/assets/js/7e37206e.7f7bd448.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[37],{104:function(e,t,a){"use strict";a.r(t);var n=a(0),r=a.n(n),i=a(151),l=a(146),c=a(167),o=i.a.h1.withConfig({displayName:"help__PageTitle",componentId:"sc-1evwiii-0"})(["margin-top:2rem;font-size:3rem;font-weight:800;"]),s=i.a.div.withConfig({displayName:"help__PageSubtitle",componentId:"sc-1evwiii-1"})(["margin-bottom:3rem;"]),m=i.a.div.withConfig({displayName:"help__Page",componentId:"sc-1evwiii-2"})(["max-width:var(--ifm-contain [...]
\ No newline at end of file
diff --git a/zh/assets/js/7ecc8185.2402dced.js b/zh/assets/js/7ecc8185.2402dced.js
deleted file mode 100644
index 4bebc90..0000000
--- a/zh/assets/js/7ecc8185.2402dced.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[30],{97:function(e){e.exports=JSON.parse('{"permalink":"/zh/events","page":1,"postsPerPage":10,"totalPages":1,"totalCount":5,"previousPage":null,"nextPage":null,"blogDescription":"Blog","blogTitle":"Blog"}')}}]);
\ No newline at end of file
diff --git a/zh/assets/js/7ecc8185.4b05f8f4.js b/zh/assets/js/7ecc8185.4b05f8f4.js
new file mode 100644
index 0000000..562205d
--- /dev/null
+++ b/zh/assets/js/7ecc8185.4b05f8f4.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[38],{105:function(e){e.exports=JSON.parse('{"permalink":"/zh/events","page":1,"postsPerPage":10,"totalPages":1,"totalCount":5,"previousPage":null,"nextPage":null,"blogDescription":"Blog","blogTitle":"Blog"}')}}]);
\ No newline at end of file
diff --git a/assets/js/859cc09f.fd7722bd.js b/zh/assets/js/859cc09f.2f8c75cd.js
similarity index 96%
rename from assets/js/859cc09f.fd7722bd.js
rename to zh/assets/js/859cc09f.2f8c75cd.js
index 6d711f3..ee1dcb4 100644
--- a/assets/js/859cc09f.fd7722bd.js
+++ b/zh/assets/js/859cc09f.2f8c75cd.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[30],{119:function(e,t,r){"use strict";r.r(t);var n=r(0),a=r.n(n),o=r(134),i=r(129),l=r(17),c=r(151);function p(){return(p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function m(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++ [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[39],{136:function(e,t,r){"use strict";r.r(t);var n=r(0),a=r.n(n),o=r(151),i=r(146),l=r(17),c=r(168);function p(){return(p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function m(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++ [...]
\ No newline at end of file
diff --git a/zh/assets/js/8e27d69a.ad0dde1f.js b/zh/assets/js/8e27d69a.ad0dde1f.js
new file mode 100644
index 0000000..2dee219
--- /dev/null
+++ b/zh/assets/js/8e27d69a.ad0dde1f.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[40],{106:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return o})),n.d(t,"metadata",(function(){return l})),n.d(t,"toc",(function(){return c})),n.d(t,"default",(function(){return u}));var r=n(3),i=n(7),a=(n(0),n(142)),o={},l={unversionedId:"development",id:"development",isDocsHomePage:!1,title:"development",description:"\x3c!--",source:"@site/docs/apisix-ingress-controller/development.md",slug:"/development",perma [...]
\ No newline at end of file
diff --git a/zh/assets/js/8e784bf3.0b3c8a01.js b/zh/assets/js/8e784bf3.0b3c8a01.js
new file mode 100644
index 0000000..e419b08
--- /dev/null
+++ b/zh/assets/js/8e784bf3.0b3c8a01.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[41],{107:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return i})),n.d(t,"metadata",(function(){return c})),n.d(t,"toc",(function(){return l})),n.d(t,"default",(function(){return b}));var o=n(3),r=n(7),a=(n(0),n(142)),i={id:"committer-guide",title:"Committer Guide"},c={unversionedId:"committer-guide",id:"committer-guide",isDocsHomePage:!1,title:"Committer Guide",description:"What can I contribute?",source:"@site/d [...]
\ No newline at end of file
diff --git a/zh/assets/js/8e784bf3.b6e04c50.js b/zh/assets/js/8e784bf3.b6e04c50.js
deleted file mode 100644
index 47b5cf1..0000000
--- a/zh/assets/js/8e784bf3.b6e04c50.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[32],{125:function(e,t,n){"use strict";n.d(t,"a",(function(){return m})),n.d(t,"b",(function(){return d}));var o=n(0),r=n.n(o);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})) [...]
\ No newline at end of file
diff --git a/zh/assets/js/93013804.a1084f39.js b/zh/assets/js/93013804.a1084f39.js
new file mode 100644
index 0000000..a67d68c
--- /dev/null
+++ b/zh/assets/js/93013804.a1084f39.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[42],{108:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return s})),n.d(t,"metadata",(function(){return o})),n.d(t,"toc",(function(){return l})),n.d(t,"default",(function(){return p}));var r=n(3),i=n(7),a=(n(0),n(142)),s={},o={unversionedId:"deployments/minikube",id:"deployments/minikube",isDocsHomePage:!1,title:"minikube",description:"\x3c!--",source:"@site/docs/apisix-ingress-controller/deployments/minikube.md",s [...]
\ No newline at end of file
diff --git a/zh/assets/js/935f2afb.2a534bfd.js b/zh/assets/js/935f2afb.2a534bfd.js
deleted file mode 100644
index 16bea14..0000000
--- a/zh/assets/js/935f2afb.2a534bfd.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[33],{99:function(e){e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","isLast":true,"docsSidebars":{"docs":[{"collapsed":true,"type":"category","label":"General","items":[{"type":"link","label":"Security","href":"/zh/docs/general/security"},{"type":"link","label":"Subscribe Guide","href":"/zh/docs/general/subscribe-guide"},{"type":"link","label":"Contributor Guide","href":"/zh/docs/general/contributor-guide [...]
\ No newline at end of file
diff --git a/zh/assets/js/935f2afb.ef7de6cb.js b/zh/assets/js/935f2afb.ef7de6cb.js
new file mode 100644
index 0000000..5840c03
--- /dev/null
+++ b/zh/assets/js/935f2afb.ef7de6cb.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[43],{109:function(e){e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","isLast":true,"docsSidebars":{"docs":[{"collapsed":true,"type":"category","label":"General","items":[{"type":"link","label":"Security","href":"/zh/docs/general/security"},{"type":"link","label":"Subscribe Guide","href":"/zh/docs/general/subscribe-guide"},{"type":"link","label":"Contributor Guide","href":"/zh/docs/general/contributor-guid [...]
\ No newline at end of file
diff --git a/zh/assets/js/941c758c.74ea672b.js b/zh/assets/js/941c758c.74ea672b.js
new file mode 100644
index 0000000..a1a39ee
--- /dev/null
+++ b/zh/assets/js/941c758c.74ea672b.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[44],{110:function(e,t,r){"use strict";r.r(t),r.d(t,"frontMatter",(function(){return c})),r.d(t,"metadata",(function(){return o})),r.d(t,"toc",(function(){return p})),r.d(t,"default",(function(){return s}));var n=r(3),a=r(7),i=(r(0),r(142)),c={},o={unversionedId:"samples/proxy-the-httpbin-service",id:"samples/proxy-the-httpbin-service",isDocsHomePage:!1,title:"proxy-the-httpbin-service",description:"\x3c!--",source:"@site/docs/apisix-in [...]
\ No newline at end of file
diff --git a/zh/assets/js/98c69322.bcfd2dda.js b/zh/assets/js/98c69322.cb3d97e1.js
similarity index 96%
rename from zh/assets/js/98c69322.bcfd2dda.js
rename to zh/assets/js/98c69322.cb3d97e1.js
index 66dd50c..36cae93 100644
--- a/zh/assets/js/98c69322.bcfd2dda.js
+++ b/zh/assets/js/98c69322.cb3d97e1.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[34],{139:function(e,t,r){"use strict";var n=r(0);function a(){return(a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function i(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t) [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[45],{156:function(e,t,r){"use strict";var n=r(0);function a(){return(a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function i(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t) [...]
\ No newline at end of file
diff --git a/zh/assets/js/9c26c05d.46e197e6.js b/zh/assets/js/9c26c05d.46e197e6.js
new file mode 100644
index 0000000..c283e5d
--- /dev/null
+++ b/zh/assets/js/9c26c05d.46e197e6.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[46],{111:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return i})),n.d(t,"metadata",(function(){return c})),n.d(t,"toc",(function(){return s})),n.d(t,"default",(function(){return l}));var r=n(3),o=n(7),a=(n(0),n(142)),i={},c={unversionedId:"contribute",id:"contribute",isDocsHomePage:!1,title:"contribute",description:"\x3c!--",source:"@site/docs/apisix-ingress-controller/contribute.md",slug:"/contribute",permalink: [...]
\ No newline at end of file
diff --git a/zh/assets/js/9dc47d34.a5d284c9.js b/zh/assets/js/9dc47d34.a5d284c9.js
new file mode 100644
index 0000000..a0ac161
--- /dev/null
+++ b/zh/assets/js/9dc47d34.a5d284c9.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[47],{112:function(e,t,r){"use strict";r.r(t),r.d(t,"frontMatter",(function(){return a})),r.d(t,"metadata",(function(){return c})),r.d(t,"toc",(function(){return l})),r.d(t,"default",(function(){return p}));var n=r(3),i=r(7),o=(r(0),r(142)),a={},c={unversionedId:"FAQ",id:"FAQ",isDocsHomePage:!1,title:"FAQ",description:"\x3c!--",source:"@site/docs/apisix-ingress-controller/FAQ.md",slug:"/FAQ",permalink:"/zh/docs/ingress-controller/FAQ",v [...]
\ No newline at end of file
diff --git a/zh/assets/js/a4a2cefa.309c52fd.js b/zh/assets/js/a4a2cefa.60191566.js
similarity index 99%
rename from zh/assets/js/a4a2cefa.309c52fd.js
rename to zh/assets/js/a4a2cefa.60191566.js
index e9176ae..bf1f41d 100644
--- a/zh/assets/js/a4a2cefa.309c52fd.js
+++ b/zh/assets/js/a4a2cefa.60191566.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[35],{100:function(e,t,r){"use strict";r.r(t),r.d(t,"frontMatter",(function(){return l})),r.d(t,"metadata",(function(){return i})),r.d(t,"toc",(function(){return s})),r.d(t,"default",(function(){return p}));var a=r(3),n=r(7),b=(r(0),r(125)),l={title:"\u521d\u63a2 Kubernetes Service APIs",author:"Wei Jin",authorURL:"https://github.com/gxthrj",authorImageURL:"https://avatars2.githubusercontent.com/u/4413028?s=400&u=e140a6d2bf19c426da6498b [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[48],{113:function(e,t,r){"use strict";r.r(t),r.d(t,"frontMatter",(function(){return l})),r.d(t,"metadata",(function(){return i})),r.d(t,"toc",(function(){return s})),r.d(t,"default",(function(){return p}));var a=r(3),n=r(7),b=(r(0),r(142)),l={title:"\u521d\u63a2 Kubernetes Service APIs",author:"Wei Jin",authorURL:"https://github.com/gxthrj",authorImageURL:"https://avatars2.githubusercontent.com/u/4413028?s=400&u=e140a6d2bf19c426da6498b [...]
\ No newline at end of file
diff --git a/zh/assets/js/a6641250.a8f6a2f7.js b/zh/assets/js/a6641250.0d5381e9.js
similarity index 94%
rename from zh/assets/js/a6641250.a8f6a2f7.js
rename to zh/assets/js/a6641250.0d5381e9.js
index b4719d7..7385915 100644
--- a/zh/assets/js/a6641250.a8f6a2f7.js
+++ b/zh/assets/js/a6641250.0d5381e9.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[36],{101:function(e,t,r){"use strict";r.r(t),r.d(t,"frontMatter",(function(){return c})),r.d(t,"metadata",(function(){return i})),r.d(t,"toc",(function(){return u})),r.d(t,"default",(function(){return l}));var n=r(3),o=r(7),a=(r(0),r(125)),c={title:"New website for Apache APISIX",author:"juzhiyuan",authorURL:"https://github.com/juzhiyuan",authorImageURL:"https://avatars3.githubusercontent.com/u/2106987?s=460&u=f92e880ce95fe1fee18becd0a [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[49],{114:function(e,t,r){"use strict";r.r(t),r.d(t,"frontMatter",(function(){return c})),r.d(t,"metadata",(function(){return i})),r.d(t,"toc",(function(){return u})),r.d(t,"default",(function(){return l}));var n=r(3),o=r(7),a=(r(0),r(142)),c={title:"New website for Apache APISIX",author:"juzhiyuan",authorURL:"https://github.com/juzhiyuan",authorImageURL:"https://avatars3.githubusercontent.com/u/2106987?s=460&u=f92e880ce95fe1fee18becd0a [...]
\ No newline at end of file
diff --git a/zh/assets/js/a6aa9e1f.c641128b.js b/zh/assets/js/a6aa9e1f.44ef45f8.js
similarity index 85%
rename from zh/assets/js/a6aa9e1f.c641128b.js
rename to zh/assets/js/a6aa9e1f.44ef45f8.js
index 26fb4ff..f9efeda 100644
--- a/zh/assets/js/a6aa9e1f.c641128b.js
+++ b/zh/assets/js/a6aa9e1f.44ef45f8.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[37],{122:function(a,e,t){"use strict";t.r(e);var n=t(0),i=t.n(n),l=t(17),r=t(129),c=t(174),m=t(128);var s=function(a){var e=a.metadata,t=e.previousPage,n=e.nextPage;return i.a.createElement("nav",{className:"pagination-nav","aria-label":"Blog list page navigation"},i.a.createElement("div",{className:"pagination-nav__item"},t&&i.a.createElement(m.a,{className:"pagination-nav__link",to:t},i.a.createElement("div",{className:"pagination-na [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[50],{139:function(a,e,t){"use strict";t.r(e);var n=t(0),i=t.n(n),l=t(17),r=t(146),c=t(191),m=t(145);var s=function(a){var e=a.metadata,t=e.previousPage,n=e.nextPage;return i.a.createElement("nav",{className:"pagination-nav","aria-label":"Blog list page navigation"},i.a.createElement("div",{className:"pagination-nav__item"},t&&i.a.createElement(m.a,{className:"pagination-nav__link",to:t},i.a.createElement("div",{className:"pagination-na [...]
\ No newline at end of file
diff --git a/zh/assets/js/adbb350b.b4246bac.js b/zh/assets/js/adbb350b.b4246bac.js
deleted file mode 100644
index ecb7699..0000000
--- a/zh/assets/js/adbb350b.b4246bac.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[38],{104:function(e,t,r){"use strict";r.r(t),r.d(t,"frontMatter",(function(){return i})),r.d(t,"metadata",(function(){return c})),r.d(t,"toc",(function(){return l})),r.d(t,"default",(function(){return b}));var n=r(3),o=r(7),a=(r(0),r(125)),i={id:"contributor-guide",title:"Contributor Guide"},c={unversionedId:"contributor-guide",id:"contributor-guide",isDocsHomePage:!1,title:"Contributor Guide",description:"Please fee free to report bug [...]
\ No newline at end of file
diff --git a/zh/assets/js/adbb350b.c03146e8.js b/zh/assets/js/adbb350b.c03146e8.js
new file mode 100644
index 0000000..d82d249
--- /dev/null
+++ b/zh/assets/js/adbb350b.c03146e8.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[51],{117:function(e,t,r){"use strict";r.r(t),r.d(t,"frontMatter",(function(){return i})),r.d(t,"metadata",(function(){return c})),r.d(t,"toc",(function(){return l})),r.d(t,"default",(function(){return b}));var n=r(3),o=r(7),a=(r(0),r(142)),i={id:"contributor-guide",title:"Contributor Guide"},c={unversionedId:"contributor-guide",id:"contributor-guide",isDocsHomePage:!1,title:"Contributor Guide",description:"Please fee free to report bug [...]
\ No newline at end of file
diff --git a/zh/assets/js/b123c67b.ce93488a.js b/zh/assets/js/b123c67b.ce93488a.js
new file mode 100644
index 0000000..97f6803
--- /dev/null
+++ b/zh/assets/js/b123c67b.ce93488a.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[52],{118:function(e,n,t){"use strict";t.r(n),t.d(n,"frontMatter",(function(){return o})),t.d(n,"metadata",(function(){return s})),t.d(n,"toc",(function(){return c})),t.d(n,"default",(function(){return l}));var r=t(3),a=t(7),i=(t(0),t(142)),o={},s={unversionedId:"usage",id:"usage",isDocsHomePage:!1,title:"usage",description:"\x3c!--",source:"@site/docs/apisix-ingress-controller/usage.md",slug:"/usage",permalink:"/zh/docs/ingress-control [...]
\ No newline at end of file
diff --git a/zh/assets/js/b4a67526.4e6383ea.js b/zh/assets/js/b4a67526.4e6383ea.js
new file mode 100644
index 0000000..390b5a2
--- /dev/null
+++ b/zh/assets/js/b4a67526.4e6383ea.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[53],{119:function(s){s.exports=JSON.parse('{"pluginId":"docs-apisix-ingress-controller","version":"current","label":"Next","isLast":true,"docsSidebars":{"docs":[]},"permalinkToSidebar":{}}')}}]);
\ No newline at end of file
diff --git a/zh/assets/js/b4a67526.ad72e997.js b/zh/assets/js/b4a67526.ad72e997.js
deleted file mode 100644
index 17cd045..0000000
--- a/zh/assets/js/b4a67526.ad72e997.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[39],{105:function(o){o.exports=JSON.parse('{"pluginId":"docs-apisix-ingress-controller","version":"current","label":"Next","isLast":true,"docsSidebars":{"docs":[{"collapsed":true,"type":"category","label":"APISIX\u2122\ufe0f Ingress Controller","items":[{"type":"link","label":"Introduction","href":"/zh/docs/ingress-controller/introduction"}]}]},"permalinkToSidebar":{"/zh/docs/ingress-controller/introduction":"docs"}}')}}]);
\ No newline at end of file
diff --git a/zh/assets/js/b58143c5.16973ecf.js b/zh/assets/js/b58143c5.16973ecf.js
new file mode 100644
index 0000000..48a6ff6
--- /dev/null
+++ b/zh/assets/js/b58143c5.16973ecf.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[54],{120:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return s})),n.d(t,"metadata",(function(){return o})),n.d(t,"toc",(function(){return l})),n.d(t,"default",(function(){return p}));var r=n(3),a=n(7),i=(n(0),n(142)),s={},o={unversionedId:"deployments/kubesphere",id:"deployments/kubesphere",isDocsHomePage:!1,title:"kubesphere",description:"\x3c!--",source:"@site/docs/apisix-ingress-controller/deployments/kubesphe [...]
\ No newline at end of file
diff --git a/zh/assets/js/bacea567.49cd87f9.js b/zh/assets/js/bacea567.94238c06.js
similarity index 94%
rename from zh/assets/js/bacea567.49cd87f9.js
rename to zh/assets/js/bacea567.94238c06.js
index 5ce4398..080d50b 100644
--- a/zh/assets/js/bacea567.49cd87f9.js
+++ b/zh/assets/js/bacea567.94238c06.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[40],{106:function(e,t,r){"use strict";r.r(t),r.d(t,"frontMatter",(function(){return c})),r.d(t,"metadata",(function(){return i})),r.d(t,"toc",(function(){return s})),r.d(t,"default",(function(){return l}));var n=r(3),a=r(7),o=(r(0),r(125)),c={title:"Release Apache APISIX Dashboard 2.4"},i={permalink:"/zh/events/2021/02/12/release-apache-apisix-dashboard-2.4",source:"@site/events/2021-02-12-release-apache-apisix-dashboard-2.4.md",descri [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[55],{121:function(e,t,r){"use strict";r.r(t),r.d(t,"frontMatter",(function(){return c})),r.d(t,"metadata",(function(){return i})),r.d(t,"toc",(function(){return s})),r.d(t,"default",(function(){return l}));var n=r(3),a=r(7),o=(r(0),r(142)),c={title:"Release Apache APISIX Dashboard 2.4"},i={permalink:"/zh/events/2021/02/12/release-apache-apisix-dashboard-2.4",source:"@site/events/2021-02-12-release-apache-apisix-dashboard-2.4.md",descri [...]
\ No newline at end of file
diff --git a/zh/assets/js/c119cf3c.b661798c.js b/zh/assets/js/c119cf3c.f30b41ff.js
similarity index 92%
rename from zh/assets/js/c119cf3c.b661798c.js
rename to zh/assets/js/c119cf3c.f30b41ff.js
index 59274ab..5d5ca0b 100644
--- a/zh/assets/js/c119cf3c.b661798c.js
+++ b/zh/assets/js/c119cf3c.f30b41ff.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[41],{107:function(e,r,t){"use strict";t.r(r),t.d(r,"frontMatter",(function(){return c})),t.d(r,"metadata",(function(){return i})),t.d(r,"toc",(function(){return s})),t.d(r,"default",(function(){return l}));var n=t(3),a=t(7),o=(t(0),t(125)),c={title:"Release Apache APISIX Ingress Controller 0.3.0"},i={permalink:"/zh/events/2021/02/11/release-apache-apisix-ingress-controller-0.3.0",source:"@site/events/2021-02-11-release-apache-apisix-in [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[56],{122:function(e,r,t){"use strict";t.r(r),t.d(r,"frontMatter",(function(){return c})),t.d(r,"metadata",(function(){return i})),t.d(r,"toc",(function(){return s})),t.d(r,"default",(function(){return l}));var n=t(3),a=t(7),o=(t(0),t(142)),c={title:"Release Apache APISIX Ingress Controller 0.3.0"},i={permalink:"/zh/events/2021/02/11/release-apache-apisix-ingress-controller-0.3.0",source:"@site/events/2021-02-11-release-apache-apisix-in [...]
\ No newline at end of file
diff --git a/assets/js/c4f5d8e4.a4d61c1b.js b/zh/assets/js/c4f5d8e4.08af8182.js
similarity index 96%
rename from assets/js/c4f5d8e4.a4d61c1b.js
rename to zh/assets/js/c4f5d8e4.08af8182.js
index e3c839f..d2ec291 100644
--- a/assets/js/c4f5d8e4.a4d61c1b.js
+++ b/zh/assets/js/c4f5d8e4.08af8182.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[42],{108:function(e,t,a){"use strict";a.r(t);var n=a(128),l=a(17),r=a(132),c=a(129),i=a(151),s=a(0),o=a(226),m=a(150),u=a(0),d=function(){var e=Object(s.useState)(0),t=e[0],a=e[1],l=["Dynamic","Real-Time","High-Performance"],c=Object(s.useState)(!0),m=c[0],d=c[1],v=function(e){d(!1),a(e),d(!0)};return Object(s.useEffect)((function(){var e=setInterval((function(){v(t>=l.length-1?0:t+1)}),3600);return function(){return clearInterval(e)}} [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[57],{123:function(e,t,a){"use strict";a.r(t);var n=a(145),l=a(17),r=a(149),c=a(146),i=a(168),s=a(0),o=a(243),m=a(167),u=a(0),d=function(){var e=Object(s.useState)(0),t=e[0],a=e[1],l=["Dynamic","Real-Time","High-Performance"],c=Object(s.useState)(!0),m=c[0],d=c[1],v=function(e){d(!1),a(e),d(!0)};return Object(s.useEffect)((function(){var e=setInterval((function(){v(t>=l.length-1?0:t+1)}),3600);return function(){return clearInterval(e)}} [...]
\ No newline at end of file
diff --git a/zh/assets/js/c5594f1a.d180ea48.js b/zh/assets/js/c5594f1a.edad8977.js
similarity index 94%
rename from zh/assets/js/c5594f1a.d180ea48.js
rename to zh/assets/js/c5594f1a.edad8977.js
index ef6aa3c..1e4eb01 100644
--- a/zh/assets/js/c5594f1a.d180ea48.js
+++ b/zh/assets/js/c5594f1a.edad8977.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[43],{109:function(e,r,t){"use strict";t.r(r),t.d(r,"frontMatter",(function(){return c})),t.d(r,"metadata",(function(){return i})),t.d(r,"toc",(function(){return s})),t.d(r,"default",(function(){return p}));var n=t(3),a=t(7),o=(t(0),t(125)),c={title:"Release Apache APISIX Ingress Controller 0.2.0"},i={permalink:"/zh/events/2021/01/19/release-apache-apisix-ingress-controller-0.2.0",source:"@site/events/2021-01-19-release-apache-apisix-in [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[58],{124:function(e,r,t){"use strict";t.r(r),t.d(r,"frontMatter",(function(){return c})),t.d(r,"metadata",(function(){return i})),t.d(r,"toc",(function(){return s})),t.d(r,"default",(function(){return p}));var n=t(3),a=t(7),o=(t(0),t(142)),c={title:"Release Apache APISIX Ingress Controller 0.2.0"},i={permalink:"/zh/events/2021/01/19/release-apache-apisix-ingress-controller-0.2.0",source:"@site/events/2021-01-19-release-apache-apisix-in [...]
\ No newline at end of file
diff --git a/zh/assets/js/ccc49370.938f9db4.js b/zh/assets/js/ccc49370.b142e6b6.js
similarity index 86%
rename from zh/assets/js/ccc49370.938f9db4.js
rename to zh/assets/js/ccc49370.b142e6b6.js
index 5efdd10..c0776e3 100644
--- a/zh/assets/js/ccc49370.938f9db4.js
+++ b/zh/assets/js/ccc49370.b142e6b6.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[44],{123:function(e,t,a){"use strict";a.r(t);var n=a(0),l=a.n(n),r=a(129),i=a(174),c=a(128);var o=function(e){var t=e.nextItem,a=e.prevItem;return l.a.createElement("nav",{className:"pagination-nav","aria-label":"Blog post page navigation"},l.a.createElement("div",{className:"pagination-nav__item"},a&&l.a.createElement(c.a,{className:"pagination-nav__link",to:a.permalink},l.a.createElement("div",{className:"pagination-nav__sublabel"}," [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[59],{140:function(e,t,a){"use strict";a.r(t);var n=a(0),l=a.n(n),r=a(146),i=a(191),c=a(145);var o=function(e){var t=e.nextItem,a=e.prevItem;return l.a.createElement("nav",{className:"pagination-nav","aria-label":"Blog post page navigation"},l.a.createElement("div",{className:"pagination-nav__item"},a&&l.a.createElement(c.a,{className:"pagination-nav__link",to:a.permalink},l.a.createElement("div",{className:"pagination-nav__sublabel"}," [...]
\ No newline at end of file
diff --git a/zh/assets/js/d4de91ec.55c63e46.js b/zh/assets/js/d4de91ec.a4fb0674.js
similarity index 97%
rename from zh/assets/js/d4de91ec.55c63e46.js
rename to zh/assets/js/d4de91ec.a4fb0674.js
index d612f3b..236778e 100644
--- a/zh/assets/js/d4de91ec.55c63e46.js
+++ b/zh/assets/js/d4de91ec.a4fb0674.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[45],{110:function(e,t,a){"use strict";a.r(t),a.d(t,"frontMatter",(function(){return p})),a.d(t,"metadata",(function(){return c})),a.d(t,"toc",(function(){return l})),a.d(t,"default",(function(){return b}));var r=a(3),i=a(7),n=(a(0),a(125)),p={title:"Release Apache APISIX Dashboard 2.4"},c={permalink:"/zh/events/2021/02/12/release-apache-apisix-dashboard-2.4",source:"@site/events/2021-02-12-release-apache-apisix-dashboard-2.4.md",descri [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[60],{125:function(e,t,a){"use strict";a.r(t),a.d(t,"frontMatter",(function(){return p})),a.d(t,"metadata",(function(){return c})),a.d(t,"toc",(function(){return l})),a.d(t,"default",(function(){return b}));var r=a(3),i=a(7),n=(a(0),a(142)),p={title:"Release Apache APISIX Dashboard 2.4"},c={permalink:"/zh/events/2021/02/12/release-apache-apisix-dashboard-2.4",source:"@site/events/2021-02-12-release-apache-apisix-dashboard-2.4.md",descri [...]
\ No newline at end of file
diff --git a/zh/assets/js/d73fca9b.42736b26.js b/zh/assets/js/d73fca9b.a6800911.js
similarity index 76%
rename from zh/assets/js/d73fca9b.42736b26.js
rename to zh/assets/js/d73fca9b.a6800911.js
index dea5e74..d44da69 100644
--- a/zh/assets/js/d73fca9b.42736b26.js
+++ b/zh/assets/js/d73fca9b.a6800911.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[46],{111:function(i){i.exports=JSON.parse('{"pluginId":"docs-apisix","version":"current","label":"Next","isLast":true,"docsSidebars":{"docs":[{"collapsed":true,"type":"category","label":"APISIX\u2122\ufe0f","items":[{"type":"link","label":"Introduction","href":"/zh/docs/apisix/introduction"}]}]},"permalinkToSidebar":{"/zh/docs/apisix/introduction":"docs"}}')}}]);
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[61],{126:function(i){i.exports=JSON.parse('{"pluginId":"docs-apisix","version":"current","label":"Next","isLast":true,"docsSidebars":{"docs":[{"collapsed":true,"type":"category","label":"APISIX\u2122\ufe0f","items":[{"type":"link","label":"Introduction","href":"/zh/docs/apisix/introduction"}]}]},"permalinkToSidebar":{"/zh/docs/apisix/introduction":"docs"}}')}}]);
\ No newline at end of file
diff --git a/zh/assets/js/e02da2c5.2b498400.js b/zh/assets/js/e02da2c5.b96f4156.js
similarity index 98%
rename from zh/assets/js/e02da2c5.2b498400.js
rename to zh/assets/js/e02da2c5.b96f4156.js
index 8f80f0b..9b0af22 100644
--- a/zh/assets/js/e02da2c5.2b498400.js
+++ b/zh/assets/js/e02da2c5.b96f4156.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[47],{112:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return o})),n.d(t,"metadata",(function(){return l})),n.d(t,"toc",(function(){return c})),n.d(t,"default",(function(){return s}));var a=n(3),r=n(7),i=(n(0),n(125)),o={title:"Envoy and Apache APISIX: Another way to implement the Envoy filter",author:"nic-chen",authorURL:"https://github.com/nic-chen",authorImageURL:"https://avatars0.githubusercontent.com/u/330006 [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[62],{127:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return o})),n.d(t,"metadata",(function(){return l})),n.d(t,"toc",(function(){return c})),n.d(t,"default",(function(){return s}));var a=n(3),r=n(7),i=(n(0),n(142)),o={title:"Envoy and Apache APISIX: Another way to implement the Envoy filter",author:"nic-chen",authorURL:"https://github.com/nic-chen",authorImageURL:"https://avatars0.githubusercontent.com/u/330006 [...]
\ No newline at end of file
diff --git a/zh/assets/js/e451ae2c.b451f25a.js b/zh/assets/js/e451ae2c.7c7f3e19.js
similarity index 98%
rename from zh/assets/js/e451ae2c.b451f25a.js
rename to zh/assets/js/e451ae2c.7c7f3e19.js
index f454b5a..1452549 100644
--- a/zh/assets/js/e451ae2c.b451f25a.js
+++ b/zh/assets/js/e451ae2c.7c7f3e19.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[48],{113:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return o})),n.d(t,"metadata",(function(){return i})),n.d(t,"toc",(function(){return c})),n.d(t,"default",(function(){return u}));var a=n(3),r=n(7),s=(n(0),n(125)),o={title:"Stable Product Delivery with Cypress",author:"Yi Sun",authorURL:"https://github.com/LiteSun",authorImageURL:"https://avatars.githubusercontent.com/u/31329157?s=400&u=e81b4bb4db2be162c1fcac6 [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[63],{128:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return o})),n.d(t,"metadata",(function(){return i})),n.d(t,"toc",(function(){return c})),n.d(t,"default",(function(){return u}));var a=n(3),r=n(7),s=(n(0),n(142)),o={title:"Stable Product Delivery with Cypress",author:"Yi Sun",authorURL:"https://github.com/LiteSun",authorImageURL:"https://avatars.githubusercontent.com/u/31329157?s=400&u=e81b4bb4db2be162c1fcac6 [...]
\ No newline at end of file
diff --git a/zh/assets/js/e60dd3b0.788b923e.js b/zh/assets/js/e60dd3b0.788b923e.js
new file mode 100644
index 0000000..9514ba5
--- /dev/null
+++ b/zh/assets/js/e60dd3b0.788b923e.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[64],{129:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return s})),n.d(t,"metadata",(function(){return o})),n.d(t,"toc",(function(){return c})),n.d(t,"default",(function(){return p}));var i=n(3),a=n(7),r=(n(0),n(142)),s={},o={unversionedId:"design",id:"design",isDocsHomePage:!1,title:"design",description:"\x3c!--",source:"@site/docs/apisix-ingress-controller/design.md",slug:"/design",permalink:"/zh/docs/ingress-co [...]
\ No newline at end of file
diff --git a/zh/assets/js/f243156b.3b8ec092.js b/zh/assets/js/f243156b.c45320cb.js
similarity index 72%
rename from zh/assets/js/f243156b.3b8ec092.js
rename to zh/assets/js/f243156b.c45320cb.js
index 1c8540e..c05d8a9 100644
--- a/zh/assets/js/f243156b.3b8ec092.js
+++ b/zh/assets/js/f243156b.c45320cb.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[49],{116:function(o){o.exports=JSON.parse('{"pluginId":"docs-apisix-dashboard","version":"current","label":"Next","isLast":true,"docsSidebars":{"docs":[{"collapsed":true,"type":"category","label":"APISIX\u2122\ufe0f Dashboard","items":[{"type":"link","label":"Introduction","href":"/zh/docs/dashboard/introduction"}]}]},"permalinkToSidebar":{"/zh/docs/dashboard/introduction":"docs"}}')}}]);
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[65],{132:function(o){o.exports=JSON.parse('{"pluginId":"docs-apisix-dashboard","version":"current","label":"Next","isLast":true,"docsSidebars":{"docs":[{"collapsed":true,"type":"category","label":"APISIX\u2122\ufe0f Dashboard","items":[{"type":"link","label":"Introduction","href":"/zh/docs/dashboard/introduction"}]}]},"permalinkToSidebar":{"/zh/docs/dashboard/introduction":"docs"}}')}}]);
\ No newline at end of file
diff --git a/zh/assets/js/f6cd6006.07ff6037.js b/zh/assets/js/f6cd6006.07ff6037.js
new file mode 100644
index 0000000..e778cd5
--- /dev/null
+++ b/zh/assets/js/f6cd6006.07ff6037.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[66],{133:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return s})),n.d(t,"metadata",(function(){return o})),n.d(t,"toc",(function(){return c})),n.d(t,"default",(function(){return p}));var r=n(3),a=n(7),i=(n(0),n(142)),s={},o={unversionedId:"deployments/azure",id:"deployments/azure",isDocsHomePage:!1,title:"azure",description:"\x3c!--",source:"@site/docs/apisix-ingress-controller/deployments/azure.md",slug:"/deploy [...]
\ No newline at end of file
diff --git a/zh/assets/js/f7488fe8.ed219fa4.js b/zh/assets/js/f7488fe8.78be7bf2.js
similarity index 89%
rename from zh/assets/js/f7488fe8.ed219fa4.js
rename to zh/assets/js/f7488fe8.78be7bf2.js
index 986a899..09c8a7b 100644
--- a/zh/assets/js/f7488fe8.ed219fa4.js
+++ b/zh/assets/js/f7488fe8.78be7bf2.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[50],{117:function(e){e.exports=JSON.parse('{"title":"Recent posts","items":[{"title":"Release Apache APISIX Dashboard 2.4","permalink":"/zh/events/2021/02/12/release-apache-apisix-dashboard-2.4"},{"title":"Release Apache APISIX Ingress Controller 0.3.0","permalink":"/zh/events/2021/02/11/release-apache-apisix-ingress-controller-0.3.0"},{"title":"Release Apache APISIX 2.3","permalink":"/zh/events/2021/02/09/release-apache-apisix-2.3"},{ [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[67],{134:function(e){e.exports=JSON.parse('{"title":"Recent posts","items":[{"title":"Release Apache APISIX Dashboard 2.4","permalink":"/zh/events/2021/02/12/release-apache-apisix-dashboard-2.4"},{"title":"Release Apache APISIX Ingress Controller 0.3.0","permalink":"/zh/events/2021/02/11/release-apache-apisix-ingress-controller-0.3.0"},{"title":"Release Apache APISIX 2.3","permalink":"/zh/events/2021/02/09/release-apache-apisix-2.3"},{ [...]
\ No newline at end of file
diff --git a/zh/assets/js/fa919c95.75271be3.js b/zh/assets/js/fa919c95.e28dfe07.js
similarity index 93%
rename from zh/assets/js/fa919c95.75271be3.js
rename to zh/assets/js/fa919c95.e28dfe07.js
index 5cc83bc..f4931c4 100644
--- a/zh/assets/js/fa919c95.75271be3.js
+++ b/zh/assets/js/fa919c95.e28dfe07.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[51],{118:function(e,r,t){"use strict";t.r(r),t.d(r,"frontMatter",(function(){return c})),t.d(r,"metadata",(function(){return i})),t.d(r,"toc",(function(){return s})),t.d(r,"default",(function(){return p}));var n=t(3),a=t(7),o=(t(0),t(125)),c={title:"Release Apache APISIX Ingress Controller 0.1.0"},i={permalink:"/zh/events/2020/12/23/release-apache-apisix-ingress-controller-0.1.0",source:"@site/events/2020-12-23-release-apache-apisix-in [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[68],{135:function(e,r,t){"use strict";t.r(r),t.d(r,"frontMatter",(function(){return c})),t.d(r,"metadata",(function(){return i})),t.d(r,"toc",(function(){return s})),t.d(r,"default",(function(){return p}));var n=t(3),a=t(7),o=(t(0),t(142)),c={title:"Release Apache APISIX Ingress Controller 0.1.0"},i={permalink:"/zh/events/2020/12/23/release-apache-apisix-ingress-controller-0.1.0",source:"@site/events/2020-12-23-release-apache-apisix-in [...]
\ No newline at end of file
diff --git a/zh/assets/js/main.0749e470.js b/zh/assets/js/main.0749e470.js
new file mode 100644
index 0000000..247a482
--- /dev/null
+++ b/zh/assets/js/main.0749e470.js
@@ -0,0 +1,2 @@
+/*! For license information please see main.0749e470.js.LICENSE.txt */
+(window.webpackJsonp=window.webpackJsonp||[]).push([[69],[function(e,t,n){"use strict";e.exports=n(38)},function(e,t,n){e.exports=n(42)()},function(e,t,n){"use strict";n.d(t,"a",(function(){return v})),n.d(t,"b",(function(){return w})),n.d(t,"c",(function(){return S})),n.d(t,"d",(function(){return A})),n.d(t,"e",(function(){return b})),n.d(t,"f",(function(){return L})),n.d(t,"g",(function(){return z})),n.d(t,"h",(function(){return g})),n.d(t,"i",(function(){return E})),n.d(t,"j",(functio [...]
\ No newline at end of file
diff --git a/assets/js/main.f336ec98.js.LICENSE.txt b/zh/assets/js/main.0749e470.js.LICENSE.txt
similarity index 100%
rename from assets/js/main.f336ec98.js.LICENSE.txt
rename to zh/assets/js/main.0749e470.js.LICENSE.txt
diff --git a/zh/assets/js/main.8ce1e08c.js b/zh/assets/js/main.8ce1e08c.js
deleted file mode 100644
index 8a0c65d..0000000
--- a/zh/assets/js/main.8ce1e08c.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/*! For license information please see main.8ce1e08c.js.LICENSE.txt */
-(window.webpackJsonp=window.webpackJsonp||[]).push([[52],[function(e,t,n){"use strict";e.exports=n(38)},function(e,t,n){e.exports=n(42)()},function(e,t,n){"use strict";n.d(t,"a",(function(){return v})),n.d(t,"b",(function(){return w})),n.d(t,"c",(function(){return S})),n.d(t,"d",(function(){return A})),n.d(t,"e",(function(){return b})),n.d(t,"f",(function(){return L})),n.d(t,"g",(function(){return j})),n.d(t,"h",(function(){return g})),n.d(t,"i",(function(){return x})),n.d(t,"j",(functio [...]
\ No newline at end of file
diff --git a/zh/assets/js/runtime~main.0b5a1314.js b/zh/assets/js/runtime~main.0b5a1314.js
new file mode 100644
index 0000000..c8201d4
--- /dev/null
+++ b/zh/assets/js/runtime~main.0b5a1314.js
@@ -0,0 +1 @@
+!function(e){function c(c){for(var a,t,d=c[0],n=c[1],o=c[2],u=0,l=[];u<d.length;u++)t=d[u],Object.prototype.hasOwnProperty.call(b,t)&&b[t]&&l.push(b[t][0]),b[t]=0;for(a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a]);for(i&&i(c);l.length;)l.shift()();return r.push.apply(r,o||[]),f()}function f(){for(var e,c=0;c<r.length;c++){for(var f=r[c],a=!0,t=1;t<f.length;t++){var n=f[t];0!==b[n]&&(a=!1)}a&&(r.splice(c--,1),e=d(d.s=f[0]))}return e}var a={},b={70:0},r=[];function t(e){retu [...]
\ No newline at end of file
diff --git a/zh/assets/js/runtime~main.d3f78d59.js b/zh/assets/js/runtime~main.d3f78d59.js
deleted file mode 100644
index 4d7ca95..0000000
--- a/zh/assets/js/runtime~main.d3f78d59.js
+++ /dev/null
@@ -1 +0,0 @@
-!function(e){function a(a){for(var f,n,b=a[0],o=a[1],d=a[2],u=0,l=[];u<b.length;u++)n=b[u],Object.prototype.hasOwnProperty.call(r,n)&&r[n]&&l.push(r[n][0]),r[n]=0;for(f in o)Object.prototype.hasOwnProperty.call(o,f)&&(e[f]=o[f]);for(i&&i(a);l.length;)l.shift()();return t.push.apply(t,d||[]),c()}function c(){for(var e,a=0;a<t.length;a++){for(var c=t[a],f=!0,n=1;n<c.length;n++){var o=c[n];0!==r[o]&&(f=!1)}f&&(t.splice(a--,1),e=b(b.s=c[0]))}return e}var f={},r={53:0},t=[];function n(e){retu [...]
\ No newline at end of file
diff --git a/zh/assets/js/styles.d25a02cf.js b/zh/assets/js/styles.8ae08ebc.js
similarity index 87%
rename from zh/assets/js/styles.d25a02cf.js
rename to zh/assets/js/styles.8ae08ebc.js
index 5320056..2c73c5c 100644
--- a/zh/assets/js/styles.d25a02cf.js
+++ b/zh/assets/js/styles.8ae08ebc.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[0],{102:function(e,o,n){e.exports={blogPostTitle:"blogPostTitle_GeHD",blogPostDate:"blogPostDate_fNvV"}},103:function(e,o,n){e.exports={sidebar:"sidebar_2ahu",sidebarItemTitle:"sidebarItemTitle_2hhb",sidebarItemList:"sidebarItemList_2xAf",sidebarItem:"sidebarItem_2UVv",sidebarItemLink:"sidebarItemLink_1RT6",sidebarItemLinkActive:"sidebarItemLinkActive_12pM"}},115:function(e,o,n){e.exports={searchQueryInput:"searchQueryInput_35WP",searc [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[0],{115:function(e,o,n){e.exports={blogPostTitle:"blogPostTitle_GeHD",blogPostDate:"blogPostDate_fNvV"}},116:function(e,o,n){e.exports={sidebar:"sidebar_2ahu",sidebarItemTitle:"sidebarItemTitle_2hhb",sidebarItemList:"sidebarItemList_2xAf",sidebarItem:"sidebarItem_2UVv",sidebarItemLink:"sidebarItemLink_1RT6",sidebarItemLinkActive:"sidebarItemLinkActive_12pM"}},131:function(e,o,n){e.exports={searchQueryInput:"searchQueryInput_35WP",searc [...]
\ No newline at end of file
diff --git a/zh/blog/2020/08/22/new-website/index.html b/zh/blog/2020/08/22/new-website/index.html
index 803ab3f..271edf2 100644
--- a/zh/blog/2020/08/22/new-website/index.html
+++ b/zh/blog/2020/08/22/new-website/index.html
@@ -11,27 +11,27 @@
 <link rel="alternate" type="application/rss+xml" href="/zh/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">New website for Apache APISIX | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="New website for Apache APISIX | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="We are just refactored out website for Apache APISIX by using docusaurus."><meta data-react-helmet="true" name="t [...]
-<link rel="preload" href="/zh/assets/js/styles.d25a02cf.js" as="script">
-<link rel="preload" href="/zh/assets/js/runtime~main.d3f78d59.js" as="script">
-<link rel="preload" href="/zh/assets/js/main.8ce1e08c.js" as="script">
-<link rel="preload" href="/zh/assets/js/1.b21fad17.js" as="script">
-<link rel="preload" href="/zh/assets/js/2.c74b4887.js" as="script">
-<link rel="preload" href="/zh/assets/js/4.a448f392.js" as="script">
-<link rel="preload" href="/zh/assets/js/ccc49370.938f9db4.js" as="script">
-<link rel="preload" href="/zh/assets/js/2d8fe9ee.fbf876c8.js" as="script">
-<link rel="preload" href="/zh/assets/js/a6641250.a8f6a2f7.js" as="script">
+<link rel="preload" href="/zh/assets/js/styles.8ae08ebc.js" as="script">
+<link rel="preload" href="/zh/assets/js/runtime~main.0b5a1314.js" as="script">
+<link rel="preload" href="/zh/assets/js/main.0749e470.js" as="script">
+<link rel="preload" href="/zh/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/zh/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/zh/assets/js/4.02c38c66.js" as="script">
+<link rel="preload" href="/zh/assets/js/ccc49370.b142e6b6.js" as="script">
+<link rel="preload" href="/zh/assets/js/2d8fe9ee.b9f3aac6.js" as="script">
+<link rel="preload" href="/zh/assets/js/a6641250.0d5381e9.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
-<script src="/zh/assets/js/styles.d25a02cf.js"></script>
-<script src="/zh/assets/js/runtime~main.d3f78d59.js"></script>
-<script src="/zh/assets/js/main.8ce1e08c.js"></script>
-<script src="/zh/assets/js/1.b21fad17.js"></script>
-<script src="/zh/assets/js/2.c74b4887.js"></script>
-<script src="/zh/assets/js/4.a448f392.js"></script>
-<script src="/zh/assets/js/ccc49370.938f9db4.js"></script>
-<script src="/zh/assets/js/2d8fe9ee.fbf876c8.js"></script>
-<script src="/zh/assets/js/a6641250.a8f6a2f7.js"></script>
+<script src="/zh/assets/js/styles.8ae08ebc.js"></script>
+<script src="/zh/assets/js/runtime~main.0b5a1314.js"></script>
+<script src="/zh/assets/js/main.0749e470.js"></script>
+<script src="/zh/assets/js/1.3237074b.js"></script>
+<script src="/zh/assets/js/2.e4d54c2b.js"></script>
+<script src="/zh/assets/js/4.02c38c66.js"></script>
+<script src="/zh/assets/js/ccc49370.b142e6b6.js"></script>
+<script src="/zh/assets/js/2d8fe9ee.b9f3aac6.js"></script>
+<script src="/zh/assets/js/a6641250.0d5381e9.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh/blog/2020/12/16/another-way-to-implement-envoy-filter/index.html b/zh/blog/2020/12/16/another-way-to-implement-envoy-filter/index.html
index e8b2535..1a65cf7 100644
--- a/zh/blog/2020/12/16/another-way-to-implement-envoy-filter/index.html
+++ b/zh/blog/2020/12/16/another-way-to-implement-envoy-filter/index.html
@@ -11,29 +11,29 @@
 <link rel="alternate" type="application/rss+xml" href="/zh/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Envoy and Apache APISIX: Another way to implement the Envoy filter | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Envoy and Apache APISIX: Another way to implement the Envoy filter | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="@nic-chen, Apache APISIX PMC from Shenz [...]
-<link rel="preload" href="/zh/assets/js/styles.d25a02cf.js" as="script">
-<link rel="preload" href="/zh/assets/js/runtime~main.d3f78d59.js" as="script">
-<link rel="preload" href="/zh/assets/js/main.8ce1e08c.js" as="script">
-<link rel="preload" href="/zh/assets/js/1.b21fad17.js" as="script">
-<link rel="preload" href="/zh/assets/js/2.c74b4887.js" as="script">
-<link rel="preload" href="/zh/assets/js/4.a448f392.js" as="script">
-<link rel="preload" href="/zh/assets/js/ccc49370.938f9db4.js" as="script">
-<link rel="preload" href="/zh/assets/js/2d8fe9ee.fbf876c8.js" as="script">
-<link rel="preload" href="/zh/assets/js/749ed826.21ee0429.js" as="script">
+<link rel="preload" href="/zh/assets/js/styles.8ae08ebc.js" as="script">
+<link rel="preload" href="/zh/assets/js/runtime~main.0b5a1314.js" as="script">
+<link rel="preload" href="/zh/assets/js/main.0749e470.js" as="script">
+<link rel="preload" href="/zh/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/zh/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/zh/assets/js/4.02c38c66.js" as="script">
+<link rel="preload" href="/zh/assets/js/ccc49370.b142e6b6.js" as="script">
+<link rel="preload" href="/zh/assets/js/2d8fe9ee.b9f3aac6.js" as="script">
+<link rel="preload" href="/zh/assets/js/749ed826.c7c49442.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
 A pluggable filter chain mechanism allows filters to be written to perform different tasks and inserted into the main server.</p><p><img src="https://static.apiseven.com/filters.png" alt="Envoy filter"></p><h3><a aria-hidden="true" tabindex="-1" class="anchor enhancedAnchor_2LWZ" id="expansion-method"></a>Expansion method<a class="hash-link" href="#expansion-method" title="Direct link to heading">#</a></h3><p>The existing filters may not meet the user&#x27;s custom requirements. In this  [...]
 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 enhancedAnchor_2LWZ" id="second-step-parse-request"></a>Second step, parse request<a class="hash-link" href="#second-step-parse-request" title="Direct link to heading">#</a></h4><p>We encapsulated the client request data into <code> [...]
-<script src="/zh/assets/js/styles.d25a02cf.js"></script>
-<script src="/zh/assets/js/runtime~main.d3f78d59.js"></script>
-<script src="/zh/assets/js/main.8ce1e08c.js"></script>
-<script src="/zh/assets/js/1.b21fad17.js"></script>
-<script src="/zh/assets/js/2.c74b4887.js"></script>
-<script src="/zh/assets/js/4.a448f392.js"></script>
-<script src="/zh/assets/js/ccc49370.938f9db4.js"></script>
-<script src="/zh/assets/js/2d8fe9ee.fbf876c8.js"></script>
-<script src="/zh/assets/js/749ed826.21ee0429.js"></script>
+<script src="/zh/assets/js/styles.8ae08ebc.js"></script>
+<script src="/zh/assets/js/runtime~main.0b5a1314.js"></script>
+<script src="/zh/assets/js/main.0749e470.js"></script>
+<script src="/zh/assets/js/1.3237074b.js"></script>
+<script src="/zh/assets/js/2.e4d54c2b.js"></script>
+<script src="/zh/assets/js/4.02c38c66.js"></script>
+<script src="/zh/assets/js/ccc49370.b142e6b6.js"></script>
+<script src="/zh/assets/js/2d8fe9ee.b9f3aac6.js"></script>
+<script src="/zh/assets/js/749ed826.c7c49442.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh/blog/2020/12/18/a-first-look-at-kubernetes-service-api/index.html b/zh/blog/2020/12/18/a-first-look-at-kubernetes-service-api/index.html
index 4074692..8b5cc61 100644
--- a/zh/blog/2020/12/18/a-first-look-at-kubernetes-service-api/index.html
+++ b/zh/blog/2020/12/18/a-first-look-at-kubernetes-service-api/index.html
@@ -11,27 +11,27 @@
 <link rel="alternate" type="application/rss+xml" href="/zh/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">初探 Kubernetes Service APIs | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="初探 Kubernetes Service APIs | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="@gxthrj, Apache APISIX PMC &amp; Apache apisix-ingress-controller Founder from Shenzhen Zhiliu Technology Co."><meta da [...]
-<link rel="preload" href="/zh/assets/js/styles.d25a02cf.js" as="script">
-<link rel="preload" href="/zh/assets/js/runtime~main.d3f78d59.js" as="script">
-<link rel="preload" href="/zh/assets/js/main.8ce1e08c.js" as="script">
-<link rel="preload" href="/zh/assets/js/1.b21fad17.js" as="script">
-<link rel="preload" href="/zh/assets/js/2.c74b4887.js" as="script">
-<link rel="preload" href="/zh/assets/js/4.a448f392.js" as="script">
-<link rel="preload" href="/zh/assets/js/ccc49370.938f9db4.js" as="script">
-<link rel="preload" href="/zh/assets/js/2d8fe9ee.fbf876c8.js" as="script">
-<link rel="preload" href="/zh/assets/js/a4a2cefa.309c52fd.js" as="script">
+<link rel="preload" href="/zh/assets/js/styles.8ae08ebc.js" as="script">
+<link rel="preload" href="/zh/assets/js/runtime~main.0b5a1314.js" as="script">
+<link rel="preload" href="/zh/assets/js/main.0749e470.js" as="script">
+<link rel="preload" href="/zh/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/zh/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/zh/assets/js/4.02c38c66.js" as="script">
+<link rel="preload" href="/zh/assets/js/ccc49370.b142e6b6.js" as="script">
+<link rel="preload" href="/zh/assets/js/2d8fe9ee.b9f3aac6.js" as="script">
+<link rel="preload" href="/zh/assets/js/a4a2cefa.60191566.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
-<script src="/zh/assets/js/styles.d25a02cf.js"></script>
-<script src="/zh/assets/js/runtime~main.d3f78d59.js"></script>
-<script src="/zh/assets/js/main.8ce1e08c.js"></script>
-<script src="/zh/assets/js/1.b21fad17.js"></script>
-<script src="/zh/assets/js/2.c74b4887.js"></script>
-<script src="/zh/assets/js/4.a448f392.js"></script>
-<script src="/zh/assets/js/ccc49370.938f9db4.js"></script>
-<script src="/zh/assets/js/2d8fe9ee.fbf876c8.js"></script>
-<script src="/zh/assets/js/a4a2cefa.309c52fd.js"></script>
+<script src="/zh/assets/js/styles.8ae08ebc.js"></script>
+<script src="/zh/assets/js/runtime~main.0b5a1314.js"></script>
+<script src="/zh/assets/js/main.0749e470.js"></script>
+<script src="/zh/assets/js/1.3237074b.js"></script>
+<script src="/zh/assets/js/2.e4d54c2b.js"></script>
+<script src="/zh/assets/js/4.02c38c66.js"></script>
+<script src="/zh/assets/js/ccc49370.b142e6b6.js"></script>
+<script src="/zh/assets/js/2d8fe9ee.b9f3aac6.js"></script>
+<script src="/zh/assets/js/a4a2cefa.60191566.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh/blog/2021/01/21/run-ingress-apisix-on-amazon-eks/index.html b/zh/blog/2021/01/21/run-ingress-apisix-on-amazon-eks/index.html
index 34a7a39..96ca883 100644
--- a/zh/blog/2021/01/21/run-ingress-apisix-on-amazon-eks/index.html
+++ b/zh/blog/2021/01/21/run-ingress-apisix-on-amazon-eks/index.html
@@ -11,28 +11,28 @@
 <link rel="alternate" type="application/rss+xml" href="/zh/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Run Ingress APISIX on Amazon EKS | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Run Ingress APISIX on Amazon EKS | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="@Chao Zhang, Apache APISIX Comitter from Shenzhen Zhiliu Technology Co."><meta data-react-helmet="true" nam [...]
-<link rel="preload" href="/zh/assets/js/styles.d25a02cf.js" as="script">
-<link rel="preload" href="/zh/assets/js/runtime~main.d3f78d59.js" as="script">
-<link rel="preload" href="/zh/assets/js/main.8ce1e08c.js" as="script">
-<link rel="preload" href="/zh/assets/js/1.b21fad17.js" as="script">
-<link rel="preload" href="/zh/assets/js/2.c74b4887.js" as="script">
-<link rel="preload" href="/zh/assets/js/4.a448f392.js" as="script">
-<link rel="preload" href="/zh/assets/js/ccc49370.938f9db4.js" as="script">
-<link rel="preload" href="/zh/assets/js/2d8fe9ee.fbf876c8.js" as="script">
-<link rel="preload" href="/zh/assets/js/1c89ab3b.19ea93a0.js" as="script">
+<link rel="preload" href="/zh/assets/js/styles.8ae08ebc.js" as="script">
+<link rel="preload" href="/zh/assets/js/runtime~main.0b5a1314.js" as="script">
+<link rel="preload" href="/zh/assets/js/main.0749e470.js" as="script">
+<link rel="preload" href="/zh/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/zh/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/zh/assets/js/4.02c38c66.js" as="script">
+<link rel="preload" href="/zh/assets/js/ccc49370.b142e6b6.js" as="script">
+<link rel="preload" href="/zh/assets/js/2d8fe9ee.b9f3aac6.js" as="script">
+<link rel="preload" href="/zh/assets/js/1c89ab3b.bd66ba2f.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  </span><span class="token string" style="color:rgb(195, 232, 141)">&quot;headers&quot;</span><span class="token builtin class-name" style="color:rgb(255, 203, 107)">:</span><span class="token plain"> </span><span c [...]
-<script src="/zh/assets/js/styles.d25a02cf.js"></script>
-<script src="/zh/assets/js/runtime~main.d3f78d59.js"></script>
-<script src="/zh/assets/js/main.8ce1e08c.js"></script>
-<script src="/zh/assets/js/1.b21fad17.js"></script>
-<script src="/zh/assets/js/2.c74b4887.js"></script>
-<script src="/zh/assets/js/4.a448f392.js"></script>
-<script src="/zh/assets/js/ccc49370.938f9db4.js"></script>
-<script src="/zh/assets/js/2d8fe9ee.fbf876c8.js"></script>
-<script src="/zh/assets/js/1c89ab3b.19ea93a0.js"></script>
+<script src="/zh/assets/js/styles.8ae08ebc.js"></script>
+<script src="/zh/assets/js/runtime~main.0b5a1314.js"></script>
+<script src="/zh/assets/js/main.0749e470.js"></script>
+<script src="/zh/assets/js/1.3237074b.js"></script>
+<script src="/zh/assets/js/2.e4d54c2b.js"></script>
+<script src="/zh/assets/js/4.02c38c66.js"></script>
+<script src="/zh/assets/js/ccc49370.b142e6b6.js"></script>
+<script src="/zh/assets/js/2d8fe9ee.b9f3aac6.js"></script>
+<script src="/zh/assets/js/1c89ab3b.bd66ba2f.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh/blog/2021/02/08/stable-product-delivery-with-cypress/index.html b/zh/blog/2021/02/08/stable-product-delivery-with-cypress/index.html
index 7efc052..88c63e6 100644
--- a/zh/blog/2021/02/08/stable-product-delivery-with-cypress/index.html
+++ b/zh/blog/2021/02/08/stable-product-delivery-with-cypress/index.html
@@ -11,27 +11,27 @@
 <link rel="alternate" type="application/rss+xml" href="/zh/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Stable Product Delivery with Cypress | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Stable Product Delivery with Cypress | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="@LiteSun, Apache APISIX Committer from Shenzhen Zhiliu Technology Co."><meta data-react-helmet="tru [...]
-<link rel="preload" href="/zh/assets/js/styles.d25a02cf.js" as="script">
-<link rel="preload" href="/zh/assets/js/runtime~main.d3f78d59.js" as="script">
-<link rel="preload" href="/zh/assets/js/main.8ce1e08c.js" as="script">
-<link rel="preload" href="/zh/assets/js/1.b21fad17.js" as="script">
-<link rel="preload" href="/zh/assets/js/2.c74b4887.js" as="script">
-<link rel="preload" href="/zh/assets/js/4.a448f392.js" as="script">
-<link rel="preload" href="/zh/assets/js/ccc49370.938f9db4.js" as="script">
-<link rel="preload" href="/zh/assets/js/2d8fe9ee.fbf876c8.js" as="script">
-<link rel="preload" href="/zh/assets/js/47e0bf55.1e18a655.js" as="script">
+<link rel="preload" href="/zh/assets/js/styles.8ae08ebc.js" as="script">
+<link rel="preload" href="/zh/assets/js/runtime~main.0b5a1314.js" as="script">
+<link rel="preload" href="/zh/assets/js/main.0749e470.js" as="script">
+<link rel="preload" href="/zh/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/zh/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/zh/assets/js/4.02c38c66.js" as="script">
+<link rel="preload" href="/zh/assets/js/ccc49370.b142e6b6.js" as="script">
+<link rel="preload" href="/zh/assets/js/2d8fe9ee.b9f3aac6.js" as="script">
+<link rel="preload" href="/zh/assets/js/47e0bf55.12d78c9c.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
-<script src="/zh/assets/js/styles.d25a02cf.js"></script>
-<script src="/zh/assets/js/runtime~main.d3f78d59.js"></script>
-<script src="/zh/assets/js/main.8ce1e08c.js"></script>
-<script src="/zh/assets/js/1.b21fad17.js"></script>
-<script src="/zh/assets/js/2.c74b4887.js"></script>
-<script src="/zh/assets/js/4.a448f392.js"></script>
-<script src="/zh/assets/js/ccc49370.938f9db4.js"></script>
-<script src="/zh/assets/js/2d8fe9ee.fbf876c8.js"></script>
-<script src="/zh/assets/js/47e0bf55.1e18a655.js"></script>
+<script src="/zh/assets/js/styles.8ae08ebc.js"></script>
+<script src="/zh/assets/js/runtime~main.0b5a1314.js"></script>
+<script src="/zh/assets/js/main.0749e470.js"></script>
+<script src="/zh/assets/js/1.3237074b.js"></script>
+<script src="/zh/assets/js/2.e4d54c2b.js"></script>
+<script src="/zh/assets/js/4.02c38c66.js"></script>
+<script src="/zh/assets/js/ccc49370.b142e6b6.js"></script>
+<script src="/zh/assets/js/2d8fe9ee.b9f3aac6.js"></script>
+<script src="/zh/assets/js/47e0bf55.12d78c9c.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh/blog/index.html b/zh/blog/index.html
index 134959a..2c66ee4 100644
--- a/zh/blog/index.html
+++ b/zh/blog/index.html
@@ -11,20 +11,20 @@
 <link rel="alternate" type="application/rss+xml" href="/zh/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Blog | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Blog | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="Blog"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://apisix.apa [...]
-<link rel="preload" href="/zh/assets/js/styles.d25a02cf.js" as="script">
-<link rel="preload" href="/zh/assets/js/runtime~main.d3f78d59.js" as="script">
-<link rel="preload" href="/zh/assets/js/main.8ce1e08c.js" as="script">
-<link rel="preload" href="/zh/assets/js/1.b21fad17.js" as="script">
-<link rel="preload" href="/zh/assets/js/2.c74b4887.js" as="script">
-<link rel="preload" href="/zh/assets/js/4.a448f392.js" as="script">
-<link rel="preload" href="/zh/assets/js/a6aa9e1f.c641128b.js" as="script">
-<link rel="preload" href="/zh/assets/js/2d8fe9ee.fbf876c8.js" as="script">
-<link rel="preload" href="/zh/assets/js/e451ae2c.b451f25a.js" as="script">
-<link rel="preload" href="/zh/assets/js/514de2af.c87083ac.js" as="script">
-<link rel="preload" href="/zh/assets/js/5bb67ffc.5facfc0f.js" as="script">
-<link rel="preload" href="/zh/assets/js/e02da2c5.2b498400.js" as="script">
-<link rel="preload" href="/zh/assets/js/37e3b3ea.6fa5c709.js" as="script">
-<link rel="preload" href="/zh/assets/js/3a332aed.00986c3a.js" as="script">
+<link rel="preload" href="/zh/assets/js/styles.8ae08ebc.js" as="script">
+<link rel="preload" href="/zh/assets/js/runtime~main.0b5a1314.js" as="script">
+<link rel="preload" href="/zh/assets/js/main.0749e470.js" as="script">
+<link rel="preload" href="/zh/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/zh/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/zh/assets/js/4.02c38c66.js" as="script">
+<link rel="preload" href="/zh/assets/js/a6aa9e1f.44ef45f8.js" as="script">
+<link rel="preload" href="/zh/assets/js/2d8fe9ee.b9f3aac6.js" as="script">
+<link rel="preload" href="/zh/assets/js/e451ae2c.7c7f3e19.js" as="script">
+<link rel="preload" href="/zh/assets/js/514de2af.ddff589b.js" as="script">
+<link rel="preload" href="/zh/assets/js/5bb67ffc.6676bc64.js" as="script">
+<link rel="preload" href="/zh/assets/js/e02da2c5.b96f4156.js" as="script">
+<link rel="preload" href="/zh/assets/js/37e3b3ea.f690ecb9.js" as="script">
+<link rel="preload" href="/zh/assets/js/3a332aed.f192c258.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -32,19 +32,19 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  </span><span class="token string" style="color:rgb(195, 232, 141)">&quot;headers&quot;</span><span class="token builtin class-name" style="color:rgb(255, 203, 107)">:</span><span class="token plain"> </span><span c [...]
 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 enhancedAnchor_2LWZ" id="expansion-method"></a>Expansion method<a class="hash-link" href="#expansion-method" title="Direct link to heading">#</a></h3><p>The existing filters may not meet the user&#x27;s custom requirements. In this  [...]
 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 enhancedAnchor_2LWZ" id="second-step-parse-request"></a>Second step, parse request<a class="hash-link" href="#second-step-parse-request" title="Direct link to heading">#</a></h4><p>We encapsulated the client request data into <code> [...]
-<script src="/zh/assets/js/styles.d25a02cf.js"></script>
-<script src="/zh/assets/js/runtime~main.d3f78d59.js"></script>
-<script src="/zh/assets/js/main.8ce1e08c.js"></script>
-<script src="/zh/assets/js/1.b21fad17.js"></script>
-<script src="/zh/assets/js/2.c74b4887.js"></script>
-<script src="/zh/assets/js/4.a448f392.js"></script>
-<script src="/zh/assets/js/a6aa9e1f.c641128b.js"></script>
-<script src="/zh/assets/js/2d8fe9ee.fbf876c8.js"></script>
-<script src="/zh/assets/js/e451ae2c.b451f25a.js"></script>
-<script src="/zh/assets/js/514de2af.c87083ac.js"></script>
-<script src="/zh/assets/js/5bb67ffc.5facfc0f.js"></script>
-<script src="/zh/assets/js/e02da2c5.2b498400.js"></script>
-<script src="/zh/assets/js/37e3b3ea.6fa5c709.js"></script>
-<script src="/zh/assets/js/3a332aed.00986c3a.js"></script>
+<script src="/zh/assets/js/styles.8ae08ebc.js"></script>
+<script src="/zh/assets/js/runtime~main.0b5a1314.js"></script>
+<script src="/zh/assets/js/main.0749e470.js"></script>
+<script src="/zh/assets/js/1.3237074b.js"></script>
+<script src="/zh/assets/js/2.e4d54c2b.js"></script>
+<script src="/zh/assets/js/4.02c38c66.js"></script>
+<script src="/zh/assets/js/a6aa9e1f.44ef45f8.js"></script>
+<script src="/zh/assets/js/2d8fe9ee.b9f3aac6.js"></script>
+<script src="/zh/assets/js/e451ae2c.7c7f3e19.js"></script>
+<script src="/zh/assets/js/514de2af.ddff589b.js"></script>
+<script src="/zh/assets/js/5bb67ffc.6676bc64.js"></script>
+<script src="/zh/assets/js/e02da2c5.b96f4156.js"></script>
+<script src="/zh/assets/js/37e3b3ea.f690ecb9.js"></script>
+<script src="/zh/assets/js/3a332aed.f192c258.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh/docs/apisix/introduction/index.html b/zh/docs/apisix/introduction/index.html
index 27d3c4d..84bbb08 100644
--- a/zh/docs/apisix/introduction/index.html
+++ b/zh/docs/apisix/introduction/index.html
@@ -11,27 +11,27 @@
 <link rel="alternate" type="application/rss+xml" href="/zh/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Introduction | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="zh"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs-do [...]
-<link rel="preload" href="/zh/assets/js/styles.d25a02cf.js" as="script">
-<link rel="preload" href="/zh/assets/js/runtime~main.d3f78d59.js" as="script">
-<link rel="preload" href="/zh/assets/js/main.8ce1e08c.js" as="script">
-<link rel="preload" href="/zh/assets/js/1.b21fad17.js" as="script">
-<link rel="preload" href="/zh/assets/js/2.c74b4887.js" as="script">
-<link rel="preload" href="/zh/assets/js/1be78505.d24880b0.js" as="script">
-<link rel="preload" href="/zh/assets/js/d73fca9b.42736b26.js" as="script">
-<link rel="preload" href="/zh/assets/js/17896441.ab569ce4.js" as="script">
-<link rel="preload" href="/zh/assets/js/1b2ed0ef.1ea9785f.js" as="script">
+<link rel="preload" href="/zh/assets/js/styles.8ae08ebc.js" as="script">
+<link rel="preload" href="/zh/assets/js/runtime~main.0b5a1314.js" as="script">
+<link rel="preload" href="/zh/assets/js/main.0749e470.js" as="script">
+<link rel="preload" href="/zh/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/zh/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/zh/assets/js/1be78505.a6852249.js" as="script">
+<link rel="preload" href="/zh/assets/js/d73fca9b.a6800911.js" as="script">
+<link rel="preload" href="/zh/assets/js/17896441.e58bae36.js" as="script">
+<link rel="preload" href="/zh/assets/js/1b2ed0ef.30fe001f.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
-<script src="/zh/assets/js/styles.d25a02cf.js"></script>
-<script src="/zh/assets/js/runtime~main.d3f78d59.js"></script>
-<script src="/zh/assets/js/main.8ce1e08c.js"></script>
-<script src="/zh/assets/js/1.b21fad17.js"></script>
-<script src="/zh/assets/js/2.c74b4887.js"></script>
-<script src="/zh/assets/js/1be78505.d24880b0.js"></script>
-<script src="/zh/assets/js/d73fca9b.42736b26.js"></script>
-<script src="/zh/assets/js/17896441.ab569ce4.js"></script>
-<script src="/zh/assets/js/1b2ed0ef.1ea9785f.js"></script>
+<script src="/zh/assets/js/styles.8ae08ebc.js"></script>
+<script src="/zh/assets/js/runtime~main.0b5a1314.js"></script>
+<script src="/zh/assets/js/main.0749e470.js"></script>
+<script src="/zh/assets/js/1.3237074b.js"></script>
+<script src="/zh/assets/js/2.e4d54c2b.js"></script>
+<script src="/zh/assets/js/1be78505.a6852249.js"></script>
+<script src="/zh/assets/js/d73fca9b.a6800911.js"></script>
+<script src="/zh/assets/js/17896441.e58bae36.js"></script>
+<script src="/zh/assets/js/1b2ed0ef.30fe001f.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh/docs/dashboard/introduction/index.html b/zh/docs/dashboard/introduction/index.html
index b85287f..1dea3ef 100644
--- a/zh/docs/dashboard/introduction/index.html
+++ b/zh/docs/dashboard/introduction/index.html
@@ -11,27 +11,27 @@
 <link rel="alternate" type="application/rss+xml" href="/zh/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Introduction | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="zh"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs-do [...]
-<link rel="preload" href="/zh/assets/js/styles.d25a02cf.js" as="script">
-<link rel="preload" href="/zh/assets/js/runtime~main.d3f78d59.js" as="script">
-<link rel="preload" href="/zh/assets/js/main.8ce1e08c.js" as="script">
-<link rel="preload" href="/zh/assets/js/1.b21fad17.js" as="script">
-<link rel="preload" href="/zh/assets/js/2.c74b4887.js" as="script">
-<link rel="preload" href="/zh/assets/js/1be78505.d24880b0.js" as="script">
-<link rel="preload" href="/zh/assets/js/f243156b.3b8ec092.js" as="script">
-<link rel="preload" href="/zh/assets/js/17896441.ab569ce4.js" as="script">
-<link rel="preload" href="/zh/assets/js/6f9b6084.47c7a420.js" as="script">
+<link rel="preload" href="/zh/assets/js/styles.8ae08ebc.js" as="script">
+<link rel="preload" href="/zh/assets/js/runtime~main.0b5a1314.js" as="script">
+<link rel="preload" href="/zh/assets/js/main.0749e470.js" as="script">
+<link rel="preload" href="/zh/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/zh/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/zh/assets/js/1be78505.a6852249.js" as="script">
+<link rel="preload" href="/zh/assets/js/f243156b.c45320cb.js" as="script">
+<link rel="preload" href="/zh/assets/js/17896441.e58bae36.js" as="script">
+<link rel="preload" href="/zh/assets/js/6f9b6084.bbbc7524.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
-<script src="/zh/assets/js/styles.d25a02cf.js"></script>
-<script src="/zh/assets/js/runtime~main.d3f78d59.js"></script>
-<script src="/zh/assets/js/main.8ce1e08c.js"></script>
-<script src="/zh/assets/js/1.b21fad17.js"></script>
-<script src="/zh/assets/js/2.c74b4887.js"></script>
-<script src="/zh/assets/js/1be78505.d24880b0.js"></script>
-<script src="/zh/assets/js/f243156b.3b8ec092.js"></script>
-<script src="/zh/assets/js/17896441.ab569ce4.js"></script>
-<script src="/zh/assets/js/6f9b6084.47c7a420.js"></script>
+<script src="/zh/assets/js/styles.8ae08ebc.js"></script>
+<script src="/zh/assets/js/runtime~main.0b5a1314.js"></script>
+<script src="/zh/assets/js/main.0749e470.js"></script>
+<script src="/zh/assets/js/1.3237074b.js"></script>
+<script src="/zh/assets/js/2.e4d54c2b.js"></script>
+<script src="/zh/assets/js/1be78505.a6852249.js"></script>
+<script src="/zh/assets/js/f243156b.c45320cb.js"></script>
+<script src="/zh/assets/js/17896441.e58bae36.js"></script>
+<script src="/zh/assets/js/6f9b6084.bbbc7524.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh/docs/general/2fa/index.html b/zh/docs/general/2fa/index.html
index bd27804..e9934fd 100644
--- a/zh/docs/general/2fa/index.html
+++ b/zh/docs/general/2fa/index.html
@@ -11,27 +11,27 @@
 <link rel="alternate" type="application/rss+xml" href="/zh/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">2FA | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="zh"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs-default-cur [...]
-<link rel="preload" href="/zh/assets/js/styles.d25a02cf.js" as="script">
-<link rel="preload" href="/zh/assets/js/runtime~main.d3f78d59.js" as="script">
-<link rel="preload" href="/zh/assets/js/main.8ce1e08c.js" as="script">
-<link rel="preload" href="/zh/assets/js/1.b21fad17.js" as="script">
-<link rel="preload" href="/zh/assets/js/2.c74b4887.js" as="script">
-<link rel="preload" href="/zh/assets/js/1be78505.d24880b0.js" as="script">
-<link rel="preload" href="/zh/assets/js/935f2afb.2a534bfd.js" as="script">
-<link rel="preload" href="/zh/assets/js/17896441.ab569ce4.js" as="script">
-<link rel="preload" href="/zh/assets/js/3dc9f306.9d4a6d24.js" as="script">
+<link rel="preload" href="/zh/assets/js/styles.8ae08ebc.js" as="script">
+<link rel="preload" href="/zh/assets/js/runtime~main.0b5a1314.js" as="script">
+<link rel="preload" href="/zh/assets/js/main.0749e470.js" as="script">
+<link rel="preload" href="/zh/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/zh/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/zh/assets/js/1be78505.a6852249.js" as="script">
+<link rel="preload" href="/zh/assets/js/935f2afb.ef7de6cb.js" as="script">
+<link rel="preload" href="/zh/assets/js/17896441.e58bae36.js" as="script">
+<link rel="preload" href="/zh/assets/js/3dc9f306.ab8af202.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
-<script src="/zh/assets/js/styles.d25a02cf.js"></script>
-<script src="/zh/assets/js/runtime~main.d3f78d59.js"></script>
-<script src="/zh/assets/js/main.8ce1e08c.js"></script>
-<script src="/zh/assets/js/1.b21fad17.js"></script>
-<script src="/zh/assets/js/2.c74b4887.js"></script>
-<script src="/zh/assets/js/1be78505.d24880b0.js"></script>
-<script src="/zh/assets/js/935f2afb.2a534bfd.js"></script>
-<script src="/zh/assets/js/17896441.ab569ce4.js"></script>
-<script src="/zh/assets/js/3dc9f306.9d4a6d24.js"></script>
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
+<script src="/zh/assets/js/styles.8ae08ebc.js"></script>
+<script src="/zh/assets/js/runtime~main.0b5a1314.js"></script>
+<script src="/zh/assets/js/main.0749e470.js"></script>
+<script src="/zh/assets/js/1.3237074b.js"></script>
+<script src="/zh/assets/js/2.e4d54c2b.js"></script>
+<script src="/zh/assets/js/1be78505.a6852249.js"></script>
+<script src="/zh/assets/js/935f2afb.ef7de6cb.js"></script>
+<script src="/zh/assets/js/17896441.e58bae36.js"></script>
+<script src="/zh/assets/js/3dc9f306.ab8af202.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh/docs/general/committer-guide/index.html b/zh/docs/general/committer-guide/index.html
index 9116a0d..e6d96b5 100644
--- a/zh/docs/general/committer-guide/index.html
+++ b/zh/docs/general/committer-guide/index.html
@@ -11,27 +11,27 @@
 <link rel="alternate" type="application/rss+xml" href="/zh/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link 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 Guide | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="zh"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs [...]
-<link rel="preload" href="/zh/assets/js/styles.d25a02cf.js" as="script">
-<link rel="preload" href="/zh/assets/js/runtime~main.d3f78d59.js" as="script">
-<link rel="preload" href="/zh/assets/js/main.8ce1e08c.js" as="script">
-<link rel="preload" href="/zh/assets/js/1.b21fad17.js" as="script">
-<link rel="preload" href="/zh/assets/js/2.c74b4887.js" as="script">
-<link rel="preload" href="/zh/assets/js/1be78505.d24880b0.js" as="script">
-<link rel="preload" href="/zh/assets/js/935f2afb.2a534bfd.js" as="script">
-<link rel="preload" href="/zh/assets/js/17896441.ab569ce4.js" as="script">
-<link rel="preload" href="/zh/assets/js/8e784bf3.b6e04c50.js" as="script">
+<link rel="preload" href="/zh/assets/js/styles.8ae08ebc.js" as="script">
+<link rel="preload" href="/zh/assets/js/runtime~main.0b5a1314.js" as="script">
+<link rel="preload" href="/zh/assets/js/main.0749e470.js" as="script">
+<link rel="preload" href="/zh/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/zh/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/zh/assets/js/1be78505.a6852249.js" as="script">
+<link rel="preload" href="/zh/assets/js/935f2afb.ef7de6cb.js" as="script">
+<link rel="preload" href="/zh/assets/js/17896441.e58bae36.js" as="script">
+<link rel="preload" href="/zh/assets/js/8e784bf3.0b3c8a01.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
-<script src="/zh/assets/js/styles.d25a02cf.js"></script>
-<script src="/zh/assets/js/runtime~main.d3f78d59.js"></script>
-<script src="/zh/assets/js/main.8ce1e08c.js"></script>
-<script src="/zh/assets/js/1.b21fad17.js"></script>
-<script src="/zh/assets/js/2.c74b4887.js"></script>
-<script src="/zh/assets/js/1be78505.d24880b0.js"></script>
-<script src="/zh/assets/js/935f2afb.2a534bfd.js"></script>
-<script src="/zh/assets/js/17896441.ab569ce4.js"></script>
-<script src="/zh/assets/js/8e784bf3.b6e04c50.js"></script>
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
+<script src="/zh/assets/js/styles.8ae08ebc.js"></script>
+<script src="/zh/assets/js/runtime~main.0b5a1314.js"></script>
+<script src="/zh/assets/js/main.0749e470.js"></script>
+<script src="/zh/assets/js/1.3237074b.js"></script>
+<script src="/zh/assets/js/2.e4d54c2b.js"></script>
+<script src="/zh/assets/js/1be78505.a6852249.js"></script>
+<script src="/zh/assets/js/935f2afb.ef7de6cb.js"></script>
+<script src="/zh/assets/js/17896441.e58bae36.js"></script>
+<script src="/zh/assets/js/8e784bf3.0b3c8a01.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh/docs/general/contributor-guide/index.html b/zh/docs/general/contributor-guide/index.html
index 8fcbab4..2887ccf 100644
--- a/zh/docs/general/contributor-guide/index.html
+++ b/zh/docs/general/contributor-guide/index.html
@@ -11,27 +11,27 @@
 <link rel="alternate" type="application/rss+xml" href="/zh/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Contributor Guide | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="zh"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="do [...]
-<link rel="preload" href="/zh/assets/js/styles.d25a02cf.js" as="script">
-<link rel="preload" href="/zh/assets/js/runtime~main.d3f78d59.js" as="script">
-<link rel="preload" href="/zh/assets/js/main.8ce1e08c.js" as="script">
-<link rel="preload" href="/zh/assets/js/1.b21fad17.js" as="script">
-<link rel="preload" href="/zh/assets/js/2.c74b4887.js" as="script">
-<link rel="preload" href="/zh/assets/js/1be78505.d24880b0.js" as="script">
-<link rel="preload" href="/zh/assets/js/935f2afb.2a534bfd.js" as="script">
-<link rel="preload" href="/zh/assets/js/17896441.ab569ce4.js" as="script">
-<link rel="preload" href="/zh/assets/js/adbb350b.b4246bac.js" as="script">
+<link rel="preload" href="/zh/assets/js/styles.8ae08ebc.js" as="script">
+<link rel="preload" href="/zh/assets/js/runtime~main.0b5a1314.js" as="script">
+<link rel="preload" href="/zh/assets/js/main.0749e470.js" as="script">
+<link rel="preload" href="/zh/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/zh/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/zh/assets/js/1be78505.a6852249.js" as="script">
+<link rel="preload" href="/zh/assets/js/935f2afb.ef7de6cb.js" as="script">
+<link rel="preload" href="/zh/assets/js/17896441.e58bae36.js" as="script">
+<link rel="preload" href="/zh/assets/js/adbb350b.c03146e8.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
-<script src="/zh/assets/js/styles.d25a02cf.js"></script>
-<script src="/zh/assets/js/runtime~main.d3f78d59.js"></script>
-<script src="/zh/assets/js/main.8ce1e08c.js"></script>
-<script src="/zh/assets/js/1.b21fad17.js"></script>
-<script src="/zh/assets/js/2.c74b4887.js"></script>
-<script src="/zh/assets/js/1be78505.d24880b0.js"></script>
-<script src="/zh/assets/js/935f2afb.2a534bfd.js"></script>
-<script src="/zh/assets/js/17896441.ab569ce4.js"></script>
-<script src="/zh/assets/js/adbb350b.b4246bac.js"></script>
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
+<script src="/zh/assets/js/styles.8ae08ebc.js"></script>
+<script src="/zh/assets/js/runtime~main.0b5a1314.js"></script>
+<script src="/zh/assets/js/main.0749e470.js"></script>
+<script src="/zh/assets/js/1.3237074b.js"></script>
+<script src="/zh/assets/js/2.e4d54c2b.js"></script>
+<script src="/zh/assets/js/1be78505.a6852249.js"></script>
+<script src="/zh/assets/js/935f2afb.ef7de6cb.js"></script>
+<script src="/zh/assets/js/17896441.e58bae36.js"></script>
+<script src="/zh/assets/js/adbb350b.c03146e8.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh/docs/general/release-guide/index.html b/zh/docs/general/release-guide/index.html
index 62b7573..b18741c 100644
--- a/zh/docs/general/release-guide/index.html
+++ b/zh/docs/general/release-guide/index.html
@@ -11,15 +11,15 @@
 <link rel="alternate" type="application/rss+xml" href="/zh/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link 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 Guide | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="zh"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs-d [...]
-<link rel="preload" href="/zh/assets/js/styles.d25a02cf.js" as="script">
-<link rel="preload" href="/zh/assets/js/runtime~main.d3f78d59.js" as="script">
-<link rel="preload" href="/zh/assets/js/main.8ce1e08c.js" as="script">
-<link rel="preload" href="/zh/assets/js/1.b21fad17.js" as="script">
-<link rel="preload" href="/zh/assets/js/2.c74b4887.js" as="script">
-<link rel="preload" href="/zh/assets/js/1be78505.d24880b0.js" as="script">
-<link rel="preload" href="/zh/assets/js/935f2afb.2a534bfd.js" as="script">
-<link rel="preload" href="/zh/assets/js/17896441.ab569ce4.js" as="script">
-<link rel="preload" href="/zh/assets/js/7af3052c.38082a70.js" as="script">
+<link rel="preload" href="/zh/assets/js/styles.8ae08ebc.js" as="script">
+<link rel="preload" href="/zh/assets/js/runtime~main.0b5a1314.js" as="script">
+<link rel="preload" href="/zh/assets/js/main.0749e470.js" as="script">
+<link rel="preload" href="/zh/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/zh/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/zh/assets/js/1be78505.a6852249.js" as="script">
+<link rel="preload" href="/zh/assets/js/935f2afb.ef7de6cb.js" as="script">
+<link rel="preload" href="/zh/assets/js/17896441.e58bae36.js" as="script">
+<link rel="preload" href="/zh/assets/js/7af3052c.4a3e2915.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -69,15 +69,15 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">The vote will be open for at least 72 hours or until necessary number of</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">votes are reached.</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Please vote accordingly:</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">[ ] +1 approve</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">[ ] +0 no opinion</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">[ ] -1 disapprove with the reason</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
-</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><h3><a aria-hidden="true" tabindex="-1" class="anchor enhancedAnchor_2LWZ" id="send-vote-result-thread-to-the-dev-mailing-list"></a>Send VOTE RESULT thread to the dev mailing list<a class="hash-link" href="#send-vote-result-thread-to-the-dev-mailing-list" title="Direct link to heading">#</a></h3><p>Click <a href="https://lists.apache.org/thread.html/r9153da7 [...]
-<script src="/zh/assets/js/styles.d25a02cf.js"></script>
-<script src="/zh/assets/js/runtime~main.d3f78d59.js"></script>
-<script src="/zh/assets/js/main.8ce1e08c.js"></script>
-<script src="/zh/assets/js/1.b21fad17.js"></script>
-<script src="/zh/assets/js/2.c74b4887.js"></script>
-<script src="/zh/assets/js/1be78505.d24880b0.js"></script>
-<script src="/zh/assets/js/935f2afb.2a534bfd.js"></script>
-<script src="/zh/assets/js/17896441.ab569ce4.js"></script>
-<script src="/zh/assets/js/7af3052c.38082a70.js"></script>
+</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><h3><a aria-hidden="true" tabindex="-1" class="anchor enhancedAnchor_2LWZ" id="send-vote-result-thread-to-the-dev-mailing-list"></a>Send VOTE RESULT thread to the dev mailing list<a class="hash-link" href="#send-vote-result-thread-to-the-dev-mailing-list" title="Direct link to heading">#</a></h3><p>Click <a href="https://lists.apache.org/thread.html/r9153da7 [...]
+<script src="/zh/assets/js/styles.8ae08ebc.js"></script>
+<script src="/zh/assets/js/runtime~main.0b5a1314.js"></script>
+<script src="/zh/assets/js/main.0749e470.js"></script>
+<script src="/zh/assets/js/1.3237074b.js"></script>
+<script src="/zh/assets/js/2.e4d54c2b.js"></script>
+<script src="/zh/assets/js/1be78505.a6852249.js"></script>
+<script src="/zh/assets/js/935f2afb.ef7de6cb.js"></script>
+<script src="/zh/assets/js/17896441.e58bae36.js"></script>
+<script src="/zh/assets/js/7af3052c.4a3e2915.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh/docs/general/security/index.html b/zh/docs/general/security/index.html
index 852d272..f64c1fb 100644
--- a/zh/docs/general/security/index.html
+++ b/zh/docs/general/security/index.html
@@ -11,27 +11,27 @@
 <link rel="alternate" type="application/rss+xml" href="/zh/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Security | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="zh"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs-defaul [...]
-<link rel="preload" href="/zh/assets/js/styles.d25a02cf.js" as="script">
-<link rel="preload" href="/zh/assets/js/runtime~main.d3f78d59.js" as="script">
-<link rel="preload" href="/zh/assets/js/main.8ce1e08c.js" as="script">
-<link rel="preload" href="/zh/assets/js/1.b21fad17.js" as="script">
-<link rel="preload" href="/zh/assets/js/2.c74b4887.js" as="script">
-<link rel="preload" href="/zh/assets/js/1be78505.d24880b0.js" as="script">
-<link rel="preload" href="/zh/assets/js/935f2afb.2a534bfd.js" as="script">
-<link rel="preload" href="/zh/assets/js/17896441.ab569ce4.js" as="script">
-<link rel="preload" href="/zh/assets/js/66fbb9c2.3ba511fe.js" as="script">
+<link rel="preload" href="/zh/assets/js/styles.8ae08ebc.js" as="script">
+<link rel="preload" href="/zh/assets/js/runtime~main.0b5a1314.js" as="script">
+<link rel="preload" href="/zh/assets/js/main.0749e470.js" as="script">
+<link rel="preload" href="/zh/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/zh/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/zh/assets/js/1be78505.a6852249.js" as="script">
+<link rel="preload" href="/zh/assets/js/935f2afb.ef7de6cb.js" as="script">
+<link rel="preload" href="/zh/assets/js/17896441.e58bae36.js" as="script">
+<link rel="preload" href="/zh/assets/js/66fbb9c2.ceb2996a.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
-<script src="/zh/assets/js/styles.d25a02cf.js"></script>
-<script src="/zh/assets/js/runtime~main.d3f78d59.js"></script>
-<script src="/zh/assets/js/main.8ce1e08c.js"></script>
-<script src="/zh/assets/js/1.b21fad17.js"></script>
-<script src="/zh/assets/js/2.c74b4887.js"></script>
-<script src="/zh/assets/js/1be78505.d24880b0.js"></script>
-<script src="/zh/assets/js/935f2afb.2a534bfd.js"></script>
-<script src="/zh/assets/js/17896441.ab569ce4.js"></script>
-<script src="/zh/assets/js/66fbb9c2.3ba511fe.js"></script>
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
+<script src="/zh/assets/js/styles.8ae08ebc.js"></script>
+<script src="/zh/assets/js/runtime~main.0b5a1314.js"></script>
+<script src="/zh/assets/js/main.0749e470.js"></script>
+<script src="/zh/assets/js/1.3237074b.js"></script>
+<script src="/zh/assets/js/2.e4d54c2b.js"></script>
+<script src="/zh/assets/js/1be78505.a6852249.js"></script>
+<script src="/zh/assets/js/935f2afb.ef7de6cb.js"></script>
+<script src="/zh/assets/js/17896441.e58bae36.js"></script>
+<script src="/zh/assets/js/66fbb9c2.ceb2996a.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh/docs/general/subscribe-guide/index.html b/zh/docs/general/subscribe-guide/index.html
index f2df606..c50cfc7 100644
--- a/zh/docs/general/subscribe-guide/index.html
+++ b/zh/docs/general/subscribe-guide/index.html
@@ -11,27 +11,27 @@
 <link rel="alternate" type="application/rss+xml" href="/zh/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Subscribe Guide | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="zh"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs [...]
-<link rel="preload" href="/zh/assets/js/styles.d25a02cf.js" as="script">
-<link rel="preload" href="/zh/assets/js/runtime~main.d3f78d59.js" as="script">
-<link rel="preload" href="/zh/assets/js/main.8ce1e08c.js" as="script">
-<link rel="preload" href="/zh/assets/js/1.b21fad17.js" as="script">
-<link rel="preload" href="/zh/assets/js/2.c74b4887.js" as="script">
-<link rel="preload" href="/zh/assets/js/1be78505.d24880b0.js" as="script">
-<link rel="preload" href="/zh/assets/js/935f2afb.2a534bfd.js" as="script">
-<link rel="preload" href="/zh/assets/js/17896441.ab569ce4.js" as="script">
-<link rel="preload" href="/zh/assets/js/50facf8e.f2524bf0.js" as="script">
+<link rel="preload" href="/zh/assets/js/styles.8ae08ebc.js" as="script">
+<link rel="preload" href="/zh/assets/js/runtime~main.0b5a1314.js" as="script">
+<link rel="preload" href="/zh/assets/js/main.0749e470.js" as="script">
+<link rel="preload" href="/zh/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/zh/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/zh/assets/js/1be78505.a6852249.js" as="script">
+<link rel="preload" href="/zh/assets/js/935f2afb.ef7de6cb.js" as="script">
+<link rel="preload" href="/zh/assets/js/17896441.e58bae36.js" as="script">
+<link rel="preload" href="/zh/assets/js/50facf8e.3be2ee6d.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
-<script src="/zh/assets/js/styles.d25a02cf.js"></script>
-<script src="/zh/assets/js/runtime~main.d3f78d59.js"></script>
-<script src="/zh/assets/js/main.8ce1e08c.js"></script>
-<script src="/zh/assets/js/1.b21fad17.js"></script>
-<script src="/zh/assets/js/2.c74b4887.js"></script>
-<script src="/zh/assets/js/1be78505.d24880b0.js"></script>
-<script src="/zh/assets/js/935f2afb.2a534bfd.js"></script>
-<script src="/zh/assets/js/17896441.ab569ce4.js"></script>
-<script src="/zh/assets/js/50facf8e.f2524bf0.js"></script>
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
+<script src="/zh/assets/js/styles.8ae08ebc.js"></script>
+<script src="/zh/assets/js/runtime~main.0b5a1314.js"></script>
+<script src="/zh/assets/js/main.0749e470.js"></script>
+<script src="/zh/assets/js/1.3237074b.js"></script>
+<script src="/zh/assets/js/2.e4d54c2b.js"></script>
+<script src="/zh/assets/js/1be78505.a6852249.js"></script>
+<script src="/zh/assets/js/935f2afb.ef7de6cb.js"></script>
+<script src="/zh/assets/js/17896441.e58bae36.js"></script>
+<script src="/zh/assets/js/50facf8e.3be2ee6d.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh/docs/index.html b/zh/docs/index.html
index 4836122..2a806c2 100644
--- a/zh/docs/index.html
+++ b/zh/docs/index.html
@@ -11,23 +11,23 @@
 <link rel="alternate" type="application/rss+xml" href="/zh/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link 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™</title><meta data-react-helmet="true" property="og:title" content="Apache APISIX™"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//zh/docs"><meta data-react-helmet="true" name="docsearch:language" content="zh [...]
-<link rel="preload" href="/zh/assets/js/styles.d25a02cf.js" as="script">
-<link rel="preload" href="/zh/assets/js/runtime~main.d3f78d59.js" as="script">
-<link rel="preload" href="/zh/assets/js/main.8ce1e08c.js" as="script">
-<link rel="preload" href="/zh/assets/js/1.b21fad17.js" as="script">
-<link rel="preload" href="/zh/assets/js/2.c74b4887.js" as="script">
-<link rel="preload" href="/zh/assets/js/3.e5911a24.js" as="script">
-<link rel="preload" href="/zh/assets/js/25b7c3f2.1e053d90.js" as="script">
+<link rel="preload" href="/zh/assets/js/styles.8ae08ebc.js" as="script">
+<link rel="preload" href="/zh/assets/js/runtime~main.0b5a1314.js" as="script">
+<link rel="preload" href="/zh/assets/js/main.0749e470.js" as="script">
+<link rel="preload" href="/zh/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/zh/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/zh/assets/js/3.b8da59b5.js" as="script">
+<link rel="preload" href="/zh/assets/js/25b7c3f2.b10b26ef.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
-<script src="/zh/assets/js/styles.d25a02cf.js"></script>
-<script src="/zh/assets/js/runtime~main.d3f78d59.js"></script>
-<script src="/zh/assets/js/main.8ce1e08c.js"></script>
-<script src="/zh/assets/js/1.b21fad17.js"></script>
-<script src="/zh/assets/js/2.c74b4887.js"></script>
-<script src="/zh/assets/js/3.e5911a24.js"></script>
-<script src="/zh/assets/js/25b7c3f2.1e053d90.js"></script>
+<script src="/zh/assets/js/styles.8ae08ebc.js"></script>
+<script src="/zh/assets/js/runtime~main.0b5a1314.js"></script>
+<script src="/zh/assets/js/main.0749e470.js"></script>
+<script src="/zh/assets/js/1.3237074b.js"></script>
+<script src="/zh/assets/js/2.e4d54c2b.js"></script>
+<script src="/zh/assets/js/3.b8da59b5.js"></script>
+<script src="/zh/assets/js/25b7c3f2.b10b26ef.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh/docs/ingress-controller/CRD-specification/index.html b/zh/docs/ingress-controller/CRD-specification/index.html
new file mode 100644
index 0000000..7b89325
--- /dev/null
+++ b/zh/docs/ingress-controller/CRD-specification/index.html
@@ -0,0 +1,55 @@
+<!doctype html>
+<html lang="zh">
+<head>
+<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="robots" content="noindex, nofollow">
+<link rel="alternate" type="application/rss+xml" href="/zh/blog/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/zh/blog/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX™" href="/zh/opensearch.xml">
+<link rel="alternate" type="application/rss+xml" href="/zh/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/zh/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">CRD-specification | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="zh"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="do [...]
+<link rel="preload" href="/zh/assets/js/styles.8ae08ebc.js" as="script">
+<link rel="preload" href="/zh/assets/js/runtime~main.0b5a1314.js" as="script">
+<link rel="preload" href="/zh/assets/js/main.0749e470.js" as="script">
+<link rel="preload" href="/zh/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/zh/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/zh/assets/js/1be78505.a6852249.js" as="script">
+<link rel="preload" href="/zh/assets/js/b4a67526.4e6383ea.js" as="script">
+<link rel="preload" href="/zh/assets/js/17896441.e58bae36.js" as="script">
+<link rel="preload" href="/zh/assets/js/03b7a20f.3bf1c927.js" as="script">
+</head>
+<body>
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
+then loads and executes the corresponding plugin based on the matching result, and forwards the request to the specified Upstream.
+To learn more, please check the <a href="https://github.com/apache/apisix/blob/master/doc/architecture-design.md#route" target="_blank" rel="noopener noreferrer">Apache APISIX architecture-design docs</a>.</p><p>Structure example:</p><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style=" [...]
+load balancing, health check, retry, timeout parameters and etc.</p><p>Resort to <code>ApisixUpstream</code> and the Kubernetes Service, apisix ingress controller will generates the APISIX Upstream(s).
+To learn more, please check the <a href="https://github.com/apache/apisix/blob/master/doc/architecture-design.md#upstream" target="_blank" rel="noopener noreferrer">Apache APISIX architecture-design docs</a>.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor enhancedAnchor_2LWZ" id="configuring-load-balancer"></a>Configuring Load Balancer<a class="hash-link" href="#configuring-load-balancer" title="Direct link to heading">#</a></h3><p>A proper load balancing algorithm is required  [...]
+like the passive feedback capability.</p><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token key atrule">apiVersion</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> apisix.apache.org/v1</span></d [...]
+endpoints, once there are three consecutive requests with bad status code (one of <code>500</code>, <code>502</code>, <code>503</code>, <code>504</code>), the endpoint
+will be set to unhealthy and no requests can be routed there until it&#x27;s healthy again.</p><p>That&#x27;s why the active health checker comes in, endpoints might be down for a short while and ready again, the active health checker detects these unhealthy endpoints continuously, and pull them
+up once the healthy conditions are met (three consecutive requests got good status codes, e.g. <code>200</code> and <code>206</code>).</p><p>Note the active health checker is somewhat duplicated with the liveness/readiness probes but it&#x27;s required if the passive feedback mechanism is in use. So once you use the health check feature in ApisixUpstream,
+the active health checker is mandatory.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor enhancedAnchor_2LWZ" id="configuring-retry-and-timeout"></a>Configuring Retry and Timeout<a class="hash-link" href="#configuring-retry-and-timeout" title="Direct link to heading">#</a></h3><p>You may want the proxy to retry when requests occur faults like transient network errors
+or service unavailable, by default the retry count is <code>1</code>. You can change it by specifying the <code>retries</code> field.</p><p>The following configuration configures the <code>retries</code> to <code>3</code>, which indicates there&#x27;ll be at most <code>3</code> requests sent to
+Kubernetes service <code>httpbin</code>&#x27;s endpoints.</p><p>One should bear in mind that passing a request to the next endpoint is only possible
+if nothing has been sent to a client yet. That is, if an error or timeout occurs in the middle
+of the transferring of a response, fixing this is impossible.</p><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token key atrule">apiVersion</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> apisix [...]
+just change them in the <code>timeout</code> field.</p><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token key atrule">apiVersion</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> apisix.apache.or [...]
+In that case, you can create configurations for individual port.</p><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token key atrule">apiVersion</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> api [...]
+In the meanwhile, the ApisixUpstream <code>foo</code> sets <code>http</code> scheme for port <code>7000</code> and <code>grpc</code> scheme for <code>7001</code>
+(all ports are the service port). But both ports shares the load balancer configuration.</p><p><code>PortLevelSettings</code> is not mandatory if the service only exposes one port but is useful when multiple ports are defined.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor enhancedAnchor_2LWZ" id="configuration-references"></a>Configuration References<a class="hash-link" href="#configuration-references" title="Direct link to heading">#</a></h3><table><thead><tr><th>Field</th><t [...]
+To learn more, please check the <a href="https://github.com/apache/apisix/blob/master/doc/architecture-design.md#router" target="_blank" rel="noopener noreferrer">Apache APISIX architecture-design docs</a>.</p><p>Structure example:</p><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style= [...]
+<script src="/zh/assets/js/styles.8ae08ebc.js"></script>
+<script src="/zh/assets/js/runtime~main.0b5a1314.js"></script>
+<script src="/zh/assets/js/main.0749e470.js"></script>
+<script src="/zh/assets/js/1.3237074b.js"></script>
+<script src="/zh/assets/js/2.e4d54c2b.js"></script>
+<script src="/zh/assets/js/1be78505.a6852249.js"></script>
+<script src="/zh/assets/js/b4a67526.4e6383ea.js"></script>
+<script src="/zh/assets/js/17896441.e58bae36.js"></script>
+<script src="/zh/assets/js/03b7a20f.3bf1c927.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/zh/docs/ingress-controller/FAQ/index.html b/zh/docs/ingress-controller/FAQ/index.html
new file mode 100644
index 0000000..0afccec
--- /dev/null
+++ b/zh/docs/ingress-controller/FAQ/index.html
@@ -0,0 +1,37 @@
+<!doctype html>
+<html lang="zh">
+<head>
+<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="robots" content="noindex, nofollow">
+<link rel="alternate" type="application/rss+xml" href="/zh/blog/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/zh/blog/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX™" href="/zh/opensearch.xml">
+<link rel="alternate" type="application/rss+xml" href="/zh/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/zh/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">FAQ | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="zh"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs-docs-apisix [...]
+<link rel="preload" href="/zh/assets/js/styles.8ae08ebc.js" as="script">
+<link rel="preload" href="/zh/assets/js/runtime~main.0b5a1314.js" as="script">
+<link rel="preload" href="/zh/assets/js/main.0749e470.js" as="script">
+<link rel="preload" href="/zh/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/zh/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/zh/assets/js/1be78505.a6852249.js" as="script">
+<link rel="preload" href="/zh/assets/js/b4a67526.4e6383ea.js" as="script">
+<link rel="preload" href="/zh/assets/js/17896441.e58bae36.js" as="script">
+<link rel="preload" href="/zh/assets/js/9dc47d34.a5d284c9.js" as="script">
+</head>
+<body>
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
+<script src="/zh/assets/js/styles.8ae08ebc.js"></script>
+<script src="/zh/assets/js/runtime~main.0b5a1314.js"></script>
+<script src="/zh/assets/js/main.0749e470.js"></script>
+<script src="/zh/assets/js/1.3237074b.js"></script>
+<script src="/zh/assets/js/2.e4d54c2b.js"></script>
+<script src="/zh/assets/js/1be78505.a6852249.js"></script>
+<script src="/zh/assets/js/b4a67526.4e6383ea.js"></script>
+<script src="/zh/assets/js/17896441.e58bae36.js"></script>
+<script src="/zh/assets/js/9dc47d34.a5d284c9.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/zh/docs/ingress-controller/contribute/index.html b/zh/docs/ingress-controller/contribute/index.html
new file mode 100644
index 0000000..e968ff5
--- /dev/null
+++ b/zh/docs/ingress-controller/contribute/index.html
@@ -0,0 +1,41 @@
+<!doctype html>
+<html lang="zh">
+<head>
+<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="robots" content="noindex, nofollow">
+<link rel="alternate" type="application/rss+xml" href="/zh/blog/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/zh/blog/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX™" href="/zh/opensearch.xml">
+<link rel="alternate" type="application/rss+xml" href="/zh/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/zh/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">contribute | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="zh"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs-docs [...]
+<link rel="preload" href="/zh/assets/js/styles.8ae08ebc.js" as="script">
+<link rel="preload" href="/zh/assets/js/runtime~main.0b5a1314.js" as="script">
+<link rel="preload" href="/zh/assets/js/main.0749e470.js" as="script">
+<link rel="preload" href="/zh/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/zh/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/zh/assets/js/1be78505.a6852249.js" as="script">
+<link rel="preload" href="/zh/assets/js/b4a67526.4e6383ea.js" as="script">
+<link rel="preload" href="/zh/assets/js/17896441.e58bae36.js" as="script">
+<link rel="preload" href="/zh/assets/js/9c26c05d.46e197e6.js" as="script">
+</head>
+<body>
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
+pleasant first experience for you, and that you will return to continue
+contributing.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor enhancedAnchor_2LWZ" id="how-to-contribute"></a>How to contribute<a class="hash-link" href="#how-to-contribute" title="Direct link to heading">#</a></h2><p>Most of the contributions that we receive are code contributions, but you can
+also contribute to the documentation or simply report solid bugs
+for us to fix.</p><p> For new contributors, please take a look at issues with a tag called <a href="https://github.com/apache/apisix-ingress-controller/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22" target="_blank" rel="noopener noreferrer">Good first issue</a> or <a href="https://github.com/apache/apisix-ingress-controller/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22" target="_blank" rel="noopener noreferrer">Help wanted</a>.</p><h2><a aria-hidden="true" tabind [...]
+<script src="/zh/assets/js/styles.8ae08ebc.js"></script>
+<script src="/zh/assets/js/runtime~main.0b5a1314.js"></script>
+<script src="/zh/assets/js/main.0749e470.js"></script>
+<script src="/zh/assets/js/1.3237074b.js"></script>
+<script src="/zh/assets/js/2.e4d54c2b.js"></script>
+<script src="/zh/assets/js/1be78505.a6852249.js"></script>
+<script src="/zh/assets/js/b4a67526.4e6383ea.js"></script>
+<script src="/zh/assets/js/17896441.e58bae36.js"></script>
+<script src="/zh/assets/js/9c26c05d.46e197e6.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/zh/docs/ingress-controller/deployments/ack/index.html b/zh/docs/ingress-controller/deployments/ack/index.html
new file mode 100644
index 0000000..c598b42
--- /dev/null
+++ b/zh/docs/ingress-controller/deployments/ack/index.html
@@ -0,0 +1,37 @@
+<!doctype html>
+<html lang="zh">
+<head>
+<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="robots" content="noindex, nofollow">
+<link rel="alternate" type="application/rss+xml" href="/zh/blog/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/zh/blog/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX™" href="/zh/opensearch.xml">
+<link rel="alternate" type="application/rss+xml" href="/zh/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/zh/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">ack | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="zh"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs-docs-apisix [...]
+<link rel="preload" href="/zh/assets/js/styles.8ae08ebc.js" as="script">
+<link rel="preload" href="/zh/assets/js/runtime~main.0b5a1314.js" as="script">
+<link rel="preload" href="/zh/assets/js/main.0749e470.js" as="script">
+<link rel="preload" href="/zh/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/zh/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/zh/assets/js/1be78505.a6852249.js" as="script">
+<link rel="preload" href="/zh/assets/js/b4a67526.4e6383ea.js" as="script">
+<link rel="preload" href="/zh/assets/js/17896441.e58bae36.js" as="script">
+<link rel="preload" href="/zh/assets/js/6967878f.a631fe17.js" as="script">
+</head>
+<body>
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
+<script src="/zh/assets/js/styles.8ae08ebc.js"></script>
+<script src="/zh/assets/js/runtime~main.0b5a1314.js"></script>
+<script src="/zh/assets/js/main.0749e470.js"></script>
+<script src="/zh/assets/js/1.3237074b.js"></script>
+<script src="/zh/assets/js/2.e4d54c2b.js"></script>
+<script src="/zh/assets/js/1be78505.a6852249.js"></script>
+<script src="/zh/assets/js/b4a67526.4e6383ea.js"></script>
+<script src="/zh/assets/js/17896441.e58bae36.js"></script>
+<script src="/zh/assets/js/6967878f.a631fe17.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/zh/docs/ingress-controller/deployments/aws/index.html b/zh/docs/ingress-controller/deployments/aws/index.html
new file mode 100644
index 0000000..c312e1b
--- /dev/null
+++ b/zh/docs/ingress-controller/deployments/aws/index.html
@@ -0,0 +1,37 @@
+<!doctype html>
+<html lang="zh">
+<head>
+<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="robots" content="noindex, nofollow">
+<link rel="alternate" type="application/rss+xml" href="/zh/blog/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/zh/blog/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX™" href="/zh/opensearch.xml">
+<link rel="alternate" type="application/rss+xml" href="/zh/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/zh/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">aws | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="zh"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs-docs-apisix [...]
+<link rel="preload" href="/zh/assets/js/styles.8ae08ebc.js" as="script">
+<link rel="preload" href="/zh/assets/js/runtime~main.0b5a1314.js" as="script">
+<link rel="preload" href="/zh/assets/js/main.0749e470.js" as="script">
+<link rel="preload" href="/zh/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/zh/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/zh/assets/js/1be78505.a6852249.js" as="script">
+<link rel="preload" href="/zh/assets/js/b4a67526.4e6383ea.js" as="script">
+<link rel="preload" href="/zh/assets/js/17896441.e58bae36.js" as="script">
+<link rel="preload" href="/zh/assets/js/4e55a385.224b6088.js" as="script">
+</head>
+<body>
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
+<script src="/zh/assets/js/styles.8ae08ebc.js"></script>
+<script src="/zh/assets/js/runtime~main.0b5a1314.js"></script>
+<script src="/zh/assets/js/main.0749e470.js"></script>
+<script src="/zh/assets/js/1.3237074b.js"></script>
+<script src="/zh/assets/js/2.e4d54c2b.js"></script>
+<script src="/zh/assets/js/1be78505.a6852249.js"></script>
+<script src="/zh/assets/js/b4a67526.4e6383ea.js"></script>
+<script src="/zh/assets/js/17896441.e58bae36.js"></script>
+<script src="/zh/assets/js/4e55a385.224b6088.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/zh/docs/ingress-controller/deployments/azure/index.html b/zh/docs/ingress-controller/deployments/azure/index.html
new file mode 100644
index 0000000..f95b54b
--- /dev/null
+++ b/zh/docs/ingress-controller/deployments/azure/index.html
@@ -0,0 +1,37 @@
+<!doctype html>
+<html lang="zh">
+<head>
+<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="robots" content="noindex, nofollow">
+<link rel="alternate" type="application/rss+xml" href="/zh/blog/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/zh/blog/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX™" href="/zh/opensearch.xml">
+<link rel="alternate" type="application/rss+xml" href="/zh/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/zh/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">azure | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="zh"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs-docs-apis [...]
+<link rel="preload" href="/zh/assets/js/styles.8ae08ebc.js" as="script">
+<link rel="preload" href="/zh/assets/js/runtime~main.0b5a1314.js" as="script">
+<link rel="preload" href="/zh/assets/js/main.0749e470.js" as="script">
+<link rel="preload" href="/zh/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/zh/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/zh/assets/js/1be78505.a6852249.js" as="script">
+<link rel="preload" href="/zh/assets/js/b4a67526.4e6383ea.js" as="script">
+<link rel="preload" href="/zh/assets/js/17896441.e58bae36.js" as="script">
+<link rel="preload" href="/zh/assets/js/f6cd6006.07ff6037.js" as="script">
+</head>
+<body>
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
+<script src="/zh/assets/js/styles.8ae08ebc.js"></script>
+<script src="/zh/assets/js/runtime~main.0b5a1314.js"></script>
+<script src="/zh/assets/js/main.0749e470.js"></script>
+<script src="/zh/assets/js/1.3237074b.js"></script>
+<script src="/zh/assets/js/2.e4d54c2b.js"></script>
+<script src="/zh/assets/js/1be78505.a6852249.js"></script>
+<script src="/zh/assets/js/b4a67526.4e6383ea.js"></script>
+<script src="/zh/assets/js/17896441.e58bae36.js"></script>
+<script src="/zh/assets/js/f6cd6006.07ff6037.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/zh/docs/ingress-controller/deployments/gke/index.html b/zh/docs/ingress-controller/deployments/gke/index.html
new file mode 100644
index 0000000..d7504c4
--- /dev/null
+++ b/zh/docs/ingress-controller/deployments/gke/index.html
@@ -0,0 +1,37 @@
+<!doctype html>
+<html lang="zh">
+<head>
+<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="robots" content="noindex, nofollow">
+<link rel="alternate" type="application/rss+xml" href="/zh/blog/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/zh/blog/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX™" href="/zh/opensearch.xml">
+<link rel="alternate" type="application/rss+xml" href="/zh/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/zh/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">gke | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="zh"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs-docs-apisix [...]
+<link rel="preload" href="/zh/assets/js/styles.8ae08ebc.js" as="script">
+<link rel="preload" href="/zh/assets/js/runtime~main.0b5a1314.js" as="script">
+<link rel="preload" href="/zh/assets/js/main.0749e470.js" as="script">
+<link rel="preload" href="/zh/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/zh/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/zh/assets/js/1be78505.a6852249.js" as="script">
+<link rel="preload" href="/zh/assets/js/b4a67526.4e6383ea.js" as="script">
+<link rel="preload" href="/zh/assets/js/17896441.e58bae36.js" as="script">
+<link rel="preload" href="/zh/assets/js/43aea6af.5bc382da.js" as="script">
+</head>
+<body>
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
+<script src="/zh/assets/js/styles.8ae08ebc.js"></script>
+<script src="/zh/assets/js/runtime~main.0b5a1314.js"></script>
+<script src="/zh/assets/js/main.0749e470.js"></script>
+<script src="/zh/assets/js/1.3237074b.js"></script>
+<script src="/zh/assets/js/2.e4d54c2b.js"></script>
+<script src="/zh/assets/js/1be78505.a6852249.js"></script>
+<script src="/zh/assets/js/b4a67526.4e6383ea.js"></script>
+<script src="/zh/assets/js/17896441.e58bae36.js"></script>
+<script src="/zh/assets/js/43aea6af.5bc382da.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/zh/docs/ingress-controller/deployments/k3s-rke/index.html b/zh/docs/ingress-controller/deployments/k3s-rke/index.html
new file mode 100644
index 0000000..3a92987
--- /dev/null
+++ b/zh/docs/ingress-controller/deployments/k3s-rke/index.html
@@ -0,0 +1,39 @@
+<!doctype html>
+<html lang="zh">
+<head>
+<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="robots" content="noindex, nofollow">
+<link rel="alternate" type="application/rss+xml" href="/zh/blog/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/zh/blog/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX™" href="/zh/opensearch.xml">
+<link rel="alternate" type="application/rss+xml" href="/zh/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/zh/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">k3s-rke | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="zh"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs-docs-ap [...]
+<link rel="preload" href="/zh/assets/js/styles.8ae08ebc.js" as="script">
+<link rel="preload" href="/zh/assets/js/runtime~main.0b5a1314.js" as="script">
+<link rel="preload" href="/zh/assets/js/main.0749e470.js" as="script">
+<link rel="preload" href="/zh/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/zh/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/zh/assets/js/1be78505.a6852249.js" as="script">
+<link rel="preload" href="/zh/assets/js/b4a67526.4e6383ea.js" as="script">
+<link rel="preload" href="/zh/assets/js/17896441.e58bae36.js" as="script">
+<link rel="preload" href="/zh/assets/js/6f365930.2f46b0c6.js" as="script">
+</head>
+<body>
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
+It&#x27;s a good choice to use Ingress APISIX as the north-south API gateway in K3S.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor enhancedAnchor_2LWZ" id="prerequisites"></a>Prerequisites<a class="hash-link" href="#prerequisites" title="Direct link to heading">#</a></h2><ul><li>Install <a href="https://rancher.com/docs/k3s/latest/en/installation/" target="_blank" rel="noopener noreferrer">K3S</a> or <a href="https://rancher.com/docs/rke/latest/en/installation/" target="_blank [...]
+If you are using K3S and you want to expose a <code>LoadBalancer</code> service, try to use <a href="https://github.com/k3s-io/klipper-lb" target="_blank" rel="noopener noreferrer">Klipper</a>.</p><p>Another thing should be concerned that the <code>allow.ipList</code> field should be customized according to the Pod CIDR settings(see <a href="https://rancher.com/docs/k3s/latest/en/installation/install-options/server-config/#networking" target="_blank" rel="noopener noreferrer">K3S</a> or  [...]
+<script src="/zh/assets/js/styles.8ae08ebc.js"></script>
+<script src="/zh/assets/js/runtime~main.0b5a1314.js"></script>
+<script src="/zh/assets/js/main.0749e470.js"></script>
+<script src="/zh/assets/js/1.3237074b.js"></script>
+<script src="/zh/assets/js/2.e4d54c2b.js"></script>
+<script src="/zh/assets/js/1be78505.a6852249.js"></script>
+<script src="/zh/assets/js/b4a67526.4e6383ea.js"></script>
+<script src="/zh/assets/js/17896441.e58bae36.js"></script>
+<script src="/zh/assets/js/6f365930.2f46b0c6.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/zh/docs/ingress-controller/deployments/kubesphere/index.html b/zh/docs/ingress-controller/deployments/kubesphere/index.html
new file mode 100644
index 0000000..8da8ee0
--- /dev/null
+++ b/zh/docs/ingress-controller/deployments/kubesphere/index.html
@@ -0,0 +1,38 @@
+<!doctype html>
+<html lang="zh">
+<head>
+<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="robots" content="noindex, nofollow">
+<link rel="alternate" type="application/rss+xml" href="/zh/blog/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/zh/blog/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX™" href="/zh/opensearch.xml">
+<link rel="alternate" type="application/rss+xml" href="/zh/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/zh/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">kubesphere | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="zh"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs-docs [...]
+<link rel="preload" href="/zh/assets/js/styles.8ae08ebc.js" as="script">
+<link rel="preload" href="/zh/assets/js/runtime~main.0b5a1314.js" as="script">
+<link rel="preload" href="/zh/assets/js/main.0749e470.js" as="script">
+<link rel="preload" href="/zh/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/zh/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/zh/assets/js/1be78505.a6852249.js" as="script">
+<link rel="preload" href="/zh/assets/js/b4a67526.4e6383ea.js" as="script">
+<link rel="preload" href="/zh/assets/js/17896441.e58bae36.js" as="script">
+<link rel="preload" href="/zh/assets/js/b58143c5.16973ecf.js" as="script">
+</head>
+<body>
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
+If you want to expose a <code>LoadBalancer</code> service, try to use <a href="https://github.com/kubesphere/porter" target="_blank" rel="noopener noreferrer">Porter</a>.</p><p>Another thing that should be concerned that the <code>allow.ipList</code> field should be customized according to the Pod CIDR settings, so that the apisix-ingress-controller instances can access the APISIX instances (resources pushing).</p><h2><a aria-hidden="true" tabindex="-1" class="anchor enhancedAnchor_2LWZ" [...]
+<script src="/zh/assets/js/styles.8ae08ebc.js"></script>
+<script src="/zh/assets/js/runtime~main.0b5a1314.js"></script>
+<script src="/zh/assets/js/main.0749e470.js"></script>
+<script src="/zh/assets/js/1.3237074b.js"></script>
+<script src="/zh/assets/js/2.e4d54c2b.js"></script>
+<script src="/zh/assets/js/1be78505.a6852249.js"></script>
+<script src="/zh/assets/js/b4a67526.4e6383ea.js"></script>
+<script src="/zh/assets/js/17896441.e58bae36.js"></script>
+<script src="/zh/assets/js/b58143c5.16973ecf.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/zh/docs/ingress-controller/deployments/minikube/index.html b/zh/docs/ingress-controller/deployments/minikube/index.html
new file mode 100644
index 0000000..70f9225
--- /dev/null
+++ b/zh/docs/ingress-controller/deployments/minikube/index.html
@@ -0,0 +1,37 @@
+<!doctype html>
+<html lang="zh">
+<head>
+<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="robots" content="noindex, nofollow">
+<link rel="alternate" type="application/rss+xml" href="/zh/blog/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/zh/blog/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX™" href="/zh/opensearch.xml">
+<link rel="alternate" type="application/rss+xml" href="/zh/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/zh/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">minikube | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="zh"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs-docs-a [...]
+<link rel="preload" href="/zh/assets/js/styles.8ae08ebc.js" as="script">
+<link rel="preload" href="/zh/assets/js/runtime~main.0b5a1314.js" as="script">
+<link rel="preload" href="/zh/assets/js/main.0749e470.js" as="script">
+<link rel="preload" href="/zh/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/zh/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/zh/assets/js/1be78505.a6852249.js" as="script">
+<link rel="preload" href="/zh/assets/js/b4a67526.4e6383ea.js" as="script">
+<link rel="preload" href="/zh/assets/js/17896441.e58bae36.js" as="script">
+<link rel="preload" href="/zh/assets/js/93013804.a1084f39.js" as="script">
+</head>
+<body>
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
+<script src="/zh/assets/js/styles.8ae08ebc.js"></script>
+<script src="/zh/assets/js/runtime~main.0b5a1314.js"></script>
+<script src="/zh/assets/js/main.0749e470.js"></script>
+<script src="/zh/assets/js/1.3237074b.js"></script>
+<script src="/zh/assets/js/2.e4d54c2b.js"></script>
+<script src="/zh/assets/js/1be78505.a6852249.js"></script>
+<script src="/zh/assets/js/b4a67526.4e6383ea.js"></script>
+<script src="/zh/assets/js/17896441.e58bae36.js"></script>
+<script src="/zh/assets/js/93013804.a1084f39.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/zh/docs/ingress-controller/deployments/tke/index.html b/zh/docs/ingress-controller/deployments/tke/index.html
new file mode 100644
index 0000000..f720853
--- /dev/null
+++ b/zh/docs/ingress-controller/deployments/tke/index.html
@@ -0,0 +1,37 @@
+<!doctype html>
+<html lang="zh">
+<head>
+<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="robots" content="noindex, nofollow">
+<link rel="alternate" type="application/rss+xml" href="/zh/blog/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/zh/blog/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX™" href="/zh/opensearch.xml">
+<link rel="alternate" type="application/rss+xml" href="/zh/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/zh/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">tke | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="zh"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs-docs-apisix [...]
+<link rel="preload" href="/zh/assets/js/styles.8ae08ebc.js" as="script">
+<link rel="preload" href="/zh/assets/js/runtime~main.0b5a1314.js" as="script">
+<link rel="preload" href="/zh/assets/js/main.0749e470.js" as="script">
+<link rel="preload" href="/zh/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/zh/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/zh/assets/js/1be78505.a6852249.js" as="script">
+<link rel="preload" href="/zh/assets/js/b4a67526.4e6383ea.js" as="script">
+<link rel="preload" href="/zh/assets/js/17896441.e58bae36.js" as="script">
+<link rel="preload" href="/zh/assets/js/64288df6.0b1a8e60.js" as="script">
+</head>
+<body>
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
+<script src="/zh/assets/js/styles.8ae08ebc.js"></script>
+<script src="/zh/assets/js/runtime~main.0b5a1314.js"></script>
+<script src="/zh/assets/js/main.0749e470.js"></script>
+<script src="/zh/assets/js/1.3237074b.js"></script>
+<script src="/zh/assets/js/2.e4d54c2b.js"></script>
+<script src="/zh/assets/js/1be78505.a6852249.js"></script>
+<script src="/zh/assets/js/b4a67526.4e6383ea.js"></script>
+<script src="/zh/assets/js/17896441.e58bae36.js"></script>
+<script src="/zh/assets/js/64288df6.0b1a8e60.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/zh/docs/ingress-controller/design/index.html b/zh/docs/ingress-controller/design/index.html
new file mode 100644
index 0000000..5c5105b
--- /dev/null
+++ b/zh/docs/ingress-controller/design/index.html
@@ -0,0 +1,37 @@
+<!doctype html>
+<html lang="zh">
+<head>
+<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="robots" content="noindex, nofollow">
+<link rel="alternate" type="application/rss+xml" href="/zh/blog/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/zh/blog/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX™" href="/zh/opensearch.xml">
+<link rel="alternate" type="application/rss+xml" href="/zh/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/zh/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">design | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="zh"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs-docs-api [...]
+<link rel="preload" href="/zh/assets/js/styles.8ae08ebc.js" as="script">
+<link rel="preload" href="/zh/assets/js/runtime~main.0b5a1314.js" as="script">
+<link rel="preload" href="/zh/assets/js/main.0749e470.js" as="script">
+<link rel="preload" href="/zh/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/zh/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/zh/assets/js/1be78505.a6852249.js" as="script">
+<link rel="preload" href="/zh/assets/js/b4a67526.4e6383ea.js" as="script">
+<link rel="preload" href="/zh/assets/js/17896441.e58bae36.js" as="script">
+<link rel="preload" href="/zh/assets/js/e60dd3b0.788b923e.js" as="script">
+</head>
+<body>
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
+<script src="/zh/assets/js/styles.8ae08ebc.js"></script>
+<script src="/zh/assets/js/runtime~main.0b5a1314.js"></script>
+<script src="/zh/assets/js/main.0749e470.js"></script>
+<script src="/zh/assets/js/1.3237074b.js"></script>
+<script src="/zh/assets/js/2.e4d54c2b.js"></script>
+<script src="/zh/assets/js/1be78505.a6852249.js"></script>
+<script src="/zh/assets/js/b4a67526.4e6383ea.js"></script>
+<script src="/zh/assets/js/17896441.e58bae36.js"></script>
+<script src="/zh/assets/js/e60dd3b0.788b923e.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/zh/docs/ingress-controller/development/index.html b/zh/docs/ingress-controller/development/index.html
new file mode 100644
index 0000000..22926ae
--- /dev/null
+++ b/zh/docs/ingress-controller/development/index.html
@@ -0,0 +1,37 @@
+<!doctype html>
+<html lang="zh">
+<head>
+<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="robots" content="noindex, nofollow">
+<link rel="alternate" type="application/rss+xml" href="/zh/blog/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/zh/blog/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX™" href="/zh/opensearch.xml">
+<link rel="alternate" type="application/rss+xml" href="/zh/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/zh/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">development | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="zh"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs-doc [...]
+<link rel="preload" href="/zh/assets/js/styles.8ae08ebc.js" as="script">
+<link rel="preload" href="/zh/assets/js/runtime~main.0b5a1314.js" as="script">
+<link rel="preload" href="/zh/assets/js/main.0749e470.js" as="script">
+<link rel="preload" href="/zh/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/zh/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/zh/assets/js/1be78505.a6852249.js" as="script">
+<link rel="preload" href="/zh/assets/js/b4a67526.4e6383ea.js" as="script">
+<link rel="preload" href="/zh/assets/js/17896441.e58bae36.js" as="script">
+<link rel="preload" href="/zh/assets/js/8e27d69a.ad0dde1f.js" as="script">
+</head>
+<body>
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
+<script src="/zh/assets/js/styles.8ae08ebc.js"></script>
+<script src="/zh/assets/js/runtime~main.0b5a1314.js"></script>
+<script src="/zh/assets/js/main.0749e470.js"></script>
+<script src="/zh/assets/js/1.3237074b.js"></script>
+<script src="/zh/assets/js/2.e4d54c2b.js"></script>
+<script src="/zh/assets/js/1be78505.a6852249.js"></script>
+<script src="/zh/assets/js/b4a67526.4e6383ea.js"></script>
+<script src="/zh/assets/js/17896441.e58bae36.js"></script>
+<script src="/zh/assets/js/8e27d69a.ad0dde1f.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/zh/docs/ingress-controller/introduction/index.html b/zh/docs/ingress-controller/introduction/index.html
index 9338215..3d07511 100644
--- a/zh/docs/ingress-controller/introduction/index.html
+++ b/zh/docs/ingress-controller/introduction/index.html
@@ -11,27 +11,27 @@
 <link rel="alternate" type="application/rss+xml" href="/zh/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Introduction | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="zh"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs-do [...]
-<link rel="preload" href="/zh/assets/js/styles.d25a02cf.js" as="script">
-<link rel="preload" href="/zh/assets/js/runtime~main.d3f78d59.js" as="script">
-<link rel="preload" href="/zh/assets/js/main.8ce1e08c.js" as="script">
-<link rel="preload" href="/zh/assets/js/1.b21fad17.js" as="script">
-<link rel="preload" href="/zh/assets/js/2.c74b4887.js" as="script">
-<link rel="preload" href="/zh/assets/js/1be78505.d24880b0.js" as="script">
-<link rel="preload" href="/zh/assets/js/b4a67526.ad72e997.js" as="script">
-<link rel="preload" href="/zh/assets/js/17896441.ab569ce4.js" as="script">
-<link rel="preload" href="/zh/assets/js/30788500.8f19702c.js" as="script">
+<link rel="preload" href="/zh/assets/js/styles.8ae08ebc.js" as="script">
+<link rel="preload" href="/zh/assets/js/runtime~main.0b5a1314.js" as="script">
+<link rel="preload" href="/zh/assets/js/main.0749e470.js" as="script">
+<link rel="preload" href="/zh/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/zh/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/zh/assets/js/1be78505.a6852249.js" as="script">
+<link rel="preload" href="/zh/assets/js/b4a67526.4e6383ea.js" as="script">
+<link rel="preload" href="/zh/assets/js/17896441.e58bae36.js" as="script">
+<link rel="preload" href="/zh/assets/js/30788500.2a62b56a.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
-<script src="/zh/assets/js/styles.d25a02cf.js"></script>
-<script src="/zh/assets/js/runtime~main.d3f78d59.js"></script>
-<script src="/zh/assets/js/main.8ce1e08c.js"></script>
-<script src="/zh/assets/js/1.b21fad17.js"></script>
-<script src="/zh/assets/js/2.c74b4887.js"></script>
-<script src="/zh/assets/js/1be78505.d24880b0.js"></script>
-<script src="/zh/assets/js/b4a67526.ad72e997.js"></script>
-<script src="/zh/assets/js/17896441.ab569ce4.js"></script>
-<script src="/zh/assets/js/30788500.8f19702c.js"></script>
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
+<script src="/zh/assets/js/styles.8ae08ebc.js"></script>
+<script src="/zh/assets/js/runtime~main.0b5a1314.js"></script>
+<script src="/zh/assets/js/main.0749e470.js"></script>
+<script src="/zh/assets/js/1.3237074b.js"></script>
+<script src="/zh/assets/js/2.e4d54c2b.js"></script>
+<script src="/zh/assets/js/1be78505.a6852249.js"></script>
+<script src="/zh/assets/js/b4a67526.4e6383ea.js"></script>
+<script src="/zh/assets/js/17896441.e58bae36.js"></script>
+<script src="/zh/assets/js/30788500.2a62b56a.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh/docs/ingress-controller/samples/index/index.html b/zh/docs/ingress-controller/samples/index/index.html
new file mode 100644
index 0000000..d4dd90a
--- /dev/null
+++ b/zh/docs/ingress-controller/samples/index/index.html
@@ -0,0 +1,37 @@
+<!doctype html>
+<html lang="zh">
+<head>
+<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="robots" content="noindex, nofollow">
+<link rel="alternate" type="application/rss+xml" href="/zh/blog/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/zh/blog/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX™" href="/zh/opensearch.xml">
+<link rel="alternate" type="application/rss+xml" href="/zh/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/zh/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">index | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="zh"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs-docs-apis [...]
+<link rel="preload" href="/zh/assets/js/styles.8ae08ebc.js" as="script">
+<link rel="preload" href="/zh/assets/js/runtime~main.0b5a1314.js" as="script">
+<link rel="preload" href="/zh/assets/js/main.0749e470.js" as="script">
+<link rel="preload" href="/zh/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/zh/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/zh/assets/js/1be78505.a6852249.js" as="script">
+<link rel="preload" href="/zh/assets/js/b4a67526.4e6383ea.js" as="script">
+<link rel="preload" href="/zh/assets/js/17896441.e58bae36.js" as="script">
+<link rel="preload" href="/zh/assets/js/33c9e5b3.b55b8b6d.js" as="script">
+</head>
+<body>
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
+<script src="/zh/assets/js/styles.8ae08ebc.js"></script>
+<script src="/zh/assets/js/runtime~main.0b5a1314.js"></script>
+<script src="/zh/assets/js/main.0749e470.js"></script>
+<script src="/zh/assets/js/1.3237074b.js"></script>
+<script src="/zh/assets/js/2.e4d54c2b.js"></script>
+<script src="/zh/assets/js/1be78505.a6852249.js"></script>
+<script src="/zh/assets/js/b4a67526.4e6383ea.js"></script>
+<script src="/zh/assets/js/17896441.e58bae36.js"></script>
+<script src="/zh/assets/js/33c9e5b3.b55b8b6d.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/zh/docs/ingress-controller/samples/proxy-the-httpbin-service-with-ingress/index.html b/zh/docs/ingress-controller/samples/proxy-the-httpbin-service-with-ingress/index.html
new file mode 100644
index 0000000..be39d77
--- /dev/null
+++ b/zh/docs/ingress-controller/samples/proxy-the-httpbin-service-with-ingress/index.html
@@ -0,0 +1,39 @@
+<!doctype html>
+<html lang="zh">
+<head>
+<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="robots" content="noindex, nofollow">
+<link rel="alternate" type="application/rss+xml" href="/zh/blog/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/zh/blog/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX™" href="/zh/opensearch.xml">
+<link rel="alternate" type="application/rss+xml" href="/zh/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/zh/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link 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-the-httpbin-service-with-ingress | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="zh"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusa [...]
+<link rel="preload" href="/zh/assets/js/styles.8ae08ebc.js" as="script">
+<link rel="preload" href="/zh/assets/js/runtime~main.0b5a1314.js" as="script">
+<link rel="preload" href="/zh/assets/js/main.0749e470.js" as="script">
+<link rel="preload" href="/zh/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/zh/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/zh/assets/js/1be78505.a6852249.js" as="script">
+<link rel="preload" href="/zh/assets/js/b4a67526.4e6383ea.js" as="script">
+<link rel="preload" href="/zh/assets/js/17896441.e58bae36.js" as="script">
+<link rel="preload" href="/zh/assets/js/5971cb1d.bd68b8d9.js" as="script">
+</head>
+<body>
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># Use ingress.networking.k8s.io/v1beta1 if your Kubernetes cluster</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># version is older than v1.19.0.</span><span class= [...]
+Now try to create it.</p><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">kubectl apply -f httpbin-ingress.yaml</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></di [...]
+<script src="/zh/assets/js/styles.8ae08ebc.js"></script>
+<script src="/zh/assets/js/runtime~main.0b5a1314.js"></script>
+<script src="/zh/assets/js/main.0749e470.js"></script>
+<script src="/zh/assets/js/1.3237074b.js"></script>
+<script src="/zh/assets/js/2.e4d54c2b.js"></script>
+<script src="/zh/assets/js/1be78505.a6852249.js"></script>
+<script src="/zh/assets/js/b4a67526.4e6383ea.js"></script>
+<script src="/zh/assets/js/17896441.e58bae36.js"></script>
+<script src="/zh/assets/js/5971cb1d.bd68b8d9.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/zh/docs/ingress-controller/samples/proxy-the-httpbin-service/index.html b/zh/docs/ingress-controller/samples/proxy-the-httpbin-service/index.html
new file mode 100644
index 0000000..d7a1ea3
--- /dev/null
+++ b/zh/docs/ingress-controller/samples/proxy-the-httpbin-service/index.html
@@ -0,0 +1,38 @@
+<!doctype html>
+<html lang="zh">
+<head>
+<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="robots" content="noindex, nofollow">
+<link rel="alternate" type="application/rss+xml" href="/zh/blog/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/zh/blog/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX™" href="/zh/opensearch.xml">
+<link rel="alternate" type="application/rss+xml" href="/zh/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/zh/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link 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-the-httpbin-service | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="zh"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" con [...]
+<link rel="preload" href="/zh/assets/js/styles.8ae08ebc.js" as="script">
+<link rel="preload" href="/zh/assets/js/runtime~main.0b5a1314.js" as="script">
+<link rel="preload" href="/zh/assets/js/main.0749e470.js" as="script">
+<link rel="preload" href="/zh/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/zh/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/zh/assets/js/1be78505.a6852249.js" as="script">
+<link rel="preload" href="/zh/assets/js/b4a67526.4e6383ea.js" as="script">
+<link rel="preload" href="/zh/assets/js/17896441.e58bae36.js" as="script">
+<link rel="preload" href="/zh/assets/js/941c758c.74ea672b.js" as="script">
+</head>
+<body>
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
+Now try to create it.</p><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">kubectl apply -f httpbin-route.yaml</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div> [...]
+<script src="/zh/assets/js/styles.8ae08ebc.js"></script>
+<script src="/zh/assets/js/runtime~main.0b5a1314.js"></script>
+<script src="/zh/assets/js/main.0749e470.js"></script>
+<script src="/zh/assets/js/1.3237074b.js"></script>
+<script src="/zh/assets/js/2.e4d54c2b.js"></script>
+<script src="/zh/assets/js/1be78505.a6852249.js"></script>
+<script src="/zh/assets/js/b4a67526.4e6383ea.js"></script>
+<script src="/zh/assets/js/17896441.e58bae36.js"></script>
+<script src="/zh/assets/js/941c758c.74ea672b.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/zh/docs/ingress-controller/usage/index.html b/zh/docs/ingress-controller/usage/index.html
new file mode 100644
index 0000000..f41813d
--- /dev/null
+++ b/zh/docs/ingress-controller/usage/index.html
@@ -0,0 +1,39 @@
+<!doctype html>
+<html lang="zh">
+<head>
+<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="robots" content="noindex, nofollow">
+<link rel="alternate" type="application/rss+xml" href="/zh/blog/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/zh/blog/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX™" href="/zh/opensearch.xml">
+<link rel="alternate" type="application/rss+xml" href="/zh/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/zh/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">usage | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="zh"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs-docs-apis [...]
+<link rel="preload" href="/zh/assets/js/styles.8ae08ebc.js" as="script">
+<link rel="preload" href="/zh/assets/js/runtime~main.0b5a1314.js" as="script">
+<link rel="preload" href="/zh/assets/js/main.0749e470.js" as="script">
+<link rel="preload" href="/zh/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/zh/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/zh/assets/js/1be78505.a6852249.js" as="script">
+<link rel="preload" href="/zh/assets/js/b4a67526.4e6383ea.js" as="script">
+<link rel="preload" href="/zh/assets/js/17896441.e58bae36.js" as="script">
+<link rel="preload" href="/zh/assets/js/b123c67b.ce93488a.js" as="script">
+</head>
+<body>
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># 3. Define route: foo-route, id=3, binding service: foo-service</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> -XPUT http://127.0.0.1:9080/apisix/admin/routes/3 -H </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><span class="token plain"> -d </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;</span></div><d [...]
+<script src="/zh/assets/js/styles.8ae08ebc.js"></script>
+<script src="/zh/assets/js/runtime~main.0b5a1314.js"></script>
+<script src="/zh/assets/js/main.0749e470.js"></script>
+<script src="/zh/assets/js/1.3237074b.js"></script>
+<script src="/zh/assets/js/2.e4d54c2b.js"></script>
+<script src="/zh/assets/js/1be78505.a6852249.js"></script>
+<script src="/zh/assets/js/b4a67526.4e6383ea.js"></script>
+<script src="/zh/assets/js/17896441.e58bae36.js"></script>
+<script src="/zh/assets/js/b123c67b.ce93488a.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/zh/downloads/ProjectCard/index.html b/zh/downloads/ProjectCard/index.html
index 7372886..7c77909 100644
--- a/zh/downloads/ProjectCard/index.html
+++ b/zh/downloads/ProjectCard/index.html
@@ -11,21 +11,21 @@
 <link rel="alternate" type="application/rss+xml" href="/zh/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true"></title><link rel="stylesheet" href="/zh/assets/css/styles.68c2735f.css">
-<link rel="preload" href="/zh/assets/js/styles.d25a02cf.js" as="script">
-<link rel="preload" href="/zh/assets/js/runtime~main.d3f78d59.js" as="script">
-<link rel="preload" href="/zh/assets/js/main.8ce1e08c.js" as="script">
-<link rel="preload" href="/zh/assets/js/3.e5911a24.js" as="script">
-<link rel="preload" href="/zh/assets/js/98c69322.bcfd2dda.js" as="script">
-<link rel="preload" href="/zh/assets/js/47f8a22a.b9d7e773.js" as="script">
+<link rel="preload" href="/zh/assets/js/styles.8ae08ebc.js" as="script">
+<link rel="preload" href="/zh/assets/js/runtime~main.0b5a1314.js" as="script">
+<link rel="preload" href="/zh/assets/js/main.0749e470.js" as="script">
+<link rel="preload" href="/zh/assets/js/3.b8da59b5.js" as="script">
+<link rel="preload" href="/zh/assets/js/98c69322.cb3d97e1.js" as="script">
+<link rel="preload" href="/zh/assets/js/47f8a22a.24c3a77a.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <div class="ProjectCard__Card-sc-12v8c3p-0 fUOFUE"><div class="ProjectCard__LeftSide-sc-12v8c3p-1 ewHYSJ"><a href="https://github.com/undefined" target="_blank" class="ProjectCard__Title-sc-12v8c3p-2 eXqIcO"><span class="ProjectCard__ShapeBeforeTitle-sc-12v8c3p-4 kjTfns"><svg aria-hidden="true" data-prefix="fas" data-icon="hexagon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512" class="hexagon_svg__svg-inline--fa hexagon_svg__fa-hexagon hexagon_svg__fa-w-18 hexagon_svg__fa-7x">< [...]
-<script src="/zh/assets/js/styles.d25a02cf.js"></script>
-<script src="/zh/assets/js/runtime~main.d3f78d59.js"></script>
-<script src="/zh/assets/js/main.8ce1e08c.js"></script>
-<script src="/zh/assets/js/3.e5911a24.js"></script>
-<script src="/zh/assets/js/98c69322.bcfd2dda.js"></script>
-<script src="/zh/assets/js/47f8a22a.b9d7e773.js"></script>
+<script src="/zh/assets/js/styles.8ae08ebc.js"></script>
+<script src="/zh/assets/js/runtime~main.0b5a1314.js"></script>
+<script src="/zh/assets/js/main.0749e470.js"></script>
+<script src="/zh/assets/js/3.b8da59b5.js"></script>
+<script src="/zh/assets/js/98c69322.cb3d97e1.js"></script>
+<script src="/zh/assets/js/47f8a22a.24c3a77a.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh/downloads/index.html b/zh/downloads/index.html
index 7fe7105..af0e304 100644
--- a/zh/downloads/index.html
+++ b/zh/downloads/index.html
@@ -11,14 +11,14 @@
 <link rel="alternate" type="application/rss+xml" href="/zh/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link 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™</title><meta data-react-helmet="true" property="og:title" content="Apache APISIX™"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//zh/downloads/"><meta data-react-helmet="true" name="docsearch:language" conte [...]
-<link rel="preload" href="/zh/assets/js/styles.d25a02cf.js" as="script">
-<link rel="preload" href="/zh/assets/js/runtime~main.d3f78d59.js" as="script">
-<link rel="preload" href="/zh/assets/js/main.8ce1e08c.js" as="script">
-<link rel="preload" href="/zh/assets/js/1.b21fad17.js" as="script">
-<link rel="preload" href="/zh/assets/js/2.c74b4887.js" as="script">
-<link rel="preload" href="/zh/assets/js/3.e5911a24.js" as="script">
-<link rel="preload" href="/zh/assets/js/98c69322.bcfd2dda.js" as="script">
-<link rel="preload" href="/zh/assets/js/47f8a22a.b9d7e773.js" as="script">
+<link rel="preload" href="/zh/assets/js/styles.8ae08ebc.js" as="script">
+<link rel="preload" href="/zh/assets/js/runtime~main.0b5a1314.js" as="script">
+<link rel="preload" href="/zh/assets/js/main.0749e470.js" as="script">
+<link rel="preload" href="/zh/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/zh/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/zh/assets/js/3.b8da59b5.js" as="script">
+<link rel="preload" href="/zh/assets/js/98c69322.cb3d97e1.js" as="script">
+<link rel="preload" href="/zh/assets/js/47f8a22a.24c3a77a.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -26,13 +26,13 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"># or</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">pgp -ka KEYS</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div><br>To verify the binaries/sources you can download the relevant asc files for it from main distribution directory and follow the below guide.<div class="codeBlockContent_hGly"><di [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"># or</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">pgpv apache-apisix-********.asc</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"># or</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">pgp apache-apisix-********.asc</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div></div></div></div><footer class="footer"><div class="container"><div class="row footer__links"><div class="col footer__col"><h4 class="footer__title">ASF</h [...]
-<script src="/zh/assets/js/styles.d25a02cf.js"></script>
-<script src="/zh/assets/js/runtime~main.d3f78d59.js"></script>
-<script src="/zh/assets/js/main.8ce1e08c.js"></script>
-<script src="/zh/assets/js/1.b21fad17.js"></script>
-<script src="/zh/assets/js/2.c74b4887.js"></script>
-<script src="/zh/assets/js/3.e5911a24.js"></script>
-<script src="/zh/assets/js/98c69322.bcfd2dda.js"></script>
-<script src="/zh/assets/js/47f8a22a.b9d7e773.js"></script>
+<script src="/zh/assets/js/styles.8ae08ebc.js"></script>
+<script src="/zh/assets/js/runtime~main.0b5a1314.js"></script>
+<script src="/zh/assets/js/main.0749e470.js"></script>
+<script src="/zh/assets/js/1.3237074b.js"></script>
+<script src="/zh/assets/js/2.e4d54c2b.js"></script>
+<script src="/zh/assets/js/3.b8da59b5.js"></script>
+<script src="/zh/assets/js/98c69322.cb3d97e1.js"></script>
+<script src="/zh/assets/js/47f8a22a.24c3a77a.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh/events/2020/12/23/release-apache-apisix-ingress-controller-0.1.0/index.html b/zh/events/2020/12/23/release-apache-apisix-ingress-controller-0.1.0/index.html
index 632b736..49248a4 100644
--- a/zh/events/2020/12/23/release-apache-apisix-ingress-controller-0.1.0/index.html
+++ b/zh/events/2020/12/23/release-apache-apisix-ingress-controller-0.1.0/index.html
@@ -11,27 +11,27 @@
 <link rel="alternate" type="application/rss+xml" href="/zh/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link 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 Ingress Controller 0.1.0 | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Release Apache APISIX Ingress Controller 0.1.0 | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="This release mainly improve basic features, bugfix and adds test cases."><meta  [...]
-<link rel="preload" href="/zh/assets/js/styles.d25a02cf.js" as="script">
-<link rel="preload" href="/zh/assets/js/runtime~main.d3f78d59.js" as="script">
-<link rel="preload" href="/zh/assets/js/main.8ce1e08c.js" as="script">
-<link rel="preload" href="/zh/assets/js/1.b21fad17.js" as="script">
-<link rel="preload" href="/zh/assets/js/2.c74b4887.js" as="script">
-<link rel="preload" href="/zh/assets/js/4.a448f392.js" as="script">
-<link rel="preload" href="/zh/assets/js/ccc49370.938f9db4.js" as="script">
-<link rel="preload" href="/zh/assets/js/f7488fe8.ed219fa4.js" as="script">
-<link rel="preload" href="/zh/assets/js/12e5767f.d61c8e43.js" as="script">
+<link rel="preload" href="/zh/assets/js/styles.8ae08ebc.js" as="script">
+<link rel="preload" href="/zh/assets/js/runtime~main.0b5a1314.js" as="script">
+<link rel="preload" href="/zh/assets/js/main.0749e470.js" as="script">
+<link rel="preload" href="/zh/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/zh/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/zh/assets/js/4.02c38c66.js" as="script">
+<link rel="preload" href="/zh/assets/js/ccc49370.b142e6b6.js" as="script">
+<link rel="preload" href="/zh/assets/js/f7488fe8.78be7bf2.js" as="script">
+<link rel="preload" href="/zh/assets/js/12e5767f.f2eec07d.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
-<script src="/zh/assets/js/styles.d25a02cf.js"></script>
-<script src="/zh/assets/js/runtime~main.d3f78d59.js"></script>
-<script src="/zh/assets/js/main.8ce1e08c.js"></script>
-<script src="/zh/assets/js/1.b21fad17.js"></script>
-<script src="/zh/assets/js/2.c74b4887.js"></script>
-<script src="/zh/assets/js/4.a448f392.js"></script>
-<script src="/zh/assets/js/ccc49370.938f9db4.js"></script>
-<script src="/zh/assets/js/f7488fe8.ed219fa4.js"></script>
-<script src="/zh/assets/js/12e5767f.d61c8e43.js"></script>
+<script src="/zh/assets/js/styles.8ae08ebc.js"></script>
+<script src="/zh/assets/js/runtime~main.0b5a1314.js"></script>
+<script src="/zh/assets/js/main.0749e470.js"></script>
+<script src="/zh/assets/js/1.3237074b.js"></script>
+<script src="/zh/assets/js/2.e4d54c2b.js"></script>
+<script src="/zh/assets/js/4.02c38c66.js"></script>
+<script src="/zh/assets/js/ccc49370.b142e6b6.js"></script>
+<script src="/zh/assets/js/f7488fe8.78be7bf2.js"></script>
+<script src="/zh/assets/js/12e5767f.f2eec07d.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh/events/2021/01/19/release-apache-apisix-ingress-controller-0.2.0/index.html b/zh/events/2021/01/19/release-apache-apisix-ingress-controller-0.2.0/index.html
index f27687b..0a4b1de 100644
--- a/zh/events/2021/01/19/release-apache-apisix-ingress-controller-0.2.0/index.html
+++ b/zh/events/2021/01/19/release-apache-apisix-ingress-controller-0.2.0/index.html
@@ -11,27 +11,27 @@
 <link rel="alternate" type="application/rss+xml" href="/zh/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link 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 Ingress Controller 0.2.0 | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Release Apache APISIX Ingress Controller 0.2.0 | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="This release mainly improve basic features, bugfix and adds test cases."><meta  [...]
-<link rel="preload" href="/zh/assets/js/styles.d25a02cf.js" as="script">
-<link rel="preload" href="/zh/assets/js/runtime~main.d3f78d59.js" as="script">
-<link rel="preload" href="/zh/assets/js/main.8ce1e08c.js" as="script">
-<link rel="preload" href="/zh/assets/js/1.b21fad17.js" as="script">
-<link rel="preload" href="/zh/assets/js/2.c74b4887.js" as="script">
-<link rel="preload" href="/zh/assets/js/4.a448f392.js" as="script">
-<link rel="preload" href="/zh/assets/js/ccc49370.938f9db4.js" as="script">
-<link rel="preload" href="/zh/assets/js/f7488fe8.ed219fa4.js" as="script">
-<link rel="preload" href="/zh/assets/js/4eed9ed2.6483805d.js" as="script">
+<link rel="preload" href="/zh/assets/js/styles.8ae08ebc.js" as="script">
+<link rel="preload" href="/zh/assets/js/runtime~main.0b5a1314.js" as="script">
+<link rel="preload" href="/zh/assets/js/main.0749e470.js" as="script">
+<link rel="preload" href="/zh/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/zh/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/zh/assets/js/4.02c38c66.js" as="script">
+<link rel="preload" href="/zh/assets/js/ccc49370.b142e6b6.js" as="script">
+<link rel="preload" href="/zh/assets/js/f7488fe8.78be7bf2.js" as="script">
+<link rel="preload" href="/zh/assets/js/4eed9ed2.b4732670.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
-<script src="/zh/assets/js/styles.d25a02cf.js"></script>
-<script src="/zh/assets/js/runtime~main.d3f78d59.js"></script>
-<script src="/zh/assets/js/main.8ce1e08c.js"></script>
-<script src="/zh/assets/js/1.b21fad17.js"></script>
-<script src="/zh/assets/js/2.c74b4887.js"></script>
-<script src="/zh/assets/js/4.a448f392.js"></script>
-<script src="/zh/assets/js/ccc49370.938f9db4.js"></script>
-<script src="/zh/assets/js/f7488fe8.ed219fa4.js"></script>
-<script src="/zh/assets/js/4eed9ed2.6483805d.js"></script>
+<script src="/zh/assets/js/styles.8ae08ebc.js"></script>
+<script src="/zh/assets/js/runtime~main.0b5a1314.js"></script>
+<script src="/zh/assets/js/main.0749e470.js"></script>
+<script src="/zh/assets/js/1.3237074b.js"></script>
+<script src="/zh/assets/js/2.e4d54c2b.js"></script>
+<script src="/zh/assets/js/4.02c38c66.js"></script>
+<script src="/zh/assets/js/ccc49370.b142e6b6.js"></script>
+<script src="/zh/assets/js/f7488fe8.78be7bf2.js"></script>
+<script src="/zh/assets/js/4eed9ed2.b4732670.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh/events/2021/02/09/release-apache-apisix-2.3/index.html b/zh/events/2021/02/09/release-apache-apisix-2.3/index.html
index 7690536..dd542b4 100644
--- a/zh/events/2021/02/09/release-apache-apisix-2.3/index.html
+++ b/zh/events/2021/02/09/release-apache-apisix-2.3/index.html
@@ -11,27 +11,27 @@
 <link rel="alternate" type="application/rss+xml" href="/zh/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link 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.3 | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Release Apache APISIX 2.3 | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="Change"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" p [...]
-<link rel="preload" href="/zh/assets/js/styles.d25a02cf.js" as="script">
-<link rel="preload" href="/zh/assets/js/runtime~main.d3f78d59.js" as="script">
-<link rel="preload" href="/zh/assets/js/main.8ce1e08c.js" as="script">
-<link rel="preload" href="/zh/assets/js/1.b21fad17.js" as="script">
-<link rel="preload" href="/zh/assets/js/2.c74b4887.js" as="script">
-<link rel="preload" href="/zh/assets/js/4.a448f392.js" as="script">
-<link rel="preload" href="/zh/assets/js/ccc49370.938f9db4.js" as="script">
-<link rel="preload" href="/zh/assets/js/f7488fe8.ed219fa4.js" as="script">
-<link rel="preload" href="/zh/assets/js/41b4926b.702246a9.js" as="script">
+<link rel="preload" href="/zh/assets/js/styles.8ae08ebc.js" as="script">
+<link rel="preload" href="/zh/assets/js/runtime~main.0b5a1314.js" as="script">
+<link rel="preload" href="/zh/assets/js/main.0749e470.js" as="script">
+<link rel="preload" href="/zh/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/zh/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/zh/assets/js/4.02c38c66.js" as="script">
+<link rel="preload" href="/zh/assets/js/ccc49370.b142e6b6.js" as="script">
+<link rel="preload" href="/zh/assets/js/f7488fe8.78be7bf2.js" as="script">
+<link rel="preload" href="/zh/assets/js/41b4926b.4289490b.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
-<script src="/zh/assets/js/styles.d25a02cf.js"></script>
-<script src="/zh/assets/js/runtime~main.d3f78d59.js"></script>
-<script src="/zh/assets/js/main.8ce1e08c.js"></script>
-<script src="/zh/assets/js/1.b21fad17.js"></script>
-<script src="/zh/assets/js/2.c74b4887.js"></script>
-<script src="/zh/assets/js/4.a448f392.js"></script>
-<script src="/zh/assets/js/ccc49370.938f9db4.js"></script>
-<script src="/zh/assets/js/f7488fe8.ed219fa4.js"></script>
-<script src="/zh/assets/js/41b4926b.702246a9.js"></script>
+<script src="/zh/assets/js/styles.8ae08ebc.js"></script>
+<script src="/zh/assets/js/runtime~main.0b5a1314.js"></script>
+<script src="/zh/assets/js/main.0749e470.js"></script>
+<script src="/zh/assets/js/1.3237074b.js"></script>
+<script src="/zh/assets/js/2.e4d54c2b.js"></script>
+<script src="/zh/assets/js/4.02c38c66.js"></script>
+<script src="/zh/assets/js/ccc49370.b142e6b6.js"></script>
+<script src="/zh/assets/js/f7488fe8.78be7bf2.js"></script>
+<script src="/zh/assets/js/41b4926b.4289490b.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh/events/2021/02/11/release-apache-apisix-ingress-controller-0.3.0/index.html b/zh/events/2021/02/11/release-apache-apisix-ingress-controller-0.3.0/index.html
index 47b5d66..7eca432 100644
--- a/zh/events/2021/02/11/release-apache-apisix-ingress-controller-0.3.0/index.html
+++ b/zh/events/2021/02/11/release-apache-apisix-ingress-controller-0.3.0/index.html
@@ -11,27 +11,27 @@
 <link rel="alternate" type="application/rss+xml" href="/zh/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link 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 Ingress Controller 0.3.0 | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Release Apache APISIX Ingress Controller 0.3.0 | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="This release mainly improves the program robustness and adds some features."><m [...]
-<link rel="preload" href="/zh/assets/js/styles.d25a02cf.js" as="script">
-<link rel="preload" href="/zh/assets/js/runtime~main.d3f78d59.js" as="script">
-<link rel="preload" href="/zh/assets/js/main.8ce1e08c.js" as="script">
-<link rel="preload" href="/zh/assets/js/1.b21fad17.js" as="script">
-<link rel="preload" href="/zh/assets/js/2.c74b4887.js" as="script">
-<link rel="preload" href="/zh/assets/js/4.a448f392.js" as="script">
-<link rel="preload" href="/zh/assets/js/ccc49370.938f9db4.js" as="script">
-<link rel="preload" href="/zh/assets/js/f7488fe8.ed219fa4.js" as="script">
-<link rel="preload" href="/zh/assets/js/1be5d2e8.8711092b.js" as="script">
+<link rel="preload" href="/zh/assets/js/styles.8ae08ebc.js" as="script">
+<link rel="preload" href="/zh/assets/js/runtime~main.0b5a1314.js" as="script">
+<link rel="preload" href="/zh/assets/js/main.0749e470.js" as="script">
+<link rel="preload" href="/zh/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/zh/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/zh/assets/js/4.02c38c66.js" as="script">
+<link rel="preload" href="/zh/assets/js/ccc49370.b142e6b6.js" as="script">
+<link rel="preload" href="/zh/assets/js/f7488fe8.78be7bf2.js" as="script">
+<link rel="preload" href="/zh/assets/js/1be5d2e8.e89757e0.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
-<script src="/zh/assets/js/styles.d25a02cf.js"></script>
-<script src="/zh/assets/js/runtime~main.d3f78d59.js"></script>
-<script src="/zh/assets/js/main.8ce1e08c.js"></script>
-<script src="/zh/assets/js/1.b21fad17.js"></script>
-<script src="/zh/assets/js/2.c74b4887.js"></script>
-<script src="/zh/assets/js/4.a448f392.js"></script>
-<script src="/zh/assets/js/ccc49370.938f9db4.js"></script>
-<script src="/zh/assets/js/f7488fe8.ed219fa4.js"></script>
-<script src="/zh/assets/js/1be5d2e8.8711092b.js"></script>
+<script src="/zh/assets/js/styles.8ae08ebc.js"></script>
+<script src="/zh/assets/js/runtime~main.0b5a1314.js"></script>
+<script src="/zh/assets/js/main.0749e470.js"></script>
+<script src="/zh/assets/js/1.3237074b.js"></script>
+<script src="/zh/assets/js/2.e4d54c2b.js"></script>
+<script src="/zh/assets/js/4.02c38c66.js"></script>
+<script src="/zh/assets/js/ccc49370.b142e6b6.js"></script>
+<script src="/zh/assets/js/f7488fe8.78be7bf2.js"></script>
+<script src="/zh/assets/js/1be5d2e8.e89757e0.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh/events/2021/02/12/release-apache-apisix-dashboard-2.4/index.html b/zh/events/2021/02/12/release-apache-apisix-dashboard-2.4/index.html
index c434919..26b53cc 100644
--- a/zh/events/2021/02/12/release-apache-apisix-dashboard-2.4/index.html
+++ b/zh/events/2021/02/12/release-apache-apisix-dashboard-2.4/index.html
@@ -11,27 +11,27 @@
 <link rel="alternate" type="application/rss+xml" href="/zh/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link 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 Dashboard 2.4 | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Release Apache APISIX Dashboard 2.4 | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="This release mainly improves basic features, bugfix and adds test cases."><meta data-react-helmet="tr [...]
-<link rel="preload" href="/zh/assets/js/styles.d25a02cf.js" as="script">
-<link rel="preload" href="/zh/assets/js/runtime~main.d3f78d59.js" as="script">
-<link rel="preload" href="/zh/assets/js/main.8ce1e08c.js" as="script">
-<link rel="preload" href="/zh/assets/js/1.b21fad17.js" as="script">
-<link rel="preload" href="/zh/assets/js/2.c74b4887.js" as="script">
-<link rel="preload" href="/zh/assets/js/4.a448f392.js" as="script">
-<link rel="preload" href="/zh/assets/js/ccc49370.938f9db4.js" as="script">
-<link rel="preload" href="/zh/assets/js/f7488fe8.ed219fa4.js" as="script">
-<link rel="preload" href="/zh/assets/js/d4de91ec.55c63e46.js" as="script">
+<link rel="preload" href="/zh/assets/js/styles.8ae08ebc.js" as="script">
+<link rel="preload" href="/zh/assets/js/runtime~main.0b5a1314.js" as="script">
+<link rel="preload" href="/zh/assets/js/main.0749e470.js" as="script">
+<link rel="preload" href="/zh/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/zh/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/zh/assets/js/4.02c38c66.js" as="script">
+<link rel="preload" href="/zh/assets/js/ccc49370.b142e6b6.js" as="script">
+<link rel="preload" href="/zh/assets/js/f7488fe8.78be7bf2.js" as="script">
+<link rel="preload" href="/zh/assets/js/d4de91ec.a4fb0674.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
-<script src="/zh/assets/js/styles.d25a02cf.js"></script>
-<script src="/zh/assets/js/runtime~main.d3f78d59.js"></script>
-<script src="/zh/assets/js/main.8ce1e08c.js"></script>
-<script src="/zh/assets/js/1.b21fad17.js"></script>
-<script src="/zh/assets/js/2.c74b4887.js"></script>
-<script src="/zh/assets/js/4.a448f392.js"></script>
-<script src="/zh/assets/js/ccc49370.938f9db4.js"></script>
-<script src="/zh/assets/js/f7488fe8.ed219fa4.js"></script>
-<script src="/zh/assets/js/d4de91ec.55c63e46.js"></script>
+<script src="/zh/assets/js/styles.8ae08ebc.js"></script>
+<script src="/zh/assets/js/runtime~main.0b5a1314.js"></script>
+<script src="/zh/assets/js/main.0749e470.js"></script>
+<script src="/zh/assets/js/1.3237074b.js"></script>
+<script src="/zh/assets/js/2.e4d54c2b.js"></script>
+<script src="/zh/assets/js/4.02c38c66.js"></script>
+<script src="/zh/assets/js/ccc49370.b142e6b6.js"></script>
+<script src="/zh/assets/js/f7488fe8.78be7bf2.js"></script>
+<script src="/zh/assets/js/d4de91ec.a4fb0674.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh/events/index.html b/zh/events/index.html
index b13aaa9..40a034e 100644
--- a/zh/events/index.html
+++ b/zh/events/index.html
@@ -11,37 +11,37 @@
 <link rel="alternate" type="application/rss+xml" href="/zh/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Blog | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Blog | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="Blog"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://apisix.apa [...]
-<link rel="preload" href="/zh/assets/js/styles.d25a02cf.js" as="script">
-<link rel="preload" href="/zh/assets/js/runtime~main.d3f78d59.js" as="script">
-<link rel="preload" href="/zh/assets/js/main.8ce1e08c.js" as="script">
-<link rel="preload" href="/zh/assets/js/1.b21fad17.js" as="script">
-<link rel="preload" href="/zh/assets/js/2.c74b4887.js" as="script">
-<link rel="preload" href="/zh/assets/js/4.a448f392.js" as="script">
-<link rel="preload" href="/zh/assets/js/a6aa9e1f.c641128b.js" as="script">
-<link rel="preload" href="/zh/assets/js/f7488fe8.ed219fa4.js" as="script">
-<link rel="preload" href="/zh/assets/js/bacea567.49cd87f9.js" as="script">
-<link rel="preload" href="/zh/assets/js/c119cf3c.b661798c.js" as="script">
-<link rel="preload" href="/zh/assets/js/17dc512b.888d5c12.js" as="script">
-<link rel="preload" href="/zh/assets/js/c5594f1a.d180ea48.js" as="script">
-<link rel="preload" href="/zh/assets/js/fa919c95.75271be3.js" as="script">
-<link rel="preload" href="/zh/assets/js/7ecc8185.2402dced.js" as="script">
+<link rel="preload" href="/zh/assets/js/styles.8ae08ebc.js" as="script">
+<link rel="preload" href="/zh/assets/js/runtime~main.0b5a1314.js" as="script">
+<link rel="preload" href="/zh/assets/js/main.0749e470.js" as="script">
+<link rel="preload" href="/zh/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/zh/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/zh/assets/js/4.02c38c66.js" as="script">
+<link rel="preload" href="/zh/assets/js/a6aa9e1f.44ef45f8.js" as="script">
+<link rel="preload" href="/zh/assets/js/f7488fe8.78be7bf2.js" as="script">
+<link rel="preload" href="/zh/assets/js/bacea567.94238c06.js" as="script">
+<link rel="preload" href="/zh/assets/js/c119cf3c.f30b41ff.js" as="script">
+<link rel="preload" href="/zh/assets/js/17dc512b.9356f2ae.js" as="script">
+<link rel="preload" href="/zh/assets/js/c5594f1a.edad8977.js" as="script">
+<link rel="preload" href="/zh/assets/js/fa919c95.e28dfe07.js" as="script">
+<link rel="preload" href="/zh/assets/js/7ecc8185.4b05f8f4.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
-<script src="/zh/assets/js/styles.d25a02cf.js"></script>
-<script src="/zh/assets/js/runtime~main.d3f78d59.js"></script>
-<script src="/zh/assets/js/main.8ce1e08c.js"></script>
-<script src="/zh/assets/js/1.b21fad17.js"></script>
-<script src="/zh/assets/js/2.c74b4887.js"></script>
-<script src="/zh/assets/js/4.a448f392.js"></script>
-<script src="/zh/assets/js/a6aa9e1f.c641128b.js"></script>
-<script src="/zh/assets/js/f7488fe8.ed219fa4.js"></script>
-<script src="/zh/assets/js/bacea567.49cd87f9.js"></script>
-<script src="/zh/assets/js/c119cf3c.b661798c.js"></script>
-<script src="/zh/assets/js/17dc512b.888d5c12.js"></script>
-<script src="/zh/assets/js/c5594f1a.d180ea48.js"></script>
-<script src="/zh/assets/js/fa919c95.75271be3.js"></script>
-<script src="/zh/assets/js/7ecc8185.2402dced.js"></script>
+<script src="/zh/assets/js/styles.8ae08ebc.js"></script>
+<script src="/zh/assets/js/runtime~main.0b5a1314.js"></script>
+<script src="/zh/assets/js/main.0749e470.js"></script>
+<script src="/zh/assets/js/1.3237074b.js"></script>
+<script src="/zh/assets/js/2.e4d54c2b.js"></script>
+<script src="/zh/assets/js/4.02c38c66.js"></script>
+<script src="/zh/assets/js/a6aa9e1f.44ef45f8.js"></script>
+<script src="/zh/assets/js/f7488fe8.78be7bf2.js"></script>
+<script src="/zh/assets/js/bacea567.94238c06.js"></script>
+<script src="/zh/assets/js/c119cf3c.f30b41ff.js"></script>
+<script src="/zh/assets/js/17dc512b.9356f2ae.js"></script>
+<script src="/zh/assets/js/c5594f1a.edad8977.js"></script>
+<script src="/zh/assets/js/fa919c95.e28dfe07.js"></script>
+<script src="/zh/assets/js/7ecc8185.4b05f8f4.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh/help/index.html b/zh/help/index.html
index 13279bc..8516b97 100644
--- a/zh/help/index.html
+++ b/zh/help/index.html
@@ -11,23 +11,23 @@
 <link rel="alternate" type="application/rss+xml" href="/zh/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link 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™</title><meta data-react-helmet="true" property="og:title" content="Apache APISIX™"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//zh/help"><meta data-react-helmet="true" name="docsearch:language" content="zh [...]
-<link rel="preload" href="/zh/assets/js/styles.d25a02cf.js" as="script">
-<link rel="preload" href="/zh/assets/js/runtime~main.d3f78d59.js" as="script">
-<link rel="preload" href="/zh/assets/js/main.8ce1e08c.js" as="script">
-<link rel="preload" href="/zh/assets/js/1.b21fad17.js" as="script">
-<link rel="preload" href="/zh/assets/js/2.c74b4887.js" as="script">
-<link rel="preload" href="/zh/assets/js/3.e5911a24.js" as="script">
-<link rel="preload" href="/zh/assets/js/7e37206e.7992680e.js" as="script">
+<link rel="preload" href="/zh/assets/js/styles.8ae08ebc.js" as="script">
+<link rel="preload" href="/zh/assets/js/runtime~main.0b5a1314.js" as="script">
+<link rel="preload" href="/zh/assets/js/main.0749e470.js" as="script">
+<link rel="preload" href="/zh/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/zh/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/zh/assets/js/3.b8da59b5.js" as="script">
+<link rel="preload" href="/zh/assets/js/7e37206e.7f7bd448.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
-<script src="/zh/assets/js/styles.d25a02cf.js"></script>
-<script src="/zh/assets/js/runtime~main.d3f78d59.js"></script>
-<script src="/zh/assets/js/main.8ce1e08c.js"></script>
-<script src="/zh/assets/js/1.b21fad17.js"></script>
-<script src="/zh/assets/js/2.c74b4887.js"></script>
-<script src="/zh/assets/js/3.e5911a24.js"></script>
-<script src="/zh/assets/js/7e37206e.7992680e.js"></script>
+<script src="/zh/assets/js/styles.8ae08ebc.js"></script>
+<script src="/zh/assets/js/runtime~main.0b5a1314.js"></script>
+<script src="/zh/assets/js/main.0749e470.js"></script>
+<script src="/zh/assets/js/1.3237074b.js"></script>
+<script src="/zh/assets/js/2.e4d54c2b.js"></script>
+<script src="/zh/assets/js/3.b8da59b5.js"></script>
+<script src="/zh/assets/js/7e37206e.7f7bd448.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh/index.html b/zh/index.html
index 227075c..9e95ee2 100644
--- a/zh/index.html
+++ b/zh/index.html
@@ -11,23 +11,23 @@
 <link rel="alternate" type="application/rss+xml" href="/zh/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link 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™</title><meta data-react-helmet="true" property="og:title" content="Apache APISIX™"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//zh/"><meta data-react-helmet="true" name="docsearch:language" content="zh"><m [...]
-<link rel="preload" href="/zh/assets/js/styles.d25a02cf.js" as="script">
-<link rel="preload" href="/zh/assets/js/runtime~main.d3f78d59.js" as="script">
-<link rel="preload" href="/zh/assets/js/main.8ce1e08c.js" as="script">
-<link rel="preload" href="/zh/assets/js/1.b21fad17.js" as="script">
-<link rel="preload" href="/zh/assets/js/2.c74b4887.js" as="script">
-<link rel="preload" href="/zh/assets/js/59.654079dd.js" as="script">
-<link rel="preload" href="/zh/assets/js/c4f5d8e4.a4d61c1b.js" as="script">
+<link rel="preload" href="/zh/assets/js/styles.8ae08ebc.js" as="script">
+<link rel="preload" href="/zh/assets/js/runtime~main.0b5a1314.js" as="script">
+<link rel="preload" href="/zh/assets/js/main.0749e470.js" as="script">
+<link rel="preload" href="/zh/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/zh/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/zh/assets/js/76.0f6d1c85.js" as="script">
+<link rel="preload" href="/zh/assets/js/c4f5d8e4.08af8182.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <div id="docusaurus-base-url-issue-banner-container"></div><nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title> [...]
-<script src="/zh/assets/js/styles.d25a02cf.js"></script>
-<script src="/zh/assets/js/runtime~main.d3f78d59.js"></script>
-<script src="/zh/assets/js/main.8ce1e08c.js"></script>
-<script src="/zh/assets/js/1.b21fad17.js"></script>
-<script src="/zh/assets/js/2.c74b4887.js"></script>
-<script src="/zh/assets/js/59.654079dd.js"></script>
-<script src="/zh/assets/js/c4f5d8e4.a4d61c1b.js"></script>
+<script src="/zh/assets/js/styles.8ae08ebc.js"></script>
+<script src="/zh/assets/js/runtime~main.0b5a1314.js"></script>
+<script src="/zh/assets/js/main.0749e470.js"></script>
+<script src="/zh/assets/js/1.3237074b.js"></script>
+<script src="/zh/assets/js/2.e4d54c2b.js"></script>
+<script src="/zh/assets/js/76.0f6d1c85.js"></script>
+<script src="/zh/assets/js/c4f5d8e4.08af8182.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh/search/index.html b/zh/search/index.html
index f21ed9a..7194ac9 100644
--- a/zh/search/index.html
+++ b/zh/search/index.html
@@ -11,21 +11,21 @@
 <link rel="alternate" type="application/rss+xml" href="/zh/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Search the documentation | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Apache APISIX™"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//zh/search"><meta data-react-helmet="true" name="do [...]
-<link rel="preload" href="/zh/assets/js/styles.d25a02cf.js" as="script">
-<link rel="preload" href="/zh/assets/js/runtime~main.d3f78d59.js" as="script">
-<link rel="preload" href="/zh/assets/js/main.8ce1e08c.js" as="script">
-<link rel="preload" href="/zh/assets/js/1.b21fad17.js" as="script">
-<link rel="preload" href="/zh/assets/js/2.c74b4887.js" as="script">
-<link rel="preload" href="/zh/assets/js/54.b7cce01d.js" as="script">
+<link rel="preload" href="/zh/assets/js/styles.8ae08ebc.js" as="script">
+<link rel="preload" href="/zh/assets/js/runtime~main.0b5a1314.js" as="script">
+<link rel="preload" href="/zh/assets/js/main.0749e470.js" as="script">
+<link rel="preload" href="/zh/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/zh/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/zh/assets/js/71.349eb674.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
-<script src="/zh/assets/js/styles.d25a02cf.js"></script>
-<script src="/zh/assets/js/runtime~main.d3f78d59.js"></script>
-<script src="/zh/assets/js/main.8ce1e08c.js"></script>
-<script src="/zh/assets/js/1.b21fad17.js"></script>
-<script src="/zh/assets/js/2.c74b4887.js"></script>
-<script src="/zh/assets/js/54.b7cce01d.js"></script>
+<script src="/zh/assets/js/styles.8ae08ebc.js"></script>
+<script src="/zh/assets/js/runtime~main.0b5a1314.js"></script>
+<script src="/zh/assets/js/main.0749e470.js"></script>
+<script src="/zh/assets/js/1.3237074b.js"></script>
+<script src="/zh/assets/js/2.e4d54c2b.js"></script>
+<script src="/zh/assets/js/71.349eb674.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh/sitemap.xml b/zh/sitemap.xml
index 42e5108..d44dc1f 100644
--- a/zh/sitemap.xml
+++ b/zh/sitemap.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:mobile="http://www.google.com/schemas/sitemap-mobile/1.0" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://apisix.apache.org/zh/</loc><changefreq>weekly</changefreq><priority>0.5</priority></u [...]
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:mobile="http://www.google.com/schemas/sitemap-mobile/1.0" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://apisix.apache.org/zh/</loc><changefreq>weekly</changefreq><priority>0.5</priority></u [...]
\ No newline at end of file
diff --git a/zh/team/index.html b/zh/team/index.html
index 4f5dbf5..60b06e8 100644
--- a/zh/team/index.html
+++ b/zh/team/index.html
@@ -11,23 +11,23 @@
 <link rel="alternate" type="application/rss+xml" href="/zh/events/rss.xml" title="Apache APISIX™ Blog RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh/events/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link 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™</title><meta data-react-helmet="true" property="og:title" content="Apache APISIX™"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//zh/team"><meta data-react-helmet="true" name="docsearch:language" content="zh [...]
-<link rel="preload" href="/zh/assets/js/styles.d25a02cf.js" as="script">
-<link rel="preload" href="/zh/assets/js/runtime~main.d3f78d59.js" as="script">
-<link rel="preload" href="/zh/assets/js/main.8ce1e08c.js" as="script">
-<link rel="preload" href="/zh/assets/js/1.b21fad17.js" as="script">
-<link rel="preload" href="/zh/assets/js/2.c74b4887.js" as="script">
-<link rel="preload" href="/zh/assets/js/3.e5911a24.js" as="script">
-<link rel="preload" href="/zh/assets/js/859cc09f.feab14f8.js" as="script">
+<link rel="preload" href="/zh/assets/js/styles.8ae08ebc.js" as="script">
+<link rel="preload" href="/zh/assets/js/runtime~main.0b5a1314.js" as="script">
+<link rel="preload" href="/zh/assets/js/main.0749e470.js" as="script">
+<link rel="preload" href="/zh/assets/js/1.3237074b.js" as="script">
+<link rel="preload" href="/zh/assets/js/2.e4d54c2b.js" as="script">
+<link rel="preload" href="/zh/assets/js/3.b8da59b5.js" as="script">
+<link rel="preload" href="/zh/assets/js/859cc09f.2f8c75cd.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_1oUP">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-m [...]
-<script src="/zh/assets/js/styles.d25a02cf.js"></script>
-<script src="/zh/assets/js/runtime~main.d3f78d59.js"></script>
-<script src="/zh/assets/js/main.8ce1e08c.js"></script>
-<script src="/zh/assets/js/1.b21fad17.js"></script>
-<script src="/zh/assets/js/2.c74b4887.js"></script>
-<script src="/zh/assets/js/3.e5911a24.js"></script>
-<script src="/zh/assets/js/859cc09f.feab14f8.js"></script>
+<script src="/zh/assets/js/styles.8ae08ebc.js"></script>
+<script src="/zh/assets/js/runtime~main.0b5a1314.js"></script>
+<script src="/zh/assets/js/main.0749e470.js"></script>
+<script src="/zh/assets/js/1.3237074b.js"></script>
+<script src="/zh/assets/js/2.e4d54c2b.js"></script>
+<script src="/zh/assets/js/3.b8da59b5.js"></script>
+<script src="/zh/assets/js/859cc09f.2f8c75cd.js"></script>
 </body>
 </html>
\ No newline at end of file