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/05/04 15:28:50 UTC

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

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 df7a2ef  deploy: b02a32e723b08576873dd19229f2c80b0534ee31
df7a2ef is described below

commit df7a2efcb46408b5f35bd3426b0e1c6881cb7a02
Author: juzhiyuan <ju...@users.noreply.github.com>
AuthorDate: Tue May 4 15:28:39 2021 +0000

    deploy: b02a32e723b08576873dd19229f2c80b0534ee31
---
 404.html                                           | 18 ++++---
 assets/css/styles.8cebb52d.css                     |  1 -
 assets/css/styles.aef3a109.css                     | 25 ++++++++++
 assets/js/00ee19e9.997f2155.js                     |  1 -
 assets/js/00ee19e9.9fef9d18.js                     |  1 +
 assets/js/0132ab2c.be02a700.js                     |  1 -
 assets/js/0132ab2c.cd360c10.js                     |  1 +
 assets/js/0201ab1c.926d321d.js                     |  1 -
 assets/js/0201ab1c.b1d3cd91.js                     |  1 +
 assets/js/034277d8.436be674.js                     |  1 +
 assets/js/034277d8.ab60ce7f.js                     |  1 -
 assets/js/042f2dd8.00e6fb6a.js                     |  1 -
 assets/js/042f2dd8.187dce71.js                     |  1 +
 assets/js/0484cea7.568579fc.js                     |  1 -
 assets/js/0484cea7.67c25212.js                     |  1 +
 assets/js/0654f374.1bfe693c.js                     |  1 -
 assets/js/0654f374.a9920378.js                     |  1 +
 assets/js/098c8b15.1c2acc5c.js                     |  1 -
 assets/js/098c8b15.2270c688.js                     |  1 +
 assets/js/0dc3e78d.07dce7ed.js                     |  1 +
 assets/js/0dc3e78d.6f67ea1c.js                     |  1 -
 assets/js/1.8ab37bf2.js                            |  1 -
 assets/js/11dba9b3.4a928104.js                     |  1 -
 assets/js/11dba9b3.8b9cf211.js                     |  1 +
 assets/js/12e5767f.07863216.js                     |  1 +
 assets/js/12e5767f.a607b710.js                     |  1 -
 assets/js/13dafbb5.27960d4d.js                     |  1 +
 assets/js/13dafbb5.8f2278ce.js                     |  1 -
 assets/js/162a65a3.247c7ac2.js                     |  1 +
 assets/js/162a65a3.34fd45ff.js                     |  1 -
 assets/js/1741c35c.5c786a31.js                     |  1 +
 assets/js/1741c35c.e447e333.js                     |  1 -
 assets/js/17896441.00051d18.js                     |  1 -
 assets/js/17896441.4b399950.js                     |  1 +
 assets/js/17d3fec9.5c6bad9a.js                     |  1 +
 assets/js/17d3fec9.ec0ba0c8.js                     |  1 -
 assets/js/17dc512b.6148cece.js                     |  1 -
 assets/js/17dc512b.ca1545b0.js                     |  1 +
 assets/js/198.2d894345.js                          |  2 -
 assets/js/198.2d894345.js.LICENSE.txt              |  1 -
 assets/js/199.032a25d0.js                          |  1 -
 assets/js/19945770.6fc6ce2a.js                     |  1 -
 assets/js/19945770.9a8e5389.js                     |  1 +
 assets/js/1bc24c0d.08b153c1.js                     |  1 -
 assets/js/1bc24c0d.77d8fed3.js                     |  1 +
 assets/js/1be5d2e8.0553ab7d.js                     |  1 -
 assets/js/1be5d2e8.05d7500b.js                     |  1 +
 assets/js/1be78505.29634db6.js                     |  1 -
 assets/js/1be78505.d3cd3e07.js                     |  1 +
 assets/js/1c89ab3b.8caa3515.js                     |  1 +
 assets/js/1c89ab3b.9f20e2c0.js                     |  1 -
 assets/js/1ed156ee.16d0ddaa.js                     |  1 -
 assets/js/1ed156ee.950b212d.js                     |  1 +
 assets/js/1fb562de.b634ffff.js                     |  1 +
 assets/js/1fb562de.c34a8b98.js                     |  1 -
 assets/js/2.f6d304f2.js                            |  2 -
 assets/js/2.f6d304f2.js.LICENSE.txt                |  5 --
 assets/js/200.39dd084b.js                          |  1 -
 assets/js/201.69eef08d.js                          |  1 -
 assets/js/202.351a4f3f.js                          |  1 -
 assets/js/203.cc7dd385.js                          |  1 -
 assets/js/210.29d77d85.js                          |  1 +
 assets/js/25b7c3f2.3be4f1a5.js                     |  1 +
 assets/js/25b7c3f2.d77b68fe.js                     |  1 -
 assets/js/25fbf809.353e8ea1.js                     |  1 -
 assets/js/25fbf809.ca2b5f98.js                     |  1 +
 assets/js/264a218f.0cfde3ba.js                     |  1 -
 assets/js/264a218f.2d244c6a.js                     |  1 +
 assets/js/27858f29.5b44f0ec.js                     |  1 +
 assets/js/27858f29.e6a5c3ae.js                     |  1 -
 assets/js/2a2f078e.2ac72e61.js                     |  1 +
 assets/js/2a2f078e.5702dd48.js                     |  1 -
 assets/js/2b03a116.e4b3b757.js                     |  1 -
 assets/js/2b03a116.e9649549.js                     |  1 +
 assets/js/2ceea113.302b6ff7.js                     |  1 +
 assets/js/2ceea113.ba996d5c.js                     |  1 -
 assets/js/2d8fe9ee.406a866d.js                     |  1 -
 assets/js/2d8fe9ee.daa4b692.js                     |  1 +
 assets/js/2f1ee7b9.6e622c50.js                     |  1 +
 assets/js/2f1ee7b9.906a56f1.js                     |  1 -
 assets/js/2f7e5bad.9ba110d3.js                     |  1 +
 assets/js/2f7e5bad.e6021b10.js                     |  1 -
 assets/js/3.0e53f923.js                            |  1 -
 assets/js/31fa6cf3.344a13de.js                     |  1 -
 assets/js/31fa6cf3.458a7064.js                     |  1 +
 assets/js/32e589c1.c077b6e4.js                     |  1 +
 assets/js/32e589c1.d01a6b37.js                     |  1 -
 assets/js/3316b9c0.4579611c.js                     |  1 +
 assets/js/3316b9c0.d50289e2.js                     |  1 -
 assets/js/3393d167.84cd5a3e.js                     |  1 +
 assets/js/3393d167.f5467fce.js                     |  1 -
 assets/js/358566b4.40967a68.js                     |  1 -
 assets/js/358566b4.b699a944.js                     |  1 +
 assets/js/3763.744c9569.js                         |  1 +
 assets/js/37e3b3ea.c1d82963.js                     |  1 +
 assets/js/37e3b3ea.fda28e6d.js                     |  1 -
 assets/js/383740fd.20e1d317.js                     |  1 -
 assets/js/383740fd.93f22926.js                     |  1 +
 assets/js/3a136aea.84bb341d.js                     |  1 -
 assets/js/3a136aea.d69a8820.js                     |  1 +
 assets/js/3ace1223.cc5b204d.js                     |  1 +
 assets/js/3ace1223.cf9f1639.js                     |  1 -
 assets/js/3dc9f306.0d426e66.js                     |  1 +
 assets/js/3dc9f306.c58ac029.js                     |  1 -
 assets/js/3f7f6f74.0593cfa8.js                     |  1 -
 assets/js/3f7f6f74.62267c2f.js                     |  1 +
 assets/js/4.bde55da2.js                            |  1 -
 assets/js/40fb2fae.6b6271fc.js                     |  1 -
 assets/js/40fb2fae.adc9e234.js                     |  1 +
 assets/js/41a31a3f.3a596c6c.js                     |  1 -
 assets/js/41a31a3f.dcde19c0.js                     |  1 +
 assets/js/41b4926b.0df4d5e5.js                     |  1 -
 assets/js/41b4926b.4ca3b210.js                     |  1 +
 assets/js/43aea6af.046f84a4.js                     |  1 +
 assets/js/43aea6af.6506be0d.js                     |  1 -
 assets/js/4608.38cf846f.js                         |  1 +
 assets/js/47e0bf55.3ff4ff52.js                     |  1 -
 assets/js/47e0bf55.9f81139a.js                     |  1 +
 assets/js/47f8a22a.583c2a1c.js                     |  1 -
 assets/js/47f8a22a.f728e89d.js                     |  1 +
 assets/js/4842b438.9c3e0bd2.js                     |  1 +
 assets/js/4842b438.e2c730d5.js                     |  1 -
 assets/js/4b0b9689.6b962daf.js                     |  1 -
 assets/js/4b0b9689.8f16b3c3.js                     |  1 +
 assets/js/4e55a385.3a3a653b.js                     |  1 +
 assets/js/4e55a385.908faebb.js                     |  1 -
 assets/js/4eed9ed2.b47cdb5c.js                     |  1 +
 assets/js/4eed9ed2.fa87211a.js                     |  1 -
 assets/js/4f34f66f.41729270.js                     |  1 -
 assets/js/4f34f66f.e6bc063a.js                     |  1 +
 assets/js/4f7f961a.9b0b73dc.js                     |  1 +
 assets/js/4f7f961a.c7014e08.js                     |  1 -
 assets/js/50facf8e.6fe578d3.js                     |  1 +
 assets/js/50facf8e.bec7a0b7.js                     |  1 -
 assets/js/514de2af.20f32562.js                     |  1 +
 assets/js/514de2af.86d84278.js                     |  1 -
 assets/js/5256.9d9df735.js                         |  1 +
 assets/js/5381c375.92690a1b.js                     |  1 +
 assets/js/5381c375.f7a3e4d4.js                     |  1 -
 assets/js/5426aede.c7e1c799.js                     |  1 +
 assets/js/5426aede.ee5d274b.js                     |  1 -
 assets/js/5486.d7f23542.js                         |  2 +
 assets/js/5486.d7f23542.js.LICENSE.txt             | 14 ++++++
 assets/js/562da56c.308a67ce.js                     |  1 +
 assets/js/562da56c.fb5b08f7.js                     |  1 -
 assets/js/574dc000.bc3b9f62.js                     |  1 -
 assets/js/574dc000.cc48faa7.js                     |  1 +
 assets/js/579f31ee.08159244.js                     |  1 -
 assets/js/579f31ee.1ae92b31.js                     |  1 +
 assets/js/588365fb.3846e089.js                     |  1 -
 assets/js/588365fb.f8fe100e.js                     |  1 +
 assets/js/5888.4197bf83.js                         |  1 +
 assets/js/59472992.5eb3bcf1.js                     |  1 +
 assets/js/59472992.fbaee69e.js                     |  1 -
 assets/js/5aca9bfb.16d5a8bb.js                     |  1 +
 assets/js/5aca9bfb.49d36898.js                     |  1 -
 assets/js/5b9020fd.d2bd3312.js                     |  1 -
 assets/js/5b9020fd.f88654a6.js                     |  1 +
 assets/js/5bb67ffc.7f92a67b.js                     |  1 -
 assets/js/5bb67ffc.9cdd61d1.js                     |  1 +
 assets/js/5c21e7f7.0899fed0.js                     |  1 -
 assets/js/5c21e7f7.52c0ae3e.js                     |  1 +
 assets/js/601c6eaa.1621e424.js                     |  1 +
 assets/js/601c6eaa.65340863.js                     |  1 -
 assets/js/601cd3be.705d88a9.js                     |  1 -
 assets/js/601cd3be.ba22cf70.js                     |  1 +
 assets/js/63468b30.3ef9d276.js                     |  1 -
 assets/js/63468b30.ad1050e3.js                     |  1 +
 assets/js/64288df6.5bf4808c.js                     |  1 -
 assets/js/64288df6.bdeb3467.js                     |  1 +
 assets/js/645be848.092af5be.js                     |  1 -
 assets/js/645be848.65f69e88.js                     |  1 +
 assets/js/65962b6f.34a2e687.js                     |  1 +
 assets/js/65962b6f.aee00c50.js                     |  1 -
 assets/js/66fbb9c2.23246ff9.js                     |  1 -
 assets/js/66fbb9c2.684806a8.js                     |  1 +
 assets/js/679cfa79.659ee067.js                     |  1 +
 assets/js/679cfa79.7f96b57e.js                     |  1 -
 assets/js/6808c117.4cd33d2d.js                     |  1 +
 assets/js/6808c117.cdc213ad.js                     |  1 -
 assets/js/6945.5275d096.js                         |  1 +
 assets/js/6967878f.18368567.js                     |  1 -
 assets/js/6967878f.d9f5ffc0.js                     |  1 +
 assets/js/6d5713a9.428e6866.js                     |  1 +
 assets/js/6d5713a9.6101fafe.js                     |  1 -
 assets/js/6e5db0c1.51675755.js                     |  1 +
 assets/js/6e5db0c1.967ba44a.js                     |  1 -
 assets/js/6f365930.504ff274.js                     |  1 -
 assets/js/6f365930.9c60346c.js                     |  1 +
 assets/js/70fb06d4.7b35c299.js                     |  1 -
 assets/js/70fb06d4.e73de786.js                     |  1 +
 assets/js/7193710f.393d48eb.js                     |  1 +
 assets/js/7193710f.ea510280.js                     |  1 -
 assets/js/71950930.339c66d6.js                     |  1 -
 assets/js/71950930.8c5a4202.js                     |  1 +
 assets/js/72cd189b.7c340be9.js                     |  1 +
 assets/js/72cd189b.ea4d8f3e.js                     |  1 -
 assets/js/72ff46d3.1cb2e254.js                     |  1 -
 assets/js/72ff46d3.8c0f19e7.js                     |  1 +
 assets/js/746acb87.58ebbb64.js                     |  1 +
 assets/js/746acb87.81a6ccb1.js                     |  1 -
 assets/js/746d4aad.77a73c8c.js                     |  1 -
 assets/js/746d4aad.d82ad97a.js                     |  1 +
 assets/js/74848684.1e817ff1.js                     |  1 -
 assets/js/74848684.c9de5e6c.js                     |  1 +
 assets/js/749ed826.7730456e.js                     |  1 +
 assets/js/749ed826.b3e4e8fb.js                     |  1 -
 assets/js/7af3052c.291dd3dc.js                     |  1 +
 assets/js/7af3052c.94d7f357.js                     |  1 -
 assets/js/7e37206e.0ba35447.js                     |  1 -
 assets/js/7e37206e.7ed96dbe.js                     |  1 +
 assets/js/81f18807.2e7ffedd.js                     |  1 -
 assets/js/81f18807.30cfe101.js                     |  1 +
 assets/js/83cf9161.4a742482.js                     |  1 +
 assets/js/83cf9161.6696f94e.js                     |  1 -
 assets/js/84a8b022.32040ebc.js                     |  1 -
 assets/js/84a8b022.f35c2916.js                     |  1 +
 assets/js/84d2a1f2.023da9eb.js                     |  1 -
 assets/js/84d2a1f2.e0324d3a.js                     |  1 +
 assets/js/84ebf226.5be852ec.js                     |  1 +
 assets/js/84ebf226.98b23c2d.js                     |  1 -
 assets/js/859cc09f.9776541f.js                     |  1 -
 assets/js/859cc09f.ad0b659b.js                     |  1 +
 assets/js/860d73b2.2bcf81c3.js                     |  1 +
 assets/js/860d73b2.84cff8f3.js                     |  1 -
 assets/js/89d0b30c.18a8e12c.js                     |  1 +
 assets/js/89d0b30c.5a34fca0.js                     |  1 -
 assets/js/8b956bd2.20ad141e.js                     |  1 +
 assets/js/8b956bd2.c2281f84.js                     |  1 -
 assets/js/8cdcb209.0d6093e2.js                     |  1 +
 assets/js/8cdcb209.2c41a268.js                     |  1 -
 assets/js/8e27d69a.70c352ee.js                     |  1 +
 assets/js/8e27d69a.a0aa0d18.js                     |  1 -
 assets/js/8e784bf3.8cced6b2.js                     |  1 +
 assets/js/8e784bf3.e790b9c9.js                     |  1 -
 assets/js/9163.f28cf3e6.js                         |  1 +
 assets/js/91ce05ef.39543e2a.js                     |  1 +
 assets/js/91ce05ef.f6a571b7.js                     |  1 -
 assets/js/92b07c7e.2dfd79d2.js                     |  1 +
 assets/js/92b07c7e.4f2af9aa.js                     |  1 -
 assets/js/92dfebd0.2d7b06e7.js                     |  1 +
 assets/js/92dfebd0.9fd1609d.js                     |  1 -
 assets/js/93013804.0d34b6e4.js                     |  1 -
 assets/js/93013804.daaeb049.js                     |  1 +
 assets/js/935f2afb.271056d4.js                     |  1 +
 assets/js/935f2afb.d717f45f.js                     |  1 -
 assets/js/95244615.0600e50f.js                     |  1 -
 assets/js/95244615.1b282d9d.js                     |  1 +
 assets/js/95e0e949.554cae22.js                     |  1 +
 assets/js/95e0e949.aec2d47e.js                     |  1 -
 assets/js/96ff6680.893bc861.js                     |  1 +
 assets/js/96ff6680.9931e3e7.js                     |  1 -
 assets/js/98c69322.c1668b1b.js                     |  1 -
 assets/js/98c69322.f8e21e44.js                     |  1 +
 assets/js/9969a994.1758f44c.js                     |  1 -
 assets/js/9969a994.7e5253d6.js                     |  1 +
 assets/js/9c26c05d.20c285f6.js                     |  1 +
 assets/js/9c26c05d.53871cab.js                     |  1 -
 assets/js/9d971112.38f1704a.js                     |  1 +
 assets/js/9d971112.80ba3096.js                     |  1 -
 assets/js/9da58367.238ab2d3.js                     |  1 -
 assets/js/9da58367.664cb6b0.js                     |  1 +
 assets/js/9dc47d34.1b76f60c.js                     |  1 -
 assets/js/9dc47d34.731076eb.js                     |  1 +
 assets/js/a06dfdd3.70db923d.js                     |  1 +
 assets/js/a06dfdd3.c53203b3.js                     |  1 -
 assets/js/a138bbe3.b1a1087f.js                     |  1 -
 assets/js/a138bbe3.fe7b1554.js                     |  1 +
 assets/js/a4a2cefa.7694c1a4.js                     |  1 +
 assets/js/a4a2cefa.dfa1b85c.js                     |  1 -
 assets/js/a650e70d.9eab3b10.js                     |  1 +
 assets/js/a650e70d.d48760a3.js                     |  1 -
 assets/js/a6641250.19b9cf33.js                     |  1 +
 assets/js/a6641250.5c6f02f7.js                     |  1 -
 assets/js/a6aa9e1f.06032861.js                     |  1 -
 assets/js/a6aa9e1f.84caf643.js                     |  1 +
 assets/js/ab6cb272.040e9836.js                     |  1 -
 assets/js/ab6cb272.f47c8537.js                     |  1 +
 assets/js/ad461966.4267cf56.js                     |  1 -
 assets/js/ad461966.b2352052.js                     |  1 +
 assets/js/adbb350b.277d5b26.js                     |  1 +
 assets/js/adbb350b.c9f6bbf4.js                     |  1 -
 assets/js/af4112e0.227a96bb.js                     |  1 +
 assets/js/af4112e0.55110529.js                     |  1 -
 assets/js/b0e5e822.4c4d9727.js                     |  1 -
 assets/js/b0e5e822.7fa81691.js                     |  1 +
 assets/js/b28b7341.0bf72feb.js                     |  1 +
 assets/js/b28b7341.ad440845.js                     |  1 -
 assets/js/b2b675dd.4e1af5aa.js                     |  1 -
 assets/js/b2b675dd.56cfd134.js                     |  1 +
 assets/js/b3ea7b47.3db77782.js                     |  1 +
 assets/js/b3ea7b47.920ff128.js                     |  1 -
 assets/js/b3ea87e1.12f69f8b.js                     |  1 +
 assets/js/b3ea87e1.c4cd04d1.js                     |  1 -
 assets/js/b436937a.7e853ce8.js                     |  1 +
 assets/js/b436937a.95a41d13.js                     |  1 -
 assets/js/b4a67526.cbe07c3d.js                     |  1 -
 assets/js/b4a67526.d62f30b2.js                     |  1 +
 assets/js/b58143c5.4717cc56.js                     |  1 +
 assets/js/b58143c5.f6196ae1.js                     |  1 -
 assets/js/b5a39df0.87f08745.js                     |  1 -
 assets/js/b5a39df0.e143dffe.js                     |  1 +
 assets/js/bacea567.50f2be22.js                     |  1 -
 assets/js/bacea567.83d6cb04.js                     |  1 +
 assets/js/bd3a6b69.8a97b802.js                     |  1 -
 assets/js/bd3a6b69.b7596477.js                     |  1 +
 assets/js/bec177a9.518c129d.js                     |  1 -
 assets/js/bec177a9.cfe3a373.js                     |  1 +
 assets/js/c119cf3c.93a7687a.js                     |  1 +
 assets/js/c119cf3c.f5bec26c.js                     |  1 -
 assets/js/c2f0cd73.0fd4db12.js                     |  1 +
 assets/js/c2f0cd73.db74991d.js                     |  1 -
 assets/js/c44a0953.08ca2806.js                     |  1 -
 assets/js/c44a0953.c5a02a84.js                     |  1 +
 assets/js/c4f5d8e4.b8ea99a1.js                     |  1 -
 assets/js/c4f5d8e4.bd5ea330.js                     |  1 +
 assets/js/c5594f1a.324c2c2d.js                     |  1 +
 assets/js/c5594f1a.b0dcf837.js                     |  1 -
 assets/js/c6a4007d.1979b1cc.js                     |  1 -
 assets/js/c6a4007d.6ba5d3a2.js                     |  1 +
 assets/js/c888429e.95c6e915.js                     |  1 -
 assets/js/c888429e.e39b1ace.js                     |  1 +
 assets/js/c9f6a9fb.b9181f74.js                     |  1 +
 assets/js/c9f6a9fb.eb77776d.js                     |  1 -
 assets/js/ca5ff64e.467f2d7a.js                     |  1 +
 assets/js/ca5ff64e.f2cf6e8a.js                     |  1 -
 assets/js/ccc49370.3aa4f16c.js                     |  1 +
 assets/js/ccc49370.abb0447c.js                     |  1 -
 assets/js/cf167ebd.06667f3a.js                     |  1 +
 assets/js/cf167ebd.d3a0fd48.js                     |  1 -
 assets/js/cf554819.951d2cbd.js                     |  1 +
 assets/js/cf554819.e5228e79.js                     |  1 -
 assets/js/d0f73e13.12145532.js                     |  1 +
 assets/js/d0f73e13.da45fea6.js                     |  1 -
 assets/js/d18db9b0.57c3dc75.js                     |  1 -
 assets/js/d18db9b0.ffc7527b.js                     |  1 +
 assets/js/d2247e49.b0d604a6.js                     |  1 -
 assets/js/d2247e49.e05ceca6.js                     |  1 +
 assets/js/d25ed933.1403aadd.js                     |  1 +
 assets/js/d25ed933.77008734.js                     |  1 -
 assets/js/d3321028.1c64b781.js                     |  1 -
 assets/js/d3321028.8548eb3d.js                     |  1 +
 assets/js/d3e633ff.818f794a.js                     |  1 -
 assets/js/d3e633ff.f81b413b.js                     |  1 +
 assets/js/d4de91ec.716c2062.js                     |  1 -
 assets/js/d4de91ec.ef332b85.js                     |  1 +
 assets/js/d73fca9b.2f477cb6.js                     |  1 +
 assets/js/d73fca9b.6c49c622.js                     |  1 -
 assets/js/d9418bf0.adcc4b7d.js                     |  1 -
 assets/js/d9418bf0.b68c64dd.js                     |  1 +
 assets/js/da9aeeeb.056f5df4.js                     |  1 +
 assets/js/da9aeeeb.d1d003c7.js                     |  1 -
 assets/js/dcb3fc1e.0fc675dc.js                     |  1 +
 assets/js/dcb3fc1e.f0b80faf.js                     |  1 -
 assets/js/dd639a99.07a99646.js                     |  1 -
 assets/js/dd639a99.94ca31c0.js                     |  1 +
 assets/js/e02da2c5.081e8184.js                     |  1 +
 assets/js/e02da2c5.3872722c.js                     |  1 -
 assets/js/e1a3b18d.91652dcc.js                     |  1 -
 assets/js/e1a3b18d.f61b4211.js                     |  1 +
 assets/js/e278666a.8d5549f8.js                     |  1 -
 assets/js/e278666a.c3374894.js                     |  1 +
 assets/js/e3d364e1.3af322dd.js                     |  1 +
 assets/js/e3d364e1.e73825b9.js                     |  1 -
 assets/js/e451ae2c.08ccb9d7.js                     |  1 +
 assets/js/e451ae2c.a04bc61c.js                     |  1 -
 assets/js/e461335b.06b4c2c5.js                     |  1 -
 assets/js/e461335b.e13340b5.js                     |  1 +
 assets/js/e5ad0cc6.4d433c7b.js                     |  1 -
 assets/js/e5ad0cc6.eb786536.js                     |  1 +
 assets/js/e60dd3b0.4544b712.js                     |  1 +
 assets/js/e60dd3b0.7e55d226.js                     |  1 -
 assets/js/e6331947.90cab919.js                     |  2 +
 assets/js/e6331947.90cab919.js.LICENSE.txt         |  1 +
 assets/js/e75fbec5.03dfa561.js                     |  1 +
 assets/js/e75fbec5.fdcbfe13.js                     |  1 -
 assets/js/e7ebab94.45249921.js                     |  1 +
 assets/js/e7ebab94.ecae67f7.js                     |  1 -
 assets/js/ec546d2e.27c63a15.js                     |  1 -
 assets/js/ec546d2e.a72f8a97.js                     |  1 +
 assets/js/ed20433f.55cb902d.js                     |  1 -
 assets/js/ed20433f.8f13a1a9.js                     |  1 +
 assets/js/ef63a76e.6f5b7b0b.js                     |  1 +
 assets/js/ef63a76e.8961b158.js                     |  1 -
 assets/js/f1d91454.1d870b93.js                     |  1 -
 assets/js/f1d91454.7fe11ef9.js                     |  1 +
 assets/js/f202f54b.147e6732.js                     |  1 -
 assets/js/f202f54b.9b30867a.js                     |  1 +
 assets/js/f243156b.1481c128.js                     |  1 -
 assets/js/f243156b.7b8e9e61.js                     |  1 +
 assets/js/f45d06d8.1c72ef29.js                     |  1 +
 assets/js/f45d06d8.392b8c69.js                     |  1 -
 assets/js/f4620fb6.dae92d21.js                     |  1 -
 assets/js/f4620fb6.e3dcba34.js                     |  1 +
 assets/js/f6cd6006.39fb4ab6.js                     |  1 +
 assets/js/f6cd6006.df19eafd.js                     |  1 -
 assets/js/f7488fe8.0bab9cf0.js                     |  1 -
 assets/js/f7488fe8.9f173681.js                     |  1 +
 assets/js/f7b3f6db.0afacce7.js                     |  1 +
 assets/js/f7b3f6db.b630e133.js                     |  1 -
 assets/js/f8217c69.8c15dfef.js                     |  1 +
 assets/js/f8217c69.ff154d03.js                     |  1 -
 assets/js/fa919c95.9940e680.js                     |  1 +
 assets/js/fa919c95.adb23c3a.js                     |  1 -
 assets/js/fd72aa65.3d67f7e3.js                     |  1 -
 assets/js/fd72aa65.f429c64a.js                     |  1 +
 assets/js/ff8d1795.6b1ff326.js                     |  1 -
 assets/js/ff8d1795.abd59e60.js                     |  1 +
 assets/js/main.690fe4bb.js                         |  2 -
 assets/js/main.690fe4bb.js.LICENSE.txt             | 44 -----------------
 assets/js/main.b9a04668.js                         |  2 +
 assets/js/main.b9a04668.js.LICENSE.txt             | 44 +++++++++++++++++
 assets/js/runtime~main.9e570764.js                 |  1 +
 assets/js/runtime~main.c0371017.js                 |  1 -
 assets/js/styles.915eeed2.js                       |  1 -
 blog/2020/08/22/new-website/index.html             | 30 ++++--------
 .../index.html                                     | 32 ++++---------
 .../index.html                                     | 30 ++++--------
 .../21/run-ingress-apisix-on-amazon-eks/index.html | 30 ++++--------
 .../index.html                                     | 30 ++++--------
 .../index.html                                     | 32 ++++---------
 .../index.html                                     | 30 ++++--------
 .../index.html                                     | 30 ++++--------
 blog/index.html                                    | 46 ++++--------------
 docs/apisix/FAQ/index.html                         | 42 ++++++----------
 docs/apisix/IGNORE_DOC/index.html                  | 30 ++++--------
 docs/apisix/admin-api/index.html                   | 44 ++++++-----------
 docs/apisix/architecture-design/apisix/index.html  | 34 ++++---------
 .../apisix/architecture-design/consumer/index.html | 34 ++++---------
 .../architecture-design/debug-mode/index.html      | 34 ++++---------
 .../architecture-design/global-rule/index.html     | 32 ++++---------
 .../architecture-design/plugin-config/index.html   | 34 ++++---------
 docs/apisix/architecture-design/plugin/index.html  | 30 ++++--------
 docs/apisix/architecture-design/route/index.html   | 32 ++++---------
 docs/apisix/architecture-design/router/index.html  | 30 ++++--------
 docs/apisix/architecture-design/script/index.html  | 30 ++++--------
 docs/apisix/architecture-design/service/index.html | 32 ++++---------
 .../apisix/architecture-design/upstream/index.html | 30 ++++--------
 docs/apisix/aws/index.html                         | 36 +++++---------
 docs/apisix/batch-processor/index.html             | 34 ++++---------
 docs/apisix/benchmark/index.html                   | 34 ++++---------
 docs/apisix/control-api/index.html                 | 38 +++++----------
 .../customize-nginx-configuration/index.html       | 32 ++++---------
 docs/apisix/debug-function/index.html              | 32 ++++---------
 docs/apisix/discovery/consul_kv/index.html         | 34 ++++---------
 docs/apisix/discovery/dns/index.html               | 38 +++++----------
 docs/apisix/discovery/eureka/index.html            | 32 ++++---------
 docs/apisix/discovery/index.html                   | 36 +++++---------
 docs/apisix/discovery/nacos/index.html             | 30 ++++--------
 .../index.html                                     | 48 +++++++------------
 docs/apisix/getting-started/index.html             | 32 ++++---------
 docs/apisix/grpc-proxy/index.html                  | 32 ++++---------
 docs/apisix/health-check/index.html                | 34 ++++---------
 docs/apisix/how-to-build/index.html                | 36 +++++---------
 docs/apisix/https/index.html                       | 38 +++++----------
 docs/apisix/install-dependencies/index.html        | 40 +++++-----------
 docs/apisix/mtls/index.html                        | 32 ++++---------
 docs/apisix/plugin-develop/index.html              | 54 ++++++++-------------
 docs/apisix/plugin-interceptors/index.html         | 34 ++++---------
 docs/apisix/plugins/api-breaker/index.html         | 32 ++++---------
 docs/apisix/plugins/authz-keycloak/index.html      | 38 +++++----------
 docs/apisix/plugins/basic-auth/index.html          | 32 ++++---------
 docs/apisix/plugins/batch-requests/index.html      | 32 ++++---------
 .../apisix/plugins/consumer-restriction/index.html | 36 +++++---------
 docs/apisix/plugins/cors/index.html                | 32 ++++---------
 docs/apisix/plugins/dubbo-proxy/index.html         | 36 +++++---------
 docs/apisix/plugins/echo/index.html                | 32 ++++---------
 docs/apisix/plugins/error-log-logger/index.html    | 32 ++++---------
 docs/apisix/plugins/fault-injection/index.html     | 56 ++++++++--------------
 docs/apisix/plugins/grpc-transcode/index.html      | 34 ++++---------
 docs/apisix/plugins/hmac-auth/index.html           | 44 ++++++-----------
 docs/apisix/plugins/http-logger/index.html         | 32 ++++---------
 docs/apisix/plugins/index.html                     | 32 ++++---------
 docs/apisix/plugins/ip-restriction/index.html      | 36 +++++---------
 docs/apisix/plugins/jwt-auth/index.html            | 44 ++++++-----------
 docs/apisix/plugins/kafka-logger/index.html        | 36 +++++---------
 docs/apisix/plugins/key-auth/index.html            | 34 ++++---------
 docs/apisix/plugins/limit-conn/index.html          | 34 ++++---------
 docs/apisix/plugins/limit-count/index.html         | 36 +++++---------
 docs/apisix/plugins/limit-req/index.html           | 34 ++++---------
 docs/apisix/plugins/log-rotate/index.html          | 36 +++++---------
 docs/apisix/plugins/mqtt-proxy/index.html          | 32 ++++---------
 docs/apisix/plugins/node-status/index.html         | 38 +++++----------
 docs/apisix/plugins/openid-connect/index.html      | 36 +++++---------
 docs/apisix/plugins/prometheus/index.html          | 40 +++++-----------
 docs/apisix/plugins/proxy-cache/index.html         | 40 +++++-----------
 docs/apisix/plugins/proxy-mirror/index.html        | 32 ++++---------
 docs/apisix/plugins/proxy-rewrite/index.html       | 32 ++++---------
 docs/apisix/plugins/redirect/index.html            | 34 ++++---------
 docs/apisix/plugins/referer-restriction/index.html | 34 ++++---------
 docs/apisix/plugins/request-id/index.html          | 34 ++++---------
 docs/apisix/plugins/request-validation/index.html  | 34 ++++---------
 docs/apisix/plugins/response-rewrite/index.html    | 32 ++++---------
 docs/apisix/plugins/server-info/index.html         | 30 ++++--------
 docs/apisix/plugins/serverless/index.html          | 32 ++++---------
 docs/apisix/plugins/skywalking/index.html          | 42 ++++++----------
 docs/apisix/plugins/sls-logger/index.html          | 36 +++++---------
 docs/apisix/plugins/syslog/index.html              | 32 ++++---------
 docs/apisix/plugins/tcp-logger/index.html          | 34 ++++---------
 docs/apisix/plugins/traffic-split/index.html       | 52 ++++++++------------
 docs/apisix/plugins/udp-logger/index.html          | 34 ++++---------
 docs/apisix/plugins/uri-blocker/index.html         | 32 ++++---------
 docs/apisix/plugins/wolf-rbac/index.html           | 50 +++++++------------
 docs/apisix/plugins/zipkin/index.html              | 34 ++++---------
 docs/apisix/profile/index.html                     | 32 ++++---------
 docs/apisix/router-radixtree/index.html            | 38 +++++----------
 docs/apisix/stand-alone/index.html                 | 32 ++++---------
 docs/apisix/stream-proxy/index.html                | 32 ++++---------
 docs/dashboard/FAQ/index.html                      | 32 ++++---------
 docs/dashboard/I18N_USER_GUIDE/index.html          | 30 ++++--------
 docs/dashboard/IGNORE_DOC/index.html               | 30 ++++--------
 .../dashboard/IMPORT_OPENAPI_USER_GUIDE/index.html | 32 ++++---------
 docs/dashboard/USER_GUIDE/index.html               | 30 ++++--------
 docs/dashboard/api/api/index.html                  | 30 ++++--------
 docs/dashboard/back-end-tests/index.html           | 38 +++++----------
 docs/dashboard/deploy-with-docker/index.html       | 32 ++++---------
 docs/dashboard/deploy-with-rpm/index.html          | 30 ++++--------
 docs/dashboard/deploy/index.html                   | 34 ++++---------
 docs/dashboard/develop/index.html                  | 32 ++++---------
 docs/dashboard/front-end-e2e/index.html            | 30 ++++--------
 docs/docker/IGNORE_DOC/index.html                  | 30 ++++--------
 docs/docker/build/index.html                       | 32 ++++---------
 docs/docker/example/index.html                     | 36 +++++---------
 docs/docker/manual/index.html                      | 30 ++++--------
 docs/general/2fa/index.html                        | 30 ++++--------
 docs/general/committer-guide/index.html            | 30 ++++--------
 docs/general/contributor-guide/index.html          | 30 ++++--------
 .../general/integrate-with-project-docs/index.html | 30 ++++--------
 docs/general/release-guide/index.html              | 44 ++++++-----------
 docs/general/security/index.html                   | 30 ++++--------
 docs/general/subscribe-guide/index.html            | 30 ++++--------
 docs/helm-chart/IGNORE_DOC/index.html              | 30 ++++--------
 docs/helm-chart/apisix-dashboard/index.html        | 30 ++++--------
 .../apisix-ingress-controller/index.html           | 30 ++++--------
 docs/helm-chart/apisix/index.html                  | 30 ++++--------
 docs/index.html                                    | 26 ++++------
 docs/ingress-controller/FAQ/index.html             | 30 ++++--------
 docs/ingress-controller/IGNORE_DOC/index.html      | 30 ++++--------
 .../concepts/apisix_route/index.html               | 44 ++++++-----------
 .../concepts/apisix_tls/index.html                 | 34 ++++---------
 .../concepts/apisix_upstream/index.html            | 42 ++++++----------
 docs/ingress-controller/contribute/index.html      | 32 ++++---------
 docs/ingress-controller/deployments/ack/index.html | 30 ++++--------
 docs/ingress-controller/deployments/aws/index.html | 30 ++++--------
 .../deployments/azure/index.html                   | 30 ++++--------
 docs/ingress-controller/deployments/gke/index.html | 30 ++++--------
 .../deployments/k3s-rke/index.html                 | 34 ++++---------
 .../deployments/kubesphere/index.html              | 32 ++++---------
 .../deployments/minikube/index.html                | 30 ++++--------
 docs/ingress-controller/deployments/tke/index.html | 30 ++++--------
 docs/ingress-controller/design/index.html          | 30 ++++--------
 docs/ingress-controller/development/index.html     | 30 ++++--------
 docs/ingress-controller/getting-started/index.html | 32 ++++---------
 docs/ingress-controller/practices/index/index.html | 30 ++++--------
 .../index.html                                     | 32 ++++---------
 .../practices/proxy-the-httpbin-service/index.html | 32 ++++---------
 .../references/apisix_route_v1/index.html          | 30 ++++--------
 .../references/apisix_route_v2alpha1/index.html    | 30 ++++--------
 .../references/apisix_tls/index.html               | 30 ++++--------
 .../references/apisix_upstream/index.html          | 30 ++++--------
 downloads/ProjectCard/index.html                   | 20 +++-----
 downloads/index.html                               | 32 ++++---------
 .../index.html                                     | 30 ++++--------
 .../index.html                                     | 30 ++++--------
 .../02/09/release-apache-apisix-2.3/index.html     | 30 ++++--------
 .../index.html                                     | 30 ++++--------
 .../release-apache-apisix-dashboard-2.4/index.html | 30 ++++--------
 .../03/05/release-apache-apisix-2.4/index.html     | 30 ++++--------
 .../index.html                                     | 30 ++++--------
 .../04/05/release-apache-apisix-2.5/index.html     | 30 ++++--------
 .../index.html                                     | 30 ++++--------
 .../release-apache-apisix-dashboard-2.6/index.html | 30 ++++--------
 events/index.html                                  | 50 ++++---------------
 help/index.html                                    | 26 ++++------
 index.html                                         | 26 ++++------
 opensearch.xml                                     |  2 +-
 search/index.html                                  | 24 ++++------
 sitemap.xml                                        |  2 +-
 team/index.html                                    | 26 ++++------
 zh/404.html                                        | 18 ++++---
 zh/assets/css/styles.8cebb52d.css                  |  1 -
 zh/assets/css/styles.aef3a109.css                  | 25 ++++++++++
 zh/assets/js/034277d8.21b5906e.js                  |  1 +
 zh/assets/js/034277d8.4ab2c23e.js                  |  1 -
 zh/assets/js/037099b5.b88d7c2c.js                  |  1 +
 zh/assets/js/037099b5.d691d5ec.js                  |  1 -
 zh/assets/js/03de1839.0955e1ab.js                  |  1 -
 zh/assets/js/03de1839.4373a3ab.js                  |  1 +
 zh/assets/js/04e190df.d3c0709c.js                  |  1 -
 zh/assets/js/04e190df.e2567d00.js                  |  1 +
 zh/assets/js/06c82324.008eb12c.js                  |  1 +
 zh/assets/js/06c82324.46c48709.js                  |  1 -
 zh/assets/js/0b43ab26.d799dbe6.js                  |  1 +
 zh/assets/js/0b43ab26.e777a87d.js                  |  1 -
 zh/assets/js/0b8428f5.1aa227f9.js                  |  1 +
 zh/assets/js/0b8428f5.f6988bd1.js                  |  1 -
 zh/assets/js/0e9e839b.4a5ba5f3.js                  |  1 -
 zh/assets/js/0e9e839b.974ad354.js                  |  1 +
 zh/assets/js/1.8ab37bf2.js                         |  1 -
 zh/assets/js/12e5767f.7440d271.js                  |  1 -
 zh/assets/js/12e5767f.d8384f3e.js                  |  1 +
 zh/assets/js/15a0356b.4a946481.js                  |  1 +
 zh/assets/js/15a0356b.fde7ae96.js                  |  1 -
 zh/assets/js/1617d371.b43dd3e9.js                  |  1 +
 zh/assets/js/1617d371.c486a559.js                  |  1 -
 zh/assets/js/163910ed.0a9204d1.js                  |  1 +
 zh/assets/js/163910ed.9871618d.js                  |  1 -
 zh/assets/js/17896441.4b399950.js                  |  1 +
 zh/assets/js/17896441.979710d4.js                  |  1 -
 zh/assets/js/17dc512b.38727692.js                  |  1 +
 zh/assets/js/17dc512b.a70a3fda.js                  |  1 -
 zh/assets/js/198.732ee0fc.js                       |  2 -
 zh/assets/js/198.732ee0fc.js.LICENSE.txt           |  1 -
 zh/assets/js/199.032a25d0.js                       |  1 -
 zh/assets/js/19945770.3b01635e.js                  |  1 -
 zh/assets/js/19945770.76981128.js                  |  1 +
 zh/assets/js/1b9ff391.2d9c17aa.js                  |  1 -
 zh/assets/js/1b9ff391.a7295d26.js                  |  1 +
 zh/assets/js/1be5d2e8.50888cd9.js                  |  1 +
 zh/assets/js/1be5d2e8.62e244c3.js                  |  1 -
 zh/assets/js/1be78505.d3cd3e07.js                  |  1 +
 zh/assets/js/1be78505.d8a2339c.js                  |  1 -
 zh/assets/js/1c89ab3b.1221bf10.js                  |  1 +
 zh/assets/js/1c89ab3b.bb4dac96.js                  |  1 -
 zh/assets/js/1fb167aa.85cf6e91.js                  |  1 -
 zh/assets/js/1fb167aa.a09f78bf.js                  |  1 +
 zh/assets/js/2.f6d304f2.js                         |  2 -
 zh/assets/js/2.f6d304f2.js.LICENSE.txt             |  5 --
 zh/assets/js/200.39dd084b.js                       |  1 -
 zh/assets/js/201.69eef08d.js                       |  1 -
 zh/assets/js/202.351a4f3f.js                       |  1 -
 zh/assets/js/203.cc7dd385.js                       |  1 -
 zh/assets/js/210.29d77d85.js                       |  1 +
 zh/assets/js/23d9fbcb.60015b30.js                  |  1 +
 zh/assets/js/23d9fbcb.ed98045c.js                  |  1 -
 zh/assets/js/2503b74e.78b3f5dd.js                  |  1 -
 zh/assets/js/2503b74e.8954ea2b.js                  |  1 +
 zh/assets/js/25b7c3f2.3be4f1a5.js                  |  1 +
 zh/assets/js/25b7c3f2.49e74cd5.js                  |  1 -
 zh/assets/js/264a218f.456af4cd.js                  |  1 +
 zh/assets/js/264a218f.b436f7e6.js                  |  1 -
 zh/assets/js/27858f29.11b52246.js                  |  1 +
 zh/assets/js/27858f29.8854e36b.js                  |  1 -
 zh/assets/js/27c14716.6d1f867b.js                  |  1 -
 zh/assets/js/27c14716.dec94cd7.js                  |  1 +
 zh/assets/js/2ceea113.c35d2762.js                  |  1 +
 zh/assets/js/2ceea113.c68f30e1.js                  |  1 -
 zh/assets/js/2d8fe9ee.90000698.js                  |  1 -
 zh/assets/js/2d8fe9ee.c7eda6b1.js                  |  1 +
 zh/assets/js/2eb8f890.8782e6c1.js                  |  1 -
 zh/assets/js/2eb8f890.e003ca9a.js                  |  1 +
 zh/assets/js/2f1ee7b9.75216baf.js                  |  1 -
 zh/assets/js/2f1ee7b9.7cb738de.js                  |  1 +
 zh/assets/js/3.0e53f923.js                         |  1 -
 zh/assets/js/30c882a5.0f402b68.js                  |  1 +
 zh/assets/js/30c882a5.8d56719d.js                  |  1 -
 zh/assets/js/30dc1fa0.74e575cf.js                  |  1 -
 zh/assets/js/30dc1fa0.b3342e83.js                  |  1 +
 zh/assets/js/320d67fa.4dbf008c.js                  |  1 +
 zh/assets/js/320d67fa.8cdb915b.js                  |  1 -
 zh/assets/js/3316b9c0.2269f6f0.js                  |  1 -
 zh/assets/js/3316b9c0.4c135ffd.js                  |  1 +
 zh/assets/js/3393d167.a15a2040.js                  |  1 +
 zh/assets/js/3393d167.fc8084fa.js                  |  1 -
 zh/assets/js/342a6d70.07007561.js                  |  1 -
 zh/assets/js/342a6d70.cc57227b.js                  |  1 +
 zh/assets/js/358566b4.43bdcd47.js                  |  1 +
 zh/assets/js/358566b4.6075c1c4.js                  |  1 -
 zh/assets/js/35b25cb8.4218aff3.js                  |  1 -
 zh/assets/js/35b25cb8.59f10b85.js                  |  1 +
 zh/assets/js/3763.744c9569.js                      |  1 +
 zh/assets/js/37e3b3ea.34baf3e1.js                  |  1 -
 zh/assets/js/37e3b3ea.620fb7ab.js                  |  1 +
 zh/assets/js/3a16219a.55f28721.js                  |  1 -
 zh/assets/js/3a16219a.d48009d6.js                  |  1 +
 zh/assets/js/3a332aed.0f149747.js                  |  1 -
 zh/assets/js/3a332aed.4ab78b74.js                  |  1 +
 zh/assets/js/3a565ccf.388fa90c.js                  |  1 -
 zh/assets/js/3a565ccf.f8d9fb14.js                  |  1 +
 zh/assets/js/3c3e0368.2c817540.js                  |  1 +
 zh/assets/js/3c3e0368.c98ccfdb.js                  |  1 -
 zh/assets/js/3dc9f306.30deea06.js                  |  1 +
 zh/assets/js/3dc9f306.770c41e3.js                  |  1 -
 zh/assets/js/3f141e52.571f68ea.js                  |  1 +
 zh/assets/js/3f141e52.78b2af42.js                  |  1 -
 zh/assets/js/3f7f6f74.04e72829.js                  |  1 +
 zh/assets/js/3f7f6f74.add598e8.js                  |  1 -
 zh/assets/js/4.bde55da2.js                         |  1 -
 zh/assets/js/40fb2fae.1eaed101.js                  |  1 -
 zh/assets/js/40fb2fae.fe875dbc.js                  |  1 +
 zh/assets/js/41b4926b.519f7108.js                  |  1 +
 zh/assets/js/41b4926b.b255a365.js                  |  1 -
 zh/assets/js/41be8d1f.2fd4e3d5.js                  |  1 +
 zh/assets/js/41be8d1f.474f7874.js                  |  1 -
 zh/assets/js/433f16f3.72a77da8.js                  |  1 -
 zh/assets/js/433f16f3.9679d40e.js                  |  1 +
 zh/assets/js/43aea6af.47f7ae4c.js                  |  1 +
 zh/assets/js/43aea6af.e882b487.js                  |  1 -
 zh/assets/js/458cdf70.93436e0e.js                  |  1 -
 zh/assets/js/458cdf70.feae1997.js                  |  1 +
 zh/assets/js/4608.38cf846f.js                      |  1 +
 zh/assets/js/47e0bf55.0d8de7d5.js                  |  1 +
 zh/assets/js/47e0bf55.22de6d74.js                  |  1 -
 zh/assets/js/47f8a22a.ef9da314.js                  |  1 -
 zh/assets/js/47f8a22a.f728e89d.js                  |  1 +
 zh/assets/js/4ae58179.89192190.js                  |  1 +
 zh/assets/js/4ae58179.ba836386.js                  |  1 -
 zh/assets/js/4b0b9689.2928d529.js                  |  1 +
 zh/assets/js/4b0b9689.c5e9183a.js                  |  1 -
 zh/assets/js/4b3176f7.233600a9.js                  |  1 +
 zh/assets/js/4b3176f7.56d1a192.js                  |  1 -
 zh/assets/js/4e55a385.a6ff4e3e.js                  |  1 +
 zh/assets/js/4e55a385.b74b361f.js                  |  1 -
 zh/assets/js/4eed9ed2.5c57ac7c.js                  |  1 +
 zh/assets/js/4eed9ed2.a10c50c5.js                  |  1 -
 zh/assets/js/4f34f66f.7cfff1f6.js                  |  1 +
 zh/assets/js/4f34f66f.9047dbf5.js                  |  1 -
 zh/assets/js/50facf8e.358847e7.js                  |  1 -
 zh/assets/js/50facf8e.8288b1db.js                  |  1 +
 zh/assets/js/514de2af.e112992e.js                  |  1 +
 zh/assets/js/514de2af.fbac6262.js                  |  1 -
 zh/assets/js/5256.9d9df735.js                      |  1 +
 zh/assets/js/5426aede.62bf4c5f.js                  |  1 -
 zh/assets/js/5426aede.7acc26d6.js                  |  1 +
 zh/assets/js/5486.d7f23542.js                      |  2 +
 zh/assets/js/5486.d7f23542.js.LICENSE.txt          | 14 ++++++
 zh/assets/js/562da56c.26f0047d.js                  |  1 -
 zh/assets/js/562da56c.3c75eaa6.js                  |  1 +
 zh/assets/js/5880833a.775dcefa.js                  |  1 +
 zh/assets/js/5880833a.b6443dfc.js                  |  1 -
 zh/assets/js/588365fb.8f96ebaf.js                  |  1 +
 zh/assets/js/588365fb.d36d93b3.js                  |  1 -
 zh/assets/js/5888.4197bf83.js                      |  1 +
 zh/assets/js/5aca9bfb.20b7ebb9.js                  |  1 -
 zh/assets/js/5aca9bfb.32977c57.js                  |  1 +
 zh/assets/js/5b5df5a4.7b76b672.js                  |  1 -
 zh/assets/js/5b5df5a4.8c2cfd56.js                  |  1 +
 zh/assets/js/5bb67ffc.b2698f1e.js                  |  1 -
 zh/assets/js/5bb67ffc.f695d5a2.js                  |  1 +
 zh/assets/js/5bf823ed.eef90889.js                  |  1 +
 zh/assets/js/5bf823ed.ff878394.js                  |  1 -
 zh/assets/js/5e34b5b2.8b800c6b.js                  |  1 +
 zh/assets/js/5e34b5b2.8dfa3de4.js                  |  1 -
 zh/assets/js/601c6eaa.a2f662d8.js                  |  1 -
 zh/assets/js/601c6eaa.a32b98b3.js                  |  1 +
 zh/assets/js/64288df6.3876314e.js                  |  1 +
 zh/assets/js/64288df6.dd62e9e0.js                  |  1 -
 zh/assets/js/66fbb9c2.1615df78.js                  |  1 -
 zh/assets/js/66fbb9c2.370a7515.js                  |  1 +
 zh/assets/js/679cfa79.4c6618b8.js                  |  1 +
 zh/assets/js/679cfa79.6fb8a84e.js                  |  1 -
 zh/assets/js/6808c117.a397a1e3.js                  |  1 +
 zh/assets/js/6808c117.e9174222.js                  |  1 -
 zh/assets/js/690ea98f.7bc66508.js                  |  1 +
 zh/assets/js/690ea98f.fab49f4d.js                  |  1 -
 zh/assets/js/6945.5275d096.js                      |  1 +
 zh/assets/js/6967878f.dc932d3b.js                  |  1 +
 zh/assets/js/6967878f.fcba0591.js                  |  1 -
 zh/assets/js/6a0e174f.6d4ae2d4.js                  |  1 +
 zh/assets/js/6a0e174f.73b14d30.js                  |  1 -
 zh/assets/js/6f365930.79fa6e7d.js                  |  1 +
 zh/assets/js/6f365930.9901cafa.js                  |  1 -
 zh/assets/js/6f8b8f6f.11e4f8a2.js                  |  1 +
 zh/assets/js/6f8b8f6f.d7dfbfdb.js                  |  1 -
 zh/assets/js/701a45ac.5036699b.js                  |  1 -
 zh/assets/js/701a45ac.a15136f1.js                  |  1 +
 zh/assets/js/71950930.06bca264.js                  |  1 -
 zh/assets/js/71950930.3d474be3.js                  |  1 +
 zh/assets/js/72aa3c55.a499c623.js                  |  1 +
 zh/assets/js/72aa3c55.eb4857ef.js                  |  1 -
 zh/assets/js/72cd189b.168e5540.js                  |  1 -
 zh/assets/js/72cd189b.68e94a8d.js                  |  1 +
 zh/assets/js/72ff46d3.3de7afb2.js                  |  1 +
 zh/assets/js/72ff46d3.3f2b6468.js                  |  1 -
 zh/assets/js/74848684.b93821b4.js                  |  1 -
 zh/assets/js/74848684.f538018f.js                  |  1 +
 zh/assets/js/749ed826.57efe14a.js                  |  1 -
 zh/assets/js/749ed826.ab6c7226.js                  |  1 +
 zh/assets/js/755c8723.3bf0bebe.js                  |  1 -
 zh/assets/js/755c8723.850b8de6.js                  |  1 +
 zh/assets/js/769df5e0.ca306a8d.js                  |  1 -
 zh/assets/js/769df5e0.d249e973.js                  |  1 +
 zh/assets/js/76e7d0f9.2f7f528c.js                  |  1 -
 zh/assets/js/76e7d0f9.affd56c4.js                  |  1 +
 zh/assets/js/7af3052c.49e49451.js                  |  1 -
 zh/assets/js/7af3052c.8797280f.js                  |  1 +
 zh/assets/js/7e37206e.7ed96dbe.js                  |  1 +
 zh/assets/js/7e37206e.d92468f9.js                  |  1 -
 zh/assets/js/7e8e17a7.0c5f637b.js                  |  1 +
 zh/assets/js/7e8e17a7.4dfbf16c.js                  |  1 -
 zh/assets/js/7ecc8185.3f72d7eb.js                  |  1 -
 zh/assets/js/7ecc8185.9bdf619a.js                  |  1 +
 zh/assets/js/81f18807.98f355c3.js                  |  1 -
 zh/assets/js/81f18807.c98c1fc8.js                  |  1 +
 zh/assets/js/83cf9161.fa4aae50.js                  |  1 +
 zh/assets/js/83cf9161.ff301cce.js                  |  1 -
 zh/assets/js/84d2a1f2.8d9aa6c7.js                  |  1 -
 zh/assets/js/84d2a1f2.95db713c.js                  |  1 +
 zh/assets/js/859cc09f.2fecc728.js                  |  1 -
 zh/assets/js/859cc09f.ad0b659b.js                  |  1 +
 zh/assets/js/86151fad.8ef372bb.js                  |  1 -
 zh/assets/js/86151fad.d435d267.js                  |  1 +
 zh/assets/js/89015cf6.6ca142b2.js                  |  1 +
 zh/assets/js/89015cf6.707ddc63.js                  |  1 -
 zh/assets/js/8cc2e0eb.e8278aa0.js                  |  1 +
 zh/assets/js/8cc2e0eb.f1d3b64b.js                  |  1 -
 zh/assets/js/8cf41c7e.62d0c07a.js                  |  1 -
 zh/assets/js/8cf41c7e.63516b23.js                  |  1 +
 zh/assets/js/8e27d69a.752302ab.js                  |  1 -
 zh/assets/js/8e27d69a.a6a23537.js                  |  1 +
 zh/assets/js/8e784bf3.5b24bd09.js                  |  1 -
 zh/assets/js/8e784bf3.5c7de924.js                  |  1 +
 zh/assets/js/9163.f28cf3e6.js                      |  1 +
 zh/assets/js/92dfebd0.47336f86.js                  |  1 -
 zh/assets/js/92dfebd0.c3f637ab.js                  |  1 +
 zh/assets/js/93013804.9c28b65c.js                  |  1 -
 zh/assets/js/93013804.f7dd8e50.js                  |  1 +
 zh/assets/js/935f2afb.2d704162.js                  |  1 +
 zh/assets/js/935f2afb.ac3bd5a4.js                  |  1 -
 zh/assets/js/95244615.29c112b7.js                  |  1 -
 zh/assets/js/95244615.c47be36c.js                  |  1 +
 zh/assets/js/95e0e949.c0989ef7.js                  |  1 +
 zh/assets/js/95e0e949.fd5d4bc4.js                  |  1 -
 zh/assets/js/96ff6680.9b2c1696.js                  |  1 -
 zh/assets/js/96ff6680.9f3a0139.js                  |  1 +
 zh/assets/js/98c69322.3ca757b2.js                  |  1 -
 zh/assets/js/98c69322.f8e21e44.js                  |  1 +
 zh/assets/js/9969a994.62b0b316.js                  |  1 +
 zh/assets/js/9969a994.7afad919.js                  |  1 -
 zh/assets/js/9c26c05d.3201e492.js                  |  1 +
 zh/assets/js/9c26c05d.4dcf71fe.js                  |  1 -
 zh/assets/js/9cab144f.c2288031.js                  |  1 +
 zh/assets/js/9cab144f.d59290d3.js                  |  1 -
 zh/assets/js/9d3eab9b.cc9e5512.js                  |  1 +
 zh/assets/js/9d3eab9b.d5a7fce3.js                  |  1 -
 zh/assets/js/9d971112.7b82fcba.js                  |  1 +
 zh/assets/js/9d971112.bc08ac05.js                  |  1 -
 zh/assets/js/9da58367.b326e697.js                  |  1 +
 zh/assets/js/9da58367.c7c248e7.js                  |  1 -
 zh/assets/js/9dc47d34.102803f9.js                  |  1 -
 zh/assets/js/9dc47d34.9539cf46.js                  |  1 +
 zh/assets/js/9e25fdd8.491086ea.js                  |  1 -
 zh/assets/js/9e25fdd8.64c619a4.js                  |  1 +
 zh/assets/js/a06dfdd3.5c0e5817.js                  |  1 +
 zh/assets/js/a06dfdd3.8d15f349.js                  |  1 -
 zh/assets/js/a29d4bbf.4e64e27d.js                  |  1 -
 zh/assets/js/a29d4bbf.dd70274c.js                  |  1 +
 zh/assets/js/a4a2cefa.36ac5735.js                  |  1 -
 zh/assets/js/a4a2cefa.6fcc9281.js                  |  1 +
 zh/assets/js/a650e70d.ecf57c85.js                  |  1 +
 zh/assets/js/a650e70d.f1cee241.js                  |  1 -
 zh/assets/js/a6641250.05d21116.js                  |  1 +
 zh/assets/js/a6641250.de99ce79.js                  |  1 -
 zh/assets/js/a6aa9e1f.06032861.js                  |  1 -
 zh/assets/js/a6aa9e1f.84caf643.js                  |  1 +
 zh/assets/js/a9feb042.cde27ba6.js                  |  1 +
 zh/assets/js/a9feb042.e9d283c6.js                  |  1 -
 zh/assets/js/ac9cf38b.0b3f3ef9.js                  |  1 -
 zh/assets/js/ac9cf38b.0c5faa52.js                  |  1 +
 zh/assets/js/adbb350b.052b2d5f.js                  |  1 -
 zh/assets/js/adbb350b.3f2fe8e4.js                  |  1 +
 zh/assets/js/adc7b4c4.bcc0bae1.js                  |  1 +
 zh/assets/js/adc7b4c4.c0236ae7.js                  |  1 -
 zh/assets/js/af4112e0.01e14b3f.js                  |  1 -
 zh/assets/js/af4112e0.5e4ed1ed.js                  |  1 +
 zh/assets/js/b0e5e822.b9b0a05b.js                  |  1 +
 zh/assets/js/b0e5e822.fade4e97.js                  |  1 -
 zh/assets/js/b11ac1fe.06e314a6.js                  |  1 -
 zh/assets/js/b11ac1fe.d577eb0d.js                  |  1 +
 zh/assets/js/b3ea7b47.4c175412.js                  |  1 -
 zh/assets/js/b3ea7b47.a1b503a9.js                  |  1 +
 zh/assets/js/b4a67526.c53fb1ed.js                  |  1 +
 zh/assets/js/b4a67526.f23e8091.js                  |  1 -
 zh/assets/js/b58143c5.1c7df421.js                  |  1 -
 zh/assets/js/b58143c5.abd2d763.js                  |  1 +
 zh/assets/js/b8ef15e5.3e9dcd58.js                  |  1 -
 zh/assets/js/b8ef15e5.f0ee9f5f.js                  |  1 +
 zh/assets/js/bacea567.1409e225.js                  |  1 +
 zh/assets/js/bacea567.467b55d8.js                  |  1 -
 zh/assets/js/bb750539.06b4a954.js                  |  1 +
 zh/assets/js/bb750539.8b14a380.js                  |  1 -
 zh/assets/js/bd3a6b69.0e595c2f.js                  |  1 -
 zh/assets/js/bd3a6b69.9aee29f2.js                  |  1 +
 zh/assets/js/bec177a9.0594d094.js                  |  1 +
 zh/assets/js/bec177a9.3ba4deaa.js                  |  1 -
 zh/assets/js/c07a8fa6.3de6862e.js                  |  1 -
 zh/assets/js/c07a8fa6.bd4445cc.js                  |  1 +
 zh/assets/js/c119cf3c.df33f26d.js                  |  1 -
 zh/assets/js/c119cf3c.ff1d4319.js                  |  1 +
 zh/assets/js/c2f0cd73.5d8b9d51.js                  |  1 +
 zh/assets/js/c2f0cd73.f70f718f.js                  |  1 -
 zh/assets/js/c3e7e417.47409dd8.js                  |  1 +
 zh/assets/js/c3e7e417.ad9cba76.js                  |  1 -
 zh/assets/js/c4f5d8e4.b8ea99a1.js                  |  1 -
 zh/assets/js/c4f5d8e4.bd5ea330.js                  |  1 +
 zh/assets/js/c5594f1a.b069a146.js                  |  1 -
 zh/assets/js/c5594f1a.fa349775.js                  |  1 +
 zh/assets/js/c6a4007d.951ef734.js                  |  1 -
 zh/assets/js/c6a4007d.a4bfd758.js                  |  1 +
 zh/assets/js/c9f6a9fb.eb8eca68.js                  |  1 +
 zh/assets/js/c9f6a9fb.f72198da.js                  |  1 -
 zh/assets/js/ca5ff64e.3929cad9.js                  |  1 +
 zh/assets/js/ca5ff64e.db8bad46.js                  |  1 -
 zh/assets/js/ccc49370.3aa4f16c.js                  |  1 +
 zh/assets/js/ccc49370.77c52c27.js                  |  1 -
 zh/assets/js/cfdc22b3.0539091d.js                  |  1 -
 zh/assets/js/cfdc22b3.fc70f7e6.js                  |  1 +
 zh/assets/js/d0e718c3.aee9722a.js                  |  1 +
 zh/assets/js/d0e718c3.f4e1f67e.js                  |  1 -
 zh/assets/js/d18db9b0.819fb623.js                  |  1 -
 zh/assets/js/d18db9b0.fd69c3f2.js                  |  1 +
 zh/assets/js/d2247e49.297bd1f2.js                  |  1 -
 zh/assets/js/d2247e49.b1294619.js                  |  1 +
 zh/assets/js/d25ed933.05829e24.js                  |  1 +
 zh/assets/js/d25ed933.643f2786.js                  |  1 -
 zh/assets/js/d3236fe2.315ea4e3.js                  |  1 +
 zh/assets/js/d3236fe2.75e7df74.js                  |  1 -
 zh/assets/js/d3321028.3e406ab1.js                  |  1 +
 zh/assets/js/d3321028.a59fd1c0.js                  |  1 -
 zh/assets/js/d4de91ec.c2dc290b.js                  |  1 +
 zh/assets/js/d4de91ec.e5637258.js                  |  1 -
 zh/assets/js/d4f121db.953068ea.js                  |  1 +
 zh/assets/js/d4f121db.cf5d20a6.js                  |  1 -
 zh/assets/js/d73fca9b.6403a5a7.js                  |  1 -
 zh/assets/js/d73fca9b.9b691e17.js                  |  1 +
 zh/assets/js/d9a95709.3db5607a.js                  |  1 -
 zh/assets/js/d9a95709.8cb96836.js                  |  1 +
 zh/assets/js/da9aeeeb.40d9a444.js                  |  1 -
 zh/assets/js/da9aeeeb.7a470ff1.js                  |  1 +
 zh/assets/js/dcd33163.09601a0f.js                  |  1 -
 zh/assets/js/dcd33163.7e5fd969.js                  |  1 +
 zh/assets/js/dec1c301.0e258f13.js                  |  1 +
 zh/assets/js/dec1c301.e1903c20.js                  |  1 -
 zh/assets/js/e00a615f.31a690d7.js                  |  1 -
 zh/assets/js/e00a615f.6829c960.js                  |  1 +
 zh/assets/js/e02da2c5.0f6647cc.js                  |  1 -
 zh/assets/js/e02da2c5.8c56c817.js                  |  1 +
 zh/assets/js/e1a3b18d.53ed8a2d.js                  |  1 -
 zh/assets/js/e1a3b18d.af5cd3a2.js                  |  1 +
 zh/assets/js/e25b82d9.334e30dc.js                  |  1 -
 zh/assets/js/e25b82d9.e6c4c049.js                  |  1 +
 zh/assets/js/e451ae2c.7e6b7688.js                  |  1 +
 zh/assets/js/e451ae2c.8d62272c.js                  |  1 -
 zh/assets/js/e461335b.9bcb7fb8.js                  |  1 -
 zh/assets/js/e461335b.bcc65343.js                  |  1 +
 zh/assets/js/e60dd3b0.84c9fc7a.js                  |  1 +
 zh/assets/js/e60dd3b0.964c07c6.js                  |  1 -
 zh/assets/js/e6331947.90cab919.js                  |  2 +
 zh/assets/js/e6331947.90cab919.js.LICENSE.txt      |  1 +
 zh/assets/js/e75fbec5.634c51b4.js                  |  1 +
 zh/assets/js/e75fbec5.cc5d6edd.js                  |  1 -
 zh/assets/js/eadd53fd.1b27f1e2.js                  |  1 +
 zh/assets/js/eadd53fd.461436f0.js                  |  1 -
 zh/assets/js/eba3b9b2.7a276b45.js                  |  1 -
 zh/assets/js/eba3b9b2.d4ff000d.js                  |  1 +
 zh/assets/js/ece6e754.1b616d0b.js                  |  1 -
 zh/assets/js/ece6e754.f56fdac4.js                  |  1 +
 zh/assets/js/f1d91454.2134a95d.js                  |  1 +
 zh/assets/js/f1d91454.6fc21d27.js                  |  1 -
 zh/assets/js/f243156b.ae9a20e5.js                  |  1 -
 zh/assets/js/f243156b.f9321442.js                  |  1 +
 zh/assets/js/f35343e1.83163f17.js                  |  1 -
 zh/assets/js/f35343e1.a2de50f0.js                  |  1 +
 zh/assets/js/f45d06d8.8df5a03b.js                  |  1 +
 zh/assets/js/f45d06d8.90e007fa.js                  |  1 -
 zh/assets/js/f4620fb6.71409755.js                  |  1 -
 zh/assets/js/f4620fb6.7549d1ed.js                  |  1 +
 zh/assets/js/f5c513a5.0e2931b6.js                  |  1 +
 zh/assets/js/f5c513a5.33312aef.js                  |  1 -
 zh/assets/js/f6cd6006.0e1bd90f.js                  |  1 +
 zh/assets/js/f6cd6006.6e27d3aa.js                  |  1 -
 zh/assets/js/f7488fe8.b1d9c437.js                  |  1 -
 zh/assets/js/f7488fe8.de6c43b2.js                  |  1 +
 zh/assets/js/f7b3f6db.039c28b2.js                  |  1 +
 zh/assets/js/f7b3f6db.1bf2a657.js                  |  1 -
 zh/assets/js/f8217c69.9908e08d.js                  |  1 -
 zh/assets/js/f8217c69.c40a4f7a.js                  |  1 +
 zh/assets/js/f9dabc71.4e1a02cd.js                  |  1 -
 zh/assets/js/f9dabc71.726bb880.js                  |  1 +
 zh/assets/js/fa919c95.2b5f54a5.js                  |  1 -
 zh/assets/js/fa919c95.88b99d2d.js                  |  1 +
 zh/assets/js/fc9a947c.2d58ab93.js                  |  1 -
 zh/assets/js/fc9a947c.d8b02cc2.js                  |  1 +
 zh/assets/js/fd72aa65.d6b7cdaa.js                  |  1 -
 zh/assets/js/fd72aa65.f7e3da7f.js                  |  1 +
 zh/assets/js/ff8d1795.20d1fea4.js                  |  1 -
 zh/assets/js/ff8d1795.d5d6465b.js                  |  1 +
 zh/assets/js/main.8c522333.js                      |  2 +
 zh/assets/js/main.8c522333.js.LICENSE.txt          | 44 +++++++++++++++++
 zh/assets/js/main.e17e0006.js                      |  2 -
 zh/assets/js/main.e17e0006.js.LICENSE.txt          | 44 -----------------
 zh/assets/js/runtime~main.4050c260.js              |  1 -
 zh/assets/js/runtime~main.ebe85481.js              |  1 +
 zh/assets/js/styles.1122c390.js                    |  1 -
 zh/blog/2020/08/22/new-website/index.html          | 30 ++++--------
 .../index.html                                     | 32 ++++---------
 .../index.html                                     | 30 ++++--------
 .../21/run-ingress-apisix-on-amazon-eks/index.html | 30 ++++--------
 .../index.html                                     | 30 ++++--------
 .../index.html                                     | 32 ++++---------
 .../index.html                                     | 30 ++++--------
 .../index.html                                     | 30 ++++--------
 zh/blog/index.html                                 | 46 ++++--------------
 zh/docs/apisix/FAQ/index.html                      | 42 ++++++----------
 zh/docs/apisix/IGNORE_DOC/index.html               | 30 ++++--------
 zh/docs/apisix/admin-api/index.html                | 46 +++++++-----------
 .../apisix/architecture-design/apisix/index.html   | 34 ++++---------
 .../apisix/architecture-design/consumer/index.html | 36 +++++---------
 .../architecture-design/debug-mode/index.html      | 34 ++++---------
 .../architecture-design/global-rule/index.html     | 32 ++++---------
 .../architecture-design/plugin-config/index.html   | 32 ++++---------
 .../apisix/architecture-design/plugin/index.html   | 36 +++++---------
 .../apisix/architecture-design/route/index.html    | 34 ++++---------
 .../apisix/architecture-design/router/index.html   | 30 ++++--------
 .../apisix/architecture-design/script/index.html   | 30 ++++--------
 .../apisix/architecture-design/service/index.html  | 34 ++++---------
 .../apisix/architecture-design/upstream/index.html | 32 ++++---------
 zh/docs/apisix/aws/index.html                      | 36 +++++---------
 zh/docs/apisix/batch-processor/index.html          | 34 ++++---------
 zh/docs/apisix/benchmark/index.html                | 32 ++++---------
 zh/docs/apisix/control-api/index.html              | 38 +++++----------
 .../customize-nginx-configuration/index.html       | 32 ++++---------
 zh/docs/apisix/debug-function/index.html           | 32 ++++---------
 zh/docs/apisix/discovery/consul_kv/index.html      | 34 ++++---------
 zh/docs/apisix/discovery/dns/index.html            | 38 +++++----------
 zh/docs/apisix/discovery/eureka/index.html         | 32 ++++---------
 zh/docs/apisix/discovery/index.html                | 36 +++++---------
 zh/docs/apisix/discovery/nacos/index.html          | 30 ++++--------
 .../index.html                                     | 48 +++++++------------
 zh/docs/apisix/getting-started/index.html          | 32 ++++---------
 zh/docs/apisix/grpc-proxy/index.html               | 30 ++++--------
 zh/docs/apisix/health-check/index.html             | 32 ++++---------
 zh/docs/apisix/how-to-build/index.html             | 34 ++++---------
 zh/docs/apisix/https/index.html                    | 38 +++++----------
 zh/docs/apisix/install-dependencies/index.html     | 40 +++++-----------
 zh/docs/apisix/mtls/index.html                     | 32 ++++---------
 zh/docs/apisix/plugin-develop/index.html           | 46 +++++++-----------
 zh/docs/apisix/plugin-interceptors/index.html      | 30 ++++--------
 zh/docs/apisix/plugins/api-breaker/index.html      | 34 ++++---------
 zh/docs/apisix/plugins/authz-keycloak/index.html   | 30 ++++--------
 zh/docs/apisix/plugins/basic-auth/index.html       | 30 ++++--------
 zh/docs/apisix/plugins/batch-requests/index.html   | 32 ++++---------
 .../apisix/plugins/consumer-restriction/index.html | 34 ++++---------
 zh/docs/apisix/plugins/cors/index.html             | 32 ++++---------
 zh/docs/apisix/plugins/dubbo-proxy/index.html      | 38 +++++----------
 zh/docs/apisix/plugins/echo/index.html             | 30 ++++--------
 zh/docs/apisix/plugins/error-log-logger/index.html | 32 ++++---------
 zh/docs/apisix/plugins/fault-injection/index.html  | 56 ++++++++--------------
 zh/docs/apisix/plugins/grpc-transcode/index.html   | 34 ++++---------
 zh/docs/apisix/plugins/hmac-auth/index.html        | 40 +++++-----------
 zh/docs/apisix/plugins/http-logger/index.html      | 30 ++++--------
 zh/docs/apisix/plugins/index.html                  | 32 ++++---------
 zh/docs/apisix/plugins/ip-restriction/index.html   | 30 ++++--------
 zh/docs/apisix/plugins/jwt-auth/index.html         | 44 ++++++-----------
 zh/docs/apisix/plugins/kafka-logger/index.html     | 34 ++++---------
 zh/docs/apisix/plugins/key-auth/index.html         | 34 ++++---------
 zh/docs/apisix/plugins/limit-conn/index.html       | 34 ++++---------
 zh/docs/apisix/plugins/limit-count/index.html      | 36 +++++---------
 zh/docs/apisix/plugins/limit-req/index.html        | 32 ++++---------
 zh/docs/apisix/plugins/log-rotate/index.html       | 34 ++++---------
 zh/docs/apisix/plugins/mqtt-proxy/index.html       | 30 ++++--------
 zh/docs/apisix/plugins/node-status/index.html      | 32 ++++---------
 zh/docs/apisix/plugins/openid-connect/index.html   | 34 ++++---------
 zh/docs/apisix/plugins/prometheus/index.html       | 36 +++++---------
 zh/docs/apisix/plugins/proxy-cache/index.html      | 40 +++++-----------
 zh/docs/apisix/plugins/proxy-mirror/index.html     | 32 ++++---------
 zh/docs/apisix/plugins/proxy-rewrite/index.html    | 30 ++++--------
 zh/docs/apisix/plugins/redirect/index.html         | 34 ++++---------
 .../apisix/plugins/referer-restriction/index.html  | 30 ++++--------
 zh/docs/apisix/plugins/request-id/index.html       | 30 ++++--------
 .../apisix/plugins/request-validation/index.html   | 30 ++++--------
 zh/docs/apisix/plugins/response-rewrite/index.html | 34 ++++---------
 zh/docs/apisix/plugins/server-info/index.html      | 32 ++++---------
 zh/docs/apisix/plugins/serverless/index.html       | 34 ++++---------
 zh/docs/apisix/plugins/skywalking/index.html       | 38 +++++----------
 zh/docs/apisix/plugins/sls-logger/index.html       | 34 ++++---------
 zh/docs/apisix/plugins/syslog/index.html           | 30 ++++--------
 zh/docs/apisix/plugins/tcp-logger/index.html       | 32 ++++---------
 zh/docs/apisix/plugins/traffic-split/index.html    | 54 ++++++++-------------
 zh/docs/apisix/plugins/udp-logger/index.html       | 32 ++++---------
 zh/docs/apisix/plugins/uri-blocker/index.html      | 32 ++++---------
 zh/docs/apisix/plugins/wolf-rbac/index.html        | 50 +++++++------------
 zh/docs/apisix/plugins/zipkin/index.html           | 32 ++++---------
 zh/docs/apisix/profile/index.html                  | 30 ++++--------
 zh/docs/apisix/router-radixtree/index.html         | 38 +++++----------
 zh/docs/apisix/stand-alone/index.html              | 34 ++++---------
 zh/docs/apisix/stream-proxy/index.html             | 32 ++++---------
 zh/docs/dashboard/FAQ/index.html                   | 32 ++++---------
 zh/docs/dashboard/I18N_USER_GUIDE/index.html       | 30 ++++--------
 zh/docs/dashboard/IGNORE_DOC/index.html            | 30 ++++--------
 .../dashboard/IMPORT_OPENAPI_USER_GUIDE/index.html | 32 ++++---------
 zh/docs/dashboard/USER_GUIDE/index.html            | 30 ++++--------
 zh/docs/dashboard/api/api/index.html               | 30 ++++--------
 zh/docs/dashboard/back-end-tests/index.html        | 38 +++++----------
 zh/docs/dashboard/deploy-with-docker/index.html    | 32 ++++---------
 zh/docs/dashboard/deploy-with-rpm/index.html       | 30 ++++--------
 zh/docs/dashboard/deploy/index.html                | 34 ++++---------
 zh/docs/dashboard/develop/index.html               | 32 ++++---------
 zh/docs/dashboard/front-end-e2e/index.html         | 30 ++++--------
 zh/docs/docker/IGNORE_DOC/index.html               | 30 ++++--------
 zh/docs/docker/build/index.html                    | 32 ++++---------
 zh/docs/docker/example/index.html                  | 36 +++++---------
 zh/docs/docker/manual/index.html                   | 30 ++++--------
 zh/docs/general/2fa/index.html                     | 30 ++++--------
 zh/docs/general/committer-guide/index.html         | 30 ++++--------
 zh/docs/general/contributor-guide/index.html       | 30 ++++--------
 .../general/integrate-with-project-docs/index.html | 30 ++++--------
 zh/docs/general/release-guide/index.html           | 44 ++++++-----------
 zh/docs/general/security/index.html                | 30 ++++--------
 zh/docs/general/subscribe-guide/index.html         | 30 ++++--------
 zh/docs/helm-chart/IGNORE_DOC/index.html           | 30 ++++--------
 zh/docs/helm-chart/apisix-dashboard/index.html     | 30 ++++--------
 .../apisix-ingress-controller/index.html           | 30 ++++--------
 zh/docs/helm-chart/apisix/index.html               | 30 ++++--------
 zh/docs/index.html                                 | 26 ++++------
 zh/docs/ingress-controller/FAQ/index.html          | 30 ++++--------
 zh/docs/ingress-controller/IGNORE_DOC/index.html   | 30 ++++--------
 .../concepts/apisix_route/index.html               | 44 ++++++-----------
 .../concepts/apisix_tls/index.html                 | 34 ++++---------
 .../concepts/apisix_upstream/index.html            | 42 ++++++----------
 zh/docs/ingress-controller/contribute/index.html   | 32 ++++---------
 .../ingress-controller/deployments/ack/index.html  | 30 ++++--------
 .../ingress-controller/deployments/aws/index.html  | 30 ++++--------
 .../deployments/azure/index.html                   | 30 ++++--------
 .../ingress-controller/deployments/gke/index.html  | 30 ++++--------
 .../deployments/k3s-rke/index.html                 | 34 ++++---------
 .../deployments/kubesphere/index.html              | 32 ++++---------
 .../deployments/minikube/index.html                | 30 ++++--------
 .../ingress-controller/deployments/tke/index.html  | 30 ++++--------
 zh/docs/ingress-controller/design/index.html       | 30 ++++--------
 zh/docs/ingress-controller/development/index.html  | 30 ++++--------
 .../ingress-controller/getting-started/index.html  | 32 ++++---------
 .../ingress-controller/practices/index/index.html  | 30 ++++--------
 .../index.html                                     | 32 ++++---------
 .../practices/proxy-the-httpbin-service/index.html | 32 ++++---------
 .../references/apisix_route_v1/index.html          | 30 ++++--------
 .../references/apisix_route_v2alpha1/index.html    | 30 ++++--------
 .../references/apisix_tls/index.html               | 30 ++++--------
 .../references/apisix_upstream/index.html          | 30 ++++--------
 zh/downloads/ProjectCard/index.html                | 20 +++-----
 zh/downloads/index.html                            | 32 ++++---------
 .../index.html                                     | 30 ++++--------
 .../index.html                                     | 30 ++++--------
 .../02/09/release-apache-apisix-2.3/index.html     | 30 ++++--------
 .../index.html                                     | 30 ++++--------
 .../release-apache-apisix-dashboard-2.4/index.html | 30 ++++--------
 .../03/05/release-apache-apisix-2.4/index.html     | 30 ++++--------
 .../index.html                                     | 30 ++++--------
 .../04/05/release-apache-apisix-2.5/index.html     | 30 ++++--------
 .../index.html                                     | 30 ++++--------
 .../release-apache-apisix-dashboard-2.6/index.html | 30 ++++--------
 zh/events/index.html                               | 50 ++++---------------
 zh/help/index.html                                 | 26 ++++------
 zh/index.html                                      | 26 ++++------
 zh/opensearch.xml                                  |  8 ++--
 zh/search/index.html                               | 24 ++++------
 zh/sitemap.xml                                     |  2 +-
 zh/team/index.html                                 | 26 ++++------
 1158 files changed, 3703 insertions(+), 8193 deletions(-)

diff --git a/404.html b/404.html
index 60403d5..56ccb2a 100644
--- a/404.html
+++ b/404.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,16 +14,14 @@
 <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">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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Page Not Found | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Page Not Found | Apache APISIX™"><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//404.html"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsear [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/assets/css/styles.8cebb52d.css b/assets/css/styles.8cebb52d.css
deleted file mode 100644
index fde4100..0000000
--- a/assets/css/styles.8cebb52d.css
+++ /dev/null
@@ -1 +0,0 @@
-.row .col,img{max-width:100%}.markdown li,body{word-wrap:break-word}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.button,.close{-webkit-appearance:none;cursor:pointer}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button--link,a{-webkit-text-decoration:var(--ifm-link-decoration)}.button,.close,.menu__link,.navbar__link,a{cursor:pointer}.tabs__item,hr,img{box-sizing:content-box}.react-toggle,html{-webkit-tap-hig [...]
\ No newline at end of file
diff --git a/assets/css/styles.aef3a109.css b/assets/css/styles.aef3a109.css
new file mode 100644
index 0000000..8757765
--- /dev/null
+++ b/assets/css/styles.aef3a109.css
@@ -0,0 +1,25 @@
+.admonition-icon,code{vertical-align:middle}.row .col,img{max-width:100%}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.button,.close{-webkit-appearance:none;cursor:pointer}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.button,.close,.menu__link,.navbar__link,a{cursor:pointer [...]
+        --ifm-color-primary-darker
+      );border-color:var(
+        --ifm-color-primary-darker
+      )}.button--secondary{--ifm-button-border-color:var(--ifm-color-secondary)}.button--secondary:not(.button--outline){--ifm-button-background-color:var(--ifm-color-secondary)}.button--secondary:not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-border-color:var(--ifm-color-secondary-darker);--ifm-button-background-col [...]
+        --ifm-color-secondary-darker
+      );border-color:var(
+        --ifm-color-secondary-darker
+      )}.button--success{--ifm-button-border-color:var(--ifm-color-success)}.button--success:not(.button--outline){--ifm-button-background-color:var(--ifm-color-success)}.button--success:not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-border-color:var(--ifm-color-success-darker);--ifm-button-background-color:var(--ifm-color-s [...]
+        --ifm-color-success-darker
+      );border-color:var(
+        --ifm-color-success-darker
+      )}.button--info{--ifm-button-border-color:var(--ifm-color-info)}.button--info:not(.button--outline){--ifm-button-background-color:var(--ifm-color-info)}.button--info:not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-border-color:var(--ifm-color-info-darker);--ifm-button-background-color:var(--ifm-color-info-darker);background-color:var(
+        --ifm-color-info-darker
+      );border-color:var(
+        --ifm-color-info-darker
+      )}.button--warning{--ifm-button-border-color:var(--ifm-color-warning)}.button--warning:not(.button--outline){--ifm-button-background-color:var(--ifm-color-warning)}.button--warning:not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-border-color:var(--ifm-color-warning-darker);--ifm-button-background-color:var(--ifm-color-w [...]
+        --ifm-color-warning-darker
+      );border-color:var(
+        --ifm-color-warning-darker
+      )}.button--danger{--ifm-button-border-color:var(--ifm-color-danger)}.button--danger:not(.button--outline){--ifm-button-background-color:var(--ifm-color-danger)}.button--danger:not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-border-color:var(--ifm-color-danger-darker);--ifm-button-background-color:var(--ifm-color-danger-dark [...]
+        --ifm-color-danger-darker
+      );border-color:var(
+        --ifm-color-danger-darker
+      )}.button-group{display:inline-flex}.button-group>.button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0;margin-left:var(--ifm-button-group-margin)}.button-group>.button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.button-group>.button--active{z-index:1}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-c [...]
\ No newline at end of file
diff --git a/assets/js/00ee19e9.997f2155.js b/assets/js/00ee19e9.997f2155.js
deleted file mode 100644
index 6678b4d..0000000
--- a/assets/js/00ee19e9.997f2155.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[5],{270:function(e,t,n){"use strict";n.d(t,"a",(function(){return p})),n.d(t,"b",(function(){return m}));var a=n(0),r=n.n(a);function l(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/00ee19e9.9fef9d18.js b/assets/js/00ee19e9.9fef9d18.js
new file mode 100644
index 0000000..7b9f6b2
--- /dev/null
+++ b/assets/js/00ee19e9.9fef9d18.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[777],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return u},kt:function(){return m}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function 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}))),n.push.apply(n,a) [...]
\ No newline at end of file
diff --git a/assets/js/0132ab2c.be02a700.js b/assets/js/0132ab2c.be02a700.js
deleted file mode 100644
index 908a721..0000000
--- a/assets/js/0132ab2c.be02a700.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{270:function(n,e,t){"use strict";t.d(e,"a",(function(){return l})),t.d(e,"b",(function(){return g}));var r=t(0),i=t.n(r);function o(n,e,t){return e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function a(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))) [...]
\ No newline at end of file
diff --git a/assets/js/0132ab2c.cd360c10.js b/assets/js/0132ab2c.cd360c10.js
new file mode 100644
index 0000000..0aa243a
--- /dev/null
+++ b/assets/js/0132ab2c.cd360c10.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[6299],{3905:function(n,e,t){"use strict";t.d(e,{Zo:function(){return s},kt:function(){return m}});var r=t(7294);function i(n,e,t){return e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function o(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),t.push.apply(t,r [...]
\ No newline at end of file
diff --git a/assets/js/0201ab1c.926d321d.js b/assets/js/0201ab1c.926d321d.js
deleted file mode 100644
index 13d43ff..0000000
--- a/assets/js/0201ab1c.926d321d.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{270:function(e,n,t){"use strict";t.d(n,"a",(function(){return s})),t.d(n,"b",(function(){return m}));var r=t(0),i=t.n(r);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function a(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))) [...]
\ No newline at end of file
diff --git a/assets/js/0201ab1c.b1d3cd91.js b/assets/js/0201ab1c.b1d3cd91.js
new file mode 100644
index 0000000..2e0aa71
--- /dev/null
+++ b/assets/js/0201ab1c.b1d3cd91.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[2831],{3905:function(e,n,t){"use strict";t.d(n,{Zo:function(){return s},kt:function(){return m}});var r=t(7294);function i(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r [...]
\ No newline at end of file
diff --git a/assets/js/034277d8.436be674.js b/assets/js/034277d8.436be674.js
new file mode 100644
index 0000000..8c630ef
--- /dev/null
+++ b/assets/js/034277d8.436be674.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[2223],{3905:function(t,a,e){"use strict";e.d(a,{Zo:function(){return N},kt:function(){return g}});var n=e(7294);function r(t,a,e){return a in t?Object.defineProperty(t,a,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[a]=e,t}function l(t,a){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);a&&(n=n.filter((function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable}))),e.push.apply(e,n [...]
\ No newline at end of file
diff --git a/assets/js/034277d8.ab60ce7f.js b/assets/js/034277d8.ab60ce7f.js
deleted file mode 100644
index 7ce2015..0000000
--- a/assets/js/034277d8.ab60ce7f.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{270:function(t,e,a){"use strict";a.d(e,"a",(function(){return d})),a.d(e,"b",(function(){return O}));var n=a(0),r=a.n(n);function b(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function l(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))) [...]
\ No newline at end of file
diff --git a/assets/js/042f2dd8.00e6fb6a.js b/assets/js/042f2dd8.00e6fb6a.js
deleted file mode 100644
index 3ddcd80..0000000
--- a/assets/js/042f2dd8.00e6fb6a.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[9],{270:function(e,t,n){"use strict";n.d(t,"a",(function(){return p})),n.d(t,"b",(function(){return m}));var r=n(0),a=n.n(r);function l(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/042f2dd8.187dce71.js b/assets/js/042f2dd8.187dce71.js
new file mode 100644
index 0000000..901b9d8
--- /dev/null
+++ b/assets/js/042f2dd8.187dce71.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[354],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return c},kt:function(){return m}});var r=n(7294);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 l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r) [...]
\ No newline at end of file
diff --git a/assets/js/0484cea7.568579fc.js b/assets/js/0484cea7.568579fc.js
deleted file mode 100644
index 4d1298b..0000000
--- a/assets/js/0484cea7.568579fc.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[10],{270:function(e,t,n){"use strict";n.d(t,"a",(function(){return s})),n.d(t,"b",(function(){return m}));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 l(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/0484cea7.67c25212.js b/assets/js/0484cea7.67c25212.js
new file mode 100644
index 0000000..41d36e0
--- /dev/null
+++ b/assets/js/0484cea7.67c25212.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[5321],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return u},kt:function(){return c}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r [...]
\ No newline at end of file
diff --git a/assets/js/0654f374.1bfe693c.js b/assets/js/0654f374.1bfe693c.js
deleted file mode 100644
index a71788f..0000000
--- a/assets/js/0654f374.1bfe693c.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[11],{270:function(e,t,n){"use strict";n.d(t,"a",(function(){return u})),n.d(t,"b",(function(){return m}));var r=n(0),a=n.n(r);function l(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/0654f374.a9920378.js b/assets/js/0654f374.a9920378.js
new file mode 100644
index 0000000..05bd961
--- /dev/null
+++ b/assets/js/0654f374.a9920378.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[6492],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return p},kt:function(){return m}});var r=n(7294);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 l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r [...]
\ No newline at end of file
diff --git a/assets/js/098c8b15.1c2acc5c.js b/assets/js/098c8b15.1c2acc5c.js
deleted file mode 100644
index 0eb5998..0000000
--- a/assets/js/098c8b15.1c2acc5c.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[12],{270:function(e,t,n){"use strict";n.d(t,"a",(function(){return s})),n.d(t,"b",(function(){return h}));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/098c8b15.2270c688.js b/assets/js/098c8b15.2270c688.js
new file mode 100644
index 0000000..4a37ec5
--- /dev/null
+++ b/assets/js/098c8b15.2270c688.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[6690],{3905:function(t,e,n){"use strict";n.d(e,{Zo:function(){return u},kt:function(){return h}});var a=n(7294);function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,a [...]
\ No newline at end of file
diff --git a/assets/js/0dc3e78d.07dce7ed.js b/assets/js/0dc3e78d.07dce7ed.js
new file mode 100644
index 0000000..fcc5c97
--- /dev/null
+++ b/assets/js/0dc3e78d.07dce7ed.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[3798],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return u},kt:function(){return f}});var r=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r [...]
\ No newline at end of file
diff --git a/assets/js/0dc3e78d.6f67ea1c.js b/assets/js/0dc3e78d.6f67ea1c.js
deleted file mode 100644
index 3b452aa..0000000
--- a/assets/js/0dc3e78d.6f67ea1c.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[13],{270:function(e,t,n){"use strict";n.d(t,"a",(function(){return u})),n.d(t,"b",(function(){return m}));var r=n(0),i=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 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/1.8ab37bf2.js b/assets/js/1.8ab37bf2.js
deleted file mode 100644
index 1e107f9..0000000
--- a/assets/js/1.8ab37bf2.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{271:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(303);Object.defineProperty(t,"useThemeConfig",{enumerable:!0,get:function(){return r.useThemeConfig}});var o=n(330);Object.defineProperty(t,"useAlternatePageUtils",{enumerable:!0,get:function(){return o.useAlternatePageUtils}});var i=n(331);Object.defineProperty(t,"docVersionSearchTag",{enumerable:!0,get:function(){return i.docVersionSearchTag [...]
\ No newline at end of file
diff --git a/assets/js/11dba9b3.4a928104.js b/assets/js/11dba9b3.4a928104.js
deleted file mode 100644
index aad1f4b..0000000
--- a/assets/js/11dba9b3.4a928104.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[14],{270:function(e,t,n){"use strict";n.d(t,"a",(function(){return u})),n.d(t,"b",(function(){return m}));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 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/11dba9b3.8b9cf211.js b/assets/js/11dba9b3.8b9cf211.js
new file mode 100644
index 0000000..3e7be3f
--- /dev/null
+++ b/assets/js/11dba9b3.8b9cf211.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[3239],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return c},kt:function(){return m}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r [...]
\ No newline at end of file
diff --git a/assets/js/12e5767f.07863216.js b/assets/js/12e5767f.07863216.js
new file mode 100644
index 0000000..a0a3b54
--- /dev/null
+++ b/assets/js/12e5767f.07863216.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[2610],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return s},kt:function(){return f}});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n [...]
\ No newline at end of file
diff --git a/assets/js/12e5767f.a607b710.js b/assets/js/12e5767f.a607b710.js
deleted file mode 100644
index 4c77f6b..0000000
--- a/assets/js/12e5767f.a607b710.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[15],{270: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/assets/js/13dafbb5.27960d4d.js b/assets/js/13dafbb5.27960d4d.js
new file mode 100644
index 0000000..950546d
--- /dev/null
+++ b/assets/js/13dafbb5.27960d4d.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[2149],{3905:function(e,n,t){"use strict";t.d(n,{Zo:function(){return c},kt:function(){return m}});var r=t(7294);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function a(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r [...]
\ No newline at end of file
diff --git a/assets/js/13dafbb5.8f2278ce.js b/assets/js/13dafbb5.8f2278ce.js
deleted file mode 100644
index d96c1ec..0000000
--- a/assets/js/13dafbb5.8f2278ce.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[16],{270:function(e,n,t){"use strict";t.d(n,"a",(function(){return d})),t.d(n,"b",(function(){return m}));var r=t(0),o=t.n(r);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})) [...]
\ No newline at end of file
diff --git a/assets/js/162a65a3.247c7ac2.js b/assets/js/162a65a3.247c7ac2.js
new file mode 100644
index 0000000..156b68b
--- /dev/null
+++ b/assets/js/162a65a3.247c7ac2.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[9176],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return d},kt:function(){return u}});var a=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a [...]
\ No newline at end of file
diff --git a/assets/js/162a65a3.34fd45ff.js b/assets/js/162a65a3.34fd45ff.js
deleted file mode 100644
index 7ca9bdb..0000000
--- a/assets/js/162a65a3.34fd45ff.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[17],{270:function(e,t,n){"use strict";n.d(t,"a",(function(){return d})),n.d(t,"b",(function(){return u}));var a=n(0),i=n.n(a);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})) [...]
\ No newline at end of file
diff --git a/assets/js/1741c35c.5c786a31.js b/assets/js/1741c35c.5c786a31.js
new file mode 100644
index 0000000..8f3fb2c
--- /dev/null
+++ b/assets/js/1741c35c.5c786a31.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[2958],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return p},kt:function(){return m}});var r=n(7294);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 l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r [...]
\ No newline at end of file
diff --git a/assets/js/1741c35c.e447e333.js b/assets/js/1741c35c.e447e333.js
deleted file mode 100644
index dff5c24..0000000
--- a/assets/js/1741c35c.e447e333.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[18],{270:function(e,t,n){"use strict";n.d(t,"a",(function(){return b})),n.d(t,"b",(function(){return m}));var r=n(0),a=n.n(r);function l(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/17896441.00051d18.js b/assets/js/17896441.00051d18.js
deleted file mode 100644
index b02a233..0000000
--- a/assets/js/17896441.00051d18.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[19],{265:function(e,t,a){"use strict";a.r(t);var n=a(0),l=a.n(n),r=a(24),c=a(271),i=a(17),o=a(277),m=a(273);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:"paginat [...]
\ No newline at end of file
diff --git a/assets/js/17896441.4b399950.js b/assets/js/17896441.4b399950.js
new file mode 100644
index 0000000..a86ccd9
--- /dev/null
+++ b/assets/js/17896441.4b399950.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[7918],{3319:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return k}});var n=a(7294),l=a(6742),r=a(4973);var i=function(e){var t=e.metadata;return n.createElement("nav",{className:"pagination-nav","aria-label":(0,r.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages navigation",description:"The ARIA label for the docs pagination"})},n.createElement("div",{className:"pagination-nav__item"},t.previous&&n.createEleme [...]
\ No newline at end of file
diff --git a/assets/js/17d3fec9.5c6bad9a.js b/assets/js/17d3fec9.5c6bad9a.js
new file mode 100644
index 0000000..1ba2a47
--- /dev/null
+++ b/assets/js/17d3fec9.5c6bad9a.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[1205],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return s},kt:function(){return m}});var r=n(7294);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 l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r [...]
\ No newline at end of file
diff --git a/assets/js/17d3fec9.ec0ba0c8.js b/assets/js/17d3fec9.ec0ba0c8.js
deleted file mode 100644
index f8384ea..0000000
--- a/assets/js/17d3fec9.ec0ba0c8.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[20],{270:function(e,t,n){"use strict";n.d(t,"a",(function(){return p})),n.d(t,"b",(function(){return m}));var r=n(0),a=n.n(r);function l(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/17dc512b.6148cece.js b/assets/js/17dc512b.6148cece.js
deleted file mode 100644
index 80f5d8f..0000000
--- a/assets/js/17dc512b.6148cece.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[21],{270: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/17dc512b.ca1545b0.js b/assets/js/17dc512b.ca1545b0.js
new file mode 100644
index 0000000..6ad42ca
--- /dev/null
+++ b/assets/js/17dc512b.ca1545b0.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[8485],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return u},kt:function(){return m}});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n [...]
\ No newline at end of file
diff --git a/assets/js/198.2d894345.js b/assets/js/198.2d894345.js
deleted file mode 100644
index 3e21c11..0000000
--- a/assets/js/198.2d894345.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/*! For license information please see 198.2d894345.js.LICENSE.txt */
-(window.webpackJsonp=window.webpackJsonp||[]).push([[198],{245:function(e,t,n){"use strict";n.r(t);var r=n(0),i=n.n(r),a=n(362),s=n.n(a),c=n(351),u=n.n(c),o=n(272),f=n(24),h=n(273),l=n(10),m=n(271),d=n(17),v=n(275),p=n(308),g=n(274),y=n(246),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.searchVers [...]
\ No newline at end of file
diff --git a/assets/js/198.2d894345.js.LICENSE.txt b/assets/js/198.2d894345.js.LICENSE.txt
deleted file mode 100644
index 0d29e78..0000000
--- a/assets/js/198.2d894345.js.LICENSE.txt
+++ /dev/null
@@ -1 +0,0 @@
-/*! algoliasearch-lite.umd.js | 4.8.4 | © Algolia, inc. | https://github.com/algolia/algoliasearch-client-javascript */
diff --git a/assets/js/199.032a25d0.js b/assets/js/199.032a25d0.js
deleted file mode 100644
index f7f9833..0000000
--- a/assets/js/199.032a25d0.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[199,202],{270: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).enumerab [...]
\ No newline at end of file
diff --git a/assets/js/19945770.6fc6ce2a.js b/assets/js/19945770.6fc6ce2a.js
deleted file mode 100644
index 72422c5..0000000
--- a/assets/js/19945770.6fc6ce2a.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[22],{270:function(e,t,n){"use strict";n.d(t,"a",(function(){return d})),n.d(t,"b",(function(){return f}));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/19945770.9a8e5389.js b/assets/js/19945770.9a8e5389.js
new file mode 100644
index 0000000..7cb2fb6
--- /dev/null
+++ b/assets/js/19945770.9a8e5389.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[5067],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return p},kt:function(){return f}});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r [...]
\ No newline at end of file
diff --git a/assets/js/1bc24c0d.08b153c1.js b/assets/js/1bc24c0d.08b153c1.js
deleted file mode 100644
index be7b814..0000000
--- a/assets/js/1bc24c0d.08b153c1.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[23],{270:function(e,t,a){"use strict";a.d(t,"a",(function(){return o})),a.d(t,"b",(function(){return s}));var n=a(0),l=a.n(n);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function b(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/1bc24c0d.77d8fed3.js b/assets/js/1bc24c0d.77d8fed3.js
new file mode 100644
index 0000000..6d2573b
--- /dev/null
+++ b/assets/js/1bc24c0d.77d8fed3.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[2335],{3905:function(t,e,a){"use strict";a.d(e,{Zo:function(){return u},kt:function(){return k}});var n=a(7294);function l(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function r(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,n [...]
\ No newline at end of file
diff --git a/assets/js/1be5d2e8.0553ab7d.js b/assets/js/1be5d2e8.0553ab7d.js
deleted file mode 100644
index fa2eb29..0000000
--- a/assets/js/1be5d2e8.0553ab7d.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[24],{270: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.05d7500b.js b/assets/js/1be5d2e8.05d7500b.js
new file mode 100644
index 0000000..057e628
--- /dev/null
+++ b/assets/js/1be5d2e8.05d7500b.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[818],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return c},kt:function(){return h}});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n) [...]
\ No newline at end of file
diff --git a/assets/js/1be78505.29634db6.js b/assets/js/1be78505.29634db6.js
deleted file mode 100644
index 9e7e29b..0000000
--- a/assets/js/1be78505.29634db6.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[25],{266:function(e,a,t){"use strict";t.r(a);var n=t(0),c=t.n(n),i=t(270),l=t(17),r=t(27),o=t(274),s=t(3),u=t(8),b=t(272),m=t(271),d=t(306),p=t(312),f=t(313),v=t(311),h=t(273),E=t(291),O=t(315),j=t(318),k=t(317),C=t(92),_=t.n(C);t(314);var g=function e(a,t){return"link"===a.type?Object(m.isSamePath)(a.href,t):"category"===a.type&&a.items.some((function(a){return e(a,t)}))};function N(e){var a,t,i,l=e.item,r=e.onItemClick,o=e.collapsibl [...]
\ No newline at end of file
diff --git a/assets/js/1be78505.d3cd3e07.js b/assets/js/1be78505.d3cd3e07.js
new file mode 100644
index 0000000..22ae291
--- /dev/null
+++ b/assets/js/1be78505.d3cd3e07.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[9514,4608],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return s},kt:function(){return p}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function 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}))),n.push.appl [...]
\ No newline at end of file
diff --git a/assets/js/1c89ab3b.8caa3515.js b/assets/js/1c89ab3b.8caa3515.js
new file mode 100644
index 0000000..1c65718
--- /dev/null
+++ b/assets/js/1c89ab3b.8caa3515.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[2215],{3905:function(e,t,a){"use strict";a.d(t,{Zo:function(){return c},kt:function(){return m}});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function s(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n [...]
\ No newline at end of file
diff --git a/assets/js/1c89ab3b.9f20e2c0.js b/assets/js/1c89ab3b.9f20e2c0.js
deleted file mode 100644
index 840f976..0000000
--- a/assets/js/1c89ab3b.9f20e2c0.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[26],{270: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/1ed156ee.16d0ddaa.js b/assets/js/1ed156ee.16d0ddaa.js
deleted file mode 100644
index fd94035..0000000
--- a/assets/js/1ed156ee.16d0ddaa.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[27],{270:function(e,n,t){"use strict";t.d(n,"a",(function(){return u})),t.d(n,"b",(function(){return h}));var a=t(0),i=t.n(a);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function r(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})) [...]
\ No newline at end of file
diff --git a/assets/js/1ed156ee.950b212d.js b/assets/js/1ed156ee.950b212d.js
new file mode 100644
index 0000000..03dc82a
--- /dev/null
+++ b/assets/js/1ed156ee.950b212d.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[8680],{3905:function(e,n,t){"use strict";t.d(n,{Zo:function(){return c},kt:function(){return h}});var a=t(7294);function i(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a [...]
\ No newline at end of file
diff --git a/assets/js/1fb562de.b634ffff.js b/assets/js/1fb562de.b634ffff.js
new file mode 100644
index 0000000..f9efb42
--- /dev/null
+++ b/assets/js/1fb562de.b634ffff.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[3194],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return p},kt:function(){return m}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r [...]
\ No newline at end of file
diff --git a/assets/js/1fb562de.c34a8b98.js b/assets/js/1fb562de.c34a8b98.js
deleted file mode 100644
index 8c0580e..0000000
--- a/assets/js/1fb562de.c34a8b98.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[28],{270:function(e,t,n){"use strict";n.d(t,"a",(function(){return u})),n.d(t,"b",(function(){return m}));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 l(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/2.f6d304f2.js b/assets/js/2.f6d304f2.js
deleted file mode 100644
index ce6cb3a..0000000
--- a/assets/js/2.f6d304f2.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/*! For license information please see 2.f6d304f2.js.LICENSE.txt */
-(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{274:function(e,t,a){"use strict";var n=a(0),r=a.n(n),c=a(272),o=a(64),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(271),u=a(30 [...]
\ No newline at end of file
diff --git a/assets/js/2.f6d304f2.js.LICENSE.txt b/assets/js/2.f6d304f2.js.LICENSE.txt
deleted file mode 100644
index bae6dd8..0000000
--- a/assets/js/2.f6d304f2.js.LICENSE.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-/*!
-  Copyright (c) 2017 Jed Watson.
-  Licensed under the MIT License (MIT), see
-  http://jedwatson.github.io/classnames
-*/
diff --git a/assets/js/200.39dd084b.js b/assets/js/200.39dd084b.js
deleted file mode 100644
index 422d09a..0000000
--- a/assets/js/200.39dd084b.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[200],{370: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:fun [...]
\ No newline at end of file
diff --git a/assets/js/201.69eef08d.js b/assets/js/201.69eef08d.js
deleted file mode 100644
index e81f233..0000000
--- a/assets/js/201.69eef08d.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[201],{369:function(n,i,o){"use strict";o.r(i);var r=o(63);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/202.351a4f3f.js b/assets/js/202.351a4f3f.js
deleted file mode 100644
index 6994b19..0000000
--- a/assets/js/202.351a4f3f.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[202],{302:function(e,t,a){"use strict";a.r(t);var n=a(0),o=a.n(n),l=a(274);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 y [...]
\ No newline at end of file
diff --git a/assets/js/203.cc7dd385.js b/assets/js/203.cc7dd385.js
deleted file mode 100644
index 5b43fa9..0000000
--- a/assets/js/203.cc7dd385.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[203],{371:function(t,e,n){"use strict";var s=n(3),a=n(8),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.appe [...]
\ No newline at end of file
diff --git a/assets/js/210.29d77d85.js b/assets/js/210.29d77d85.js
new file mode 100644
index 0000000..654655e
--- /dev/null
+++ b/assets/js/210.29d77d85.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[210],{210:function(e,t,n){"use strict";n.d(t,{Z:function(){return Z}});var o=n(2122),r=n(7294),s=n(6010),l={plain:{backgroundColor:"#2a2734",color:"#9a86fd"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#6c6783"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#e09142"}},{types:["property","function"],style:{color:"#9a86fd"}},{types:["tag-id","selector","atrule [...]
\ No newline at end of file
diff --git a/assets/js/25b7c3f2.3be4f1a5.js b/assets/js/25b7c3f2.3be4f1a5.js
new file mode 100644
index 0000000..4a09e17
--- /dev/null
+++ b/assets/js/25b7c3f2.3be4f1a5.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[8357],{7046:function(e,t,r){"use strict";var n=r(7294);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, [...]
\ No newline at end of file
diff --git a/assets/js/25b7c3f2.d77b68fe.js b/assets/js/25b7c3f2.d77b68fe.js
deleted file mode 100644
index e9dde2d..0000000
--- a/assets/js/25b7c3f2.d77b68fe.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[29],{284: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/25fbf809.353e8ea1.js b/assets/js/25fbf809.353e8ea1.js
deleted file mode 100644
index 469c1b1..0000000
--- a/assets/js/25fbf809.353e8ea1.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[30],{270:function(e,t,n){"use strict";n.d(t,"a",(function(){return p})),n.d(t,"b",(function(){return m}));var r=n(0),a=n.n(r);function l(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/25fbf809.ca2b5f98.js b/assets/js/25fbf809.ca2b5f98.js
new file mode 100644
index 0000000..a898ba1
--- /dev/null
+++ b/assets/js/25fbf809.ca2b5f98.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[1150],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return d},kt:function(){return c}});var r=n(7294);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 l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r [...]
\ No newline at end of file
diff --git a/assets/js/264a218f.0cfde3ba.js b/assets/js/264a218f.0cfde3ba.js
deleted file mode 100644
index 46e0434..0000000
--- a/assets/js/264a218f.0cfde3ba.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[31],{270:function(e,t,a){"use strict";a.d(t,"a",(function(){return b})),a.d(t,"b",(function(){return f}));var r=a(0),n=a.n(r);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(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/264a218f.2d244c6a.js b/assets/js/264a218f.2d244c6a.js
new file mode 100644
index 0000000..8ed501b
--- /dev/null
+++ b/assets/js/264a218f.2d244c6a.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[4523],{3905:function(e,t,a){"use strict";a.d(t,{Zo:function(){return c},kt:function(){return f}});var r=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r [...]
\ No newline at end of file
diff --git a/assets/js/27858f29.5b44f0ec.js b/assets/js/27858f29.5b44f0ec.js
new file mode 100644
index 0000000..0973993
--- /dev/null
+++ b/assets/js/27858f29.5b44f0ec.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[9813],{3905:function(e,n,t){"use strict";t.d(n,{Zo:function(){return l},kt:function(){return g}});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function s(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a [...]
\ No newline at end of file
diff --git a/assets/js/27858f29.e6a5c3ae.js b/assets/js/27858f29.e6a5c3ae.js
deleted file mode 100644
index d0616cd..0000000
--- a/assets/js/27858f29.e6a5c3ae.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[32],{100:function(e,n,t){"use strict";t.r(n),t.d(n,"frontMatter",(function(){return c})),t.d(n,"metadata",(function(){return i})),t.d(n,"toc",(function(){return o})),t.d(n,"default",(function(){return l}));var a=t(3),r=t(8),s=(t(0),t(270)),c={title:"HMAC Generate Signature Examples"},i={unversionedId:"examples/plugins-hmac-auth-generate-signature",id:"examples/plugins-hmac-auth-generate-signature",isDocsHomePage:!1,title:"HMAC Generate [...]
\ No newline at end of file
diff --git a/assets/js/2a2f078e.2ac72e61.js b/assets/js/2a2f078e.2ac72e61.js
new file mode 100644
index 0000000..295831f
--- /dev/null
+++ b/assets/js/2a2f078e.2ac72e61.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[4271],{3905:function(t,e,n){"use strict";n.d(e,{Zo:function(){return m},kt:function(){return g}});var a=n(7294);function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,a [...]
\ No newline at end of file
diff --git a/assets/js/2a2f078e.5702dd48.js b/assets/js/2a2f078e.5702dd48.js
deleted file mode 100644
index ce3eadd..0000000
--- a/assets/js/2a2f078e.5702dd48.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[33],{101:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return b})),n.d(t,"metadata",(function(){return i})),n.d(t,"toc",(function(){return c})),n.d(t,"default",(function(){return p}));var a=n(3),r=n(8),l=(n(0),n(270)),b={title:"http-logger"},i={unversionedId:"plugins/http-logger",id:"plugins/http-logger",isDocsHomePage:!1,title:"http-logger",description:"\x3c!--",source:"@site/docs/apisix/plugins/http-logger.md",s [...]
\ No newline at end of file
diff --git a/assets/js/2b03a116.e4b3b757.js b/assets/js/2b03a116.e4b3b757.js
deleted file mode 100644
index 2123d0e..0000000
--- a/assets/js/2b03a116.e4b3b757.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[34],{102:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return c})),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(8),i=(n(0),n(270)),c={title:"Global rule"},o={unversionedId:"architecture-design/global-rule",id:"architecture-design/global-rule",isDocsHomePage:!1,title:"Global rule",description:"\x3c!--",source:"@site/docs/apisix/a [...]
\ No newline at end of file
diff --git a/assets/js/2b03a116.e9649549.js b/assets/js/2b03a116.e9649549.js
new file mode 100644
index 0000000..c61c3d7
--- /dev/null
+++ b/assets/js/2b03a116.e9649549.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[1604],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return p},kt:function(){return f}});var n=r(7294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n [...]
\ No newline at end of file
diff --git a/assets/js/2ceea113.302b6ff7.js b/assets/js/2ceea113.302b6ff7.js
new file mode 100644
index 0000000..9c79891
--- /dev/null
+++ b/assets/js/2ceea113.302b6ff7.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[998],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return c},kt:function(){return g}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a) [...]
\ No newline at end of file
diff --git a/assets/js/2ceea113.ba996d5c.js b/assets/js/2ceea113.ba996d5c.js
deleted file mode 100644
index 00b2fa0..0000000
--- a/assets/js/2ceea113.ba996d5c.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[35],{103:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return o})),n.d(t,"metadata",(function(){return s})),n.d(t,"toc",(function(){return c})),n.d(t,"default",(function(){return p}));var a=n(3),r=n(8),i=(n(0),n(270)),o={title:"Traffic Split in Apache APISIX Ingress Controller",author:"Chao Zhang",authorURL:"https://github.com/tokers",authorImageURL:"https://avatars.githubusercontent.com/u/10428333?s=460&u=f48ef50 [...]
\ No newline at end of file
diff --git a/assets/js/2d8fe9ee.406a866d.js b/assets/js/2d8fe9ee.406a866d.js
deleted file mode 100644
index fb8f98e..0000000
--- a/assets/js/2d8fe9ee.406a866d.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[36],{104:function(e){e.exports=JSON.parse('{"title":"Recent posts","items":[{"title":"Traffic Split in Apache APISIX Ingress Controller","permalink":"/blog/2021/03/27/traffic-split-in-apache-apisix-ingress-controller"},{"title":"Get Front-End Test Coverage with Cypress","permalink":"/blog/2021/03/02/get-front-end-test-coverage-with-cypress"},{"title":"Install Apache APISIX from Helm Charts","permalink":"/blog/2021/02/26/install-apache- [...]
\ No newline at end of file
diff --git a/assets/js/2d8fe9ee.daa4b692.js b/assets/js/2d8fe9ee.daa4b692.js
new file mode 100644
index 0000000..b029ef4
--- /dev/null
+++ b/assets/js/2d8fe9ee.daa4b692.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[8898],{6353:function(e){"use strict";e.exports=JSON.parse('{"title":"Recent posts","items":[{"title":"Traffic Split in Apache APISIX Ingress Controller","permalink":"/blog/2021/03/27/traffic-split-in-apache-apisix-ingress-controller"},{"title":"Get Front-End Test Coverage with Cypress","permalink":"/blog/2021/03/02/get-front-end-test-coverage-with-cypress"},{"title":"Install Apache APISIX from Helm Charts","permalink":"/blog/2021/02/26/ins [...]
\ No newline at end of file
diff --git a/assets/js/2f1ee7b9.6e622c50.js b/assets/js/2f1ee7b9.6e622c50.js
new file mode 100644
index 0000000..8d9ef88
--- /dev/null
+++ b/assets/js/2f1ee7b9.6e622c50.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[8685],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return s},kt:function(){return c}});var r=n(7294);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 l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r [...]
\ No newline at end of file
diff --git a/assets/js/2f1ee7b9.906a56f1.js b/assets/js/2f1ee7b9.906a56f1.js
deleted file mode 100644
index 131a42d..0000000
--- a/assets/js/2f1ee7b9.906a56f1.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[37],{105:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return i})),n.d(t,"metadata",(function(){return o})),n.d(t,"toc",(function(){return b})),n.d(t,"default",(function(){return p}));var r=n(3),a=n(8),l=(n(0),n(270)),i={title:"Router radixtree"},o={unversionedId:"router-radixtree",id:"router-radixtree",isDocsHomePage:!1,title:"Router radixtree",description:"\x3c!--",source:"@site/docs/apisix/router-radixtree.md", [...]
\ No newline at end of file
diff --git a/assets/js/2f7e5bad.9ba110d3.js b/assets/js/2f7e5bad.9ba110d3.js
new file mode 100644
index 0000000..595c5d0
--- /dev/null
+++ b/assets/js/2f7e5bad.9ba110d3.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[4335],{3905:function(t,e,n){"use strict";n.d(e,{Zo:function(){return m},kt:function(){return c}});var r=n(7294);function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r [...]
\ No newline at end of file
diff --git a/assets/js/2f7e5bad.e6021b10.js b/assets/js/2f7e5bad.e6021b10.js
deleted file mode 100644
index e11e560..0000000
--- a/assets/js/2f7e5bad.e6021b10.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[38],{106: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 b})),n.d(t,"default",(function(){return c}));var r=n(3),a=n(8),l=(n(0),n(270)),o={title:"mqtt-proxy"},i={unversionedId:"plugins/mqtt-proxy",id:"plugins/mqtt-proxy",isDocsHomePage:!1,title:"mqtt-proxy",description:"\x3c!--",source:"@site/docs/apisix/plugins/mqtt-proxy.md",slug:" [...]
\ No newline at end of file
diff --git a/assets/js/3.0e53f923.js b/assets/js/3.0e53f923.js
deleted file mode 100644
index d07be8b..0000000
--- a/assets/js/3.0e53f923.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{279:function(e,t,r){"use strict";(function(e){var n=r(26),i=r(0),a=r.n(i),o=r(347),s=r.n(o),c=r(348),l=r(349),u=r(363),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/31fa6cf3.344a13de.js b/assets/js/31fa6cf3.344a13de.js
deleted file mode 100644
index be1f15e..0000000
--- a/assets/js/31fa6cf3.344a13de.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[39],{107:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return l})),n.d(t,"metadata",(function(){return o})),n.d(t,"toc",(function(){return c})),n.d(t,"default",(function(){return u}));var a=n(3),r=n(8),i=(n(0),n(270)),l={title:"node-status"},o={unversionedId:"plugins/node-status",id:"plugins/node-status",isDocsHomePage:!1,title:"node-status",description:"\x3c!--",source:"@site/docs/apisix/plugins/node-status.md",s [...]
\ No newline at end of file
diff --git a/assets/js/31fa6cf3.458a7064.js b/assets/js/31fa6cf3.458a7064.js
new file mode 100644
index 0000000..f3f7e44
--- /dev/null
+++ b/assets/js/31fa6cf3.458a7064.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[3394],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return p},kt:function(){return m}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a [...]
\ No newline at end of file
diff --git a/assets/js/32e589c1.c077b6e4.js b/assets/js/32e589c1.c077b6e4.js
new file mode 100644
index 0000000..590e287
--- /dev/null
+++ b/assets/js/32e589c1.c077b6e4.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[5882],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return u},kt:function(){return h}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a [...]
\ No newline at end of file
diff --git a/assets/js/32e589c1.d01a6b37.js b/assets/js/32e589c1.d01a6b37.js
deleted file mode 100644
index b5761ff..0000000
--- a/assets/js/32e589c1.d01a6b37.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[40],{108:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return o})),n.d(t,"metadata",(function(){return c})),n.d(t,"toc",(function(){return s})),n.d(t,"default",(function(){return p}));var a=n(3),r=n(8),i=(n(0),n(270)),o={title:"Getting Started"},c={unversionedId:"getting-started",id:"getting-started",isDocsHomePage:!1,title:"Getting Started",description:"\x3c!--",source:"@site/docs/apisix/getting-started.md",slug: [...]
\ No newline at end of file
diff --git a/assets/js/3316b9c0.4579611c.js b/assets/js/3316b9c0.4579611c.js
new file mode 100644
index 0000000..8d79218
--- /dev/null
+++ b/assets/js/3316b9c0.4579611c.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[3175],{3905:function(e,t,a){"use strict";a.d(t,{Zo:function(){return l},kt:function(){return u}});var r=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r [...]
\ No newline at end of file
diff --git a/assets/js/3316b9c0.d50289e2.js b/assets/js/3316b9c0.d50289e2.js
deleted file mode 100644
index 8324aba..0000000
--- a/assets/js/3316b9c0.d50289e2.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[41],{109:function(e,t,a){"use strict";a.r(t),a.d(t,"frontMatter",(function(){return i})),a.d(t,"metadata",(function(){return c})),a.d(t,"toc",(function(){return s})),a.d(t,"default",(function(){return d}));var n=a(3),r=a(8),o=(a(0),a(270)),i={title:"FAQ"},c={unversionedId:"FAQ",id:"FAQ",isDocsHomePage:!1,title:"FAQ",description:"\x3c!--",source:"@site/docs/apisix-dashboard/FAQ.md",slug:"/FAQ",permalink:"/docs/dashboard/FAQ",editUrl:"ht [...]
\ No newline at end of file
diff --git a/assets/js/3393d167.84cd5a3e.js b/assets/js/3393d167.84cd5a3e.js
new file mode 100644
index 0000000..c23c2fa
--- /dev/null
+++ b/assets/js/3393d167.84cd5a3e.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[7314],{3905:function(e,r,t){"use strict";t.d(r,{Zo:function(){return l},kt:function(){return O}});var n=t(7294);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function c(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}))),t.push.apply(t,n [...]
\ No newline at end of file
diff --git a/assets/js/3393d167.f5467fce.js b/assets/js/3393d167.f5467fce.js
deleted file mode 100644
index f62b9a3..0000000
--- a/assets/js/3393d167.f5467fce.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[42],{110: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 s}));var n=r(3),o=r(8),a=(r(0),r(270)),c={},i={unversionedId:"IGNORE_DOC",id:"IGNORE_DOC",isDocsHomePage:!1,title:"IGNORE_DOC",description:"IGNORE_DOC",source:"@site/docs/apisix-dashboard/IGNORE_DOC.md",slug:"/IGNORE_DOC",permalink:"/docs [...]
\ No newline at end of file
diff --git a/assets/js/358566b4.40967a68.js b/assets/js/358566b4.40967a68.js
deleted file mode 100644
index 27b62a5..0000000
--- a/assets/js/358566b4.40967a68.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[43],{111:function(e,t,r){"use strict";r.r(t),r.d(t,"frontMatter",(function(){return a})),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(8),c=(r(0),r(270)),a={},i={unversionedId:"IGNORE_DOC",id:"IGNORE_DOC",isDocsHomePage:!1,title:"IGNORE_DOC",description:"IGNORE_DOC",source:"@site/docs/apisix-docker/IGNORE_DOC.md",slug:"/IGNORE_DOC",permalink:"/docs/do [...]
\ No newline at end of file
diff --git a/assets/js/358566b4.b699a944.js b/assets/js/358566b4.b699a944.js
new file mode 100644
index 0000000..e66fe2c
--- /dev/null
+++ b/assets/js/358566b4.b699a944.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[3553],{3905:function(e,r,t){"use strict";t.d(r,{Zo:function(){return l},kt:function(){return O}});var n=t(7294);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function c(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}))),t.push.apply(t,n [...]
\ No newline at end of file
diff --git a/assets/js/3763.744c9569.js b/assets/js/3763.744c9569.js
new file mode 100644
index 0000000..7b2c401
--- /dev/null
+++ b/assets/js/3763.744c9569.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[3763],{3763: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:funct [...]
\ No newline at end of file
diff --git a/assets/js/37e3b3ea.c1d82963.js b/assets/js/37e3b3ea.c1d82963.js
new file mode 100644
index 0000000..e97fc43
--- /dev/null
+++ b/assets/js/37e3b3ea.c1d82963.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[3976],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return f},kt:function(){return m}});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n [...]
\ No newline at end of file
diff --git a/assets/js/37e3b3ea.fda28e6d.js b/assets/js/37e3b3ea.fda28e6d.js
deleted file mode 100644
index c3a604a..0000000
--- a/assets/js/37e3b3ea.fda28e6d.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[44],{112:function(e,t,r){"use strict";r.r(t),r.d(t,"frontMatter",(function(){return c})),r.d(t,"metadata",(function(){return u})),r.d(t,"toc",(function(){return i})),r.d(t,"default",(function(){return f}));var n=r(3),o=r(8),a=(r(0),r(270)),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/383740fd.20e1d317.js b/assets/js/383740fd.20e1d317.js
deleted file mode 100644
index c28ade7..0000000
--- a/assets/js/383740fd.20e1d317.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[45],{113:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return l})),n.d(t,"metadata",(function(){return b})),n.d(t,"toc",(function(){return p})),n.d(t,"default",(function(){return c}));var r=n(3),a=n(8),i=(n(0),n(270)),l={title:"proxy-rewrite"},b={unversionedId:"plugins/proxy-rewrite",id:"plugins/proxy-rewrite",isDocsHomePage:!1,title:"proxy-rewrite",description:"\x3c!--",source:"@site/docs/apisix/plugins/proxy-rew [...]
\ No newline at end of file
diff --git a/assets/js/383740fd.93f22926.js b/assets/js/383740fd.93f22926.js
new file mode 100644
index 0000000..810ff17
--- /dev/null
+++ b/assets/js/383740fd.93f22926.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[2299],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return u},kt:function(){return c}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r [...]
\ No newline at end of file
diff --git a/assets/js/3a136aea.84bb341d.js b/assets/js/3a136aea.84bb341d.js
deleted file mode 100644
index dc0424b..0000000
--- a/assets/js/3a136aea.84bb341d.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[46],{114:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return l})),n.d(t,"metadata",(function(){return c})),n.d(t,"toc",(function(){return b})),n.d(t,"default",(function(){return p}));var r=n(3),a=n(8),i=(n(0),n(270)),l={title:"referer-restriction"},c={unversionedId:"plugins/referer-restriction",id:"plugins/referer-restriction",isDocsHomePage:!1,title:"referer-restriction",description:"\x3c!--",source:"@site/docs/ [...]
\ No newline at end of file
diff --git a/assets/js/3a136aea.d69a8820.js b/assets/js/3a136aea.d69a8820.js
new file mode 100644
index 0000000..6069424
--- /dev/null
+++ b/assets/js/3a136aea.d69a8820.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[3838],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return u},kt:function(){return d}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r [...]
\ No newline at end of file
diff --git a/assets/js/3ace1223.cc5b204d.js b/assets/js/3ace1223.cc5b204d.js
new file mode 100644
index 0000000..adbbf47
--- /dev/null
+++ b/assets/js/3ace1223.cc5b204d.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[7676],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return u},kt:function(){return m}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a [...]
\ No newline at end of file
diff --git a/assets/js/3ace1223.cf9f1639.js b/assets/js/3ace1223.cf9f1639.js
deleted file mode 100644
index e09fa10..0000000
--- a/assets/js/3ace1223.cf9f1639.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[47],{115:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return s})),n.d(t,"metadata",(function(){return c})),n.d(t,"toc",(function(){return p})),n.d(t,"default",(function(){return l}));var a=n(3),r=n(8),i=(n(0),n(270)),s={title:"prometheus"},c={unversionedId:"plugins/prometheus",id:"plugins/prometheus",isDocsHomePage:!1,title:"prometheus",description:"\x3c!--",source:"@site/docs/apisix/plugins/prometheus.md",slug:" [...]
\ No newline at end of file
diff --git a/assets/js/3dc9f306.0d426e66.js b/assets/js/3dc9f306.0d426e66.js
new file mode 100644
index 0000000..f6475af
--- /dev/null
+++ b/assets/js/3dc9f306.0d426e66.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[8393],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return s},kt:function(){return f}});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r [...]
\ No newline at end of file
diff --git a/assets/js/3dc9f306.c58ac029.js b/assets/js/3dc9f306.c58ac029.js
deleted file mode 100644
index 25f88d1..0000000
--- a/assets/js/3dc9f306.c58ac029.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[48],{116: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 u})),n.d(t,"default",(function(){return l}));var r=n(3),o=n(8),a=(n(0),n(270)),i={id:"2fa",title:"2FA"},c={unversionedId:"2fa",id:"2fa",isDocsHomePage:!1,title:"2FA",description:"Two-factor authentication(2FA)",source:"@site/docs/general/2fa.md",slug:"/2fa",permalink:"/docs/gen [...]
\ No newline at end of file
diff --git a/assets/js/3f7f6f74.0593cfa8.js b/assets/js/3f7f6f74.0593cfa8.js
deleted file mode 100644
index 72fd136..0000000
--- a/assets/js/3f7f6f74.0593cfa8.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[49],{117:function(e,r,t){"use strict";t.r(r),t.d(r,"frontMatter",(function(){return i})),t.d(r,"metadata",(function(){return c})),t.d(r,"toc",(function(){return l})),t.d(r,"default",(function(){return s}));var n=t(3),a=t(8),o=(t(0),t(270)),i={title:"Release Apache APISIX Ingress Controller 0.5"},c={permalink:"/events/2021/04/13/release-apisix-ingress-controller-0.5",source:"@site/events/2021-04-13-release-apisix-ingress-controller-0.5. [...]
\ No newline at end of file
diff --git a/assets/js/3f7f6f74.62267c2f.js b/assets/js/3f7f6f74.62267c2f.js
new file mode 100644
index 0000000..a1b0007
--- /dev/null
+++ b/assets/js/3f7f6f74.62267c2f.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[9144],{3905:function(e,r,t){"use strict";t.d(r,{Zo:function(){return s},kt:function(){return m}});var n=t(7294);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(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}))),t.push.apply(t,n [...]
\ No newline at end of file
diff --git a/assets/js/4.bde55da2.js b/assets/js/4.bde55da2.js
deleted file mode 100644
index 758d91a..0000000
--- a/assets/js/4.bde55da2.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[4],{270: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/40fb2fae.6b6271fc.js b/assets/js/40fb2fae.6b6271fc.js
deleted file mode 100644
index 8d86960..0000000
--- a/assets/js/40fb2fae.6b6271fc.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[50],{118:function(e,t,r){"use strict";r.r(t),r.d(t,"frontMatter",(function(){return a})),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(8),c=(r(0),r(270)),a={},i={unversionedId:"IGNORE_DOC",id:"IGNORE_DOC",isDocsHomePage:!1,title:"IGNORE_DOC",description:"IGNORE_DOC",source:"@site/docs/apisix-helm-chart/IGNORE_DOC.md",slug:"/IGNORE_DOC",permalink:"/doc [...]
\ No newline at end of file
diff --git a/assets/js/40fb2fae.adc9e234.js b/assets/js/40fb2fae.adc9e234.js
new file mode 100644
index 0000000..b4c5ee5
--- /dev/null
+++ b/assets/js/40fb2fae.adc9e234.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[2547],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return l},kt:function(){return m}});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n [...]
\ No newline at end of file
diff --git a/assets/js/41a31a3f.3a596c6c.js b/assets/js/41a31a3f.3a596c6c.js
deleted file mode 100644
index d84127c..0000000
--- a/assets/js/41a31a3f.3a596c6c.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[51],{119:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return o})),n.d(t,"metadata",(function(){return c})),n.d(t,"toc",(function(){return s})),n.d(t,"default",(function(){return p}));var r=n(3),i=n(8),a=(n(0),n(270)),o={title:"Integration service discovery registry"},c={unversionedId:"discovery",id:"discovery",isDocsHomePage:!1,title:"Integration service discovery registry",description:"\x3c!--",source:"@site/doc [...]
\ No newline at end of file
diff --git a/assets/js/41a31a3f.dcde19c0.js b/assets/js/41a31a3f.dcde19c0.js
new file mode 100644
index 0000000..a4722f0
--- /dev/null
+++ b/assets/js/41a31a3f.dcde19c0.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[1888],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return u},kt:function(){return m}});var r=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r [...]
\ No newline at end of file
diff --git a/assets/js/41b4926b.0df4d5e5.js b/assets/js/41b4926b.0df4d5e5.js
deleted file mode 100644
index efcb4ca..0000000
--- a/assets/js/41b4926b.0df4d5e5.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[52],{120: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 u}));var r=a(3),i=a(8),n=(a(0),a(270)),p={title:"Release Apache APISIX 2.3"},c={permalink:"/events/2021/02/09/release-apache-apisix-2.3",source:"@site/events/2021-02-09-release-apache-apisix-2.3.md",description:"Change",date:"2021-02-09T0 [...]
\ No newline at end of file
diff --git a/assets/js/41b4926b.4ca3b210.js b/assets/js/41b4926b.4ca3b210.js
new file mode 100644
index 0000000..bebcd72
--- /dev/null
+++ b/assets/js/41b4926b.4ca3b210.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[5984],{3905:function(e,t,a){"use strict";a.d(t,{Zo:function(){return c},kt:function(){return m}});var r=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r [...]
\ No newline at end of file
diff --git a/assets/js/43aea6af.046f84a4.js b/assets/js/43aea6af.046f84a4.js
new file mode 100644
index 0000000..ccc8437
--- /dev/null
+++ b/assets/js/43aea6af.046f84a4.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[6789],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return p},kt:function(){return d}});var r=n(7294);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 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}))),n.push.apply(n,r [...]
\ No newline at end of file
diff --git a/assets/js/43aea6af.6506be0d.js b/assets/js/43aea6af.6506be0d.js
deleted file mode 100644
index 18d4d03..0000000
--- a/assets/js/43aea6af.6506be0d.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[53],{121:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return i})),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(8),s=(n(0),n(270)),i={title:"Install Ingress APISIX on Google Cloud GKE"},o={unversionedId:"deployments/gke",id:"deployments/gke",isDocsHomePage:!1,title:"Install Ingress APISIX on Google Cloud GKE",description:"\x3c!- [...]
\ No newline at end of file
diff --git a/assets/js/4608.38cf846f.js b/assets/js/4608.38cf846f.js
new file mode 100644
index 0000000..0d7eaaf
--- /dev/null
+++ b/assets/js/4608.38cf846f.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[4608],{4608:function(e,t,n){"use strict";n.r(t);var a=n(7294),o=n(5888),l=n(4973);t.default=function(){return a.createElement(o.Z,{title:"Page Not Found"},a.createElement("main",{className:"container margin-vert--xl"},a.createElement("div",{className:"row"},a.createElement("div",{className:"col col--6 col--offset-3"},a.createElement("h1",{className:"hero__title"},a.createElement(l.Z,{id:"theme.NotFound.title",description:"The title of the  [...]
\ No newline at end of file
diff --git a/assets/js/47e0bf55.3ff4ff52.js b/assets/js/47e0bf55.3ff4ff52.js
deleted file mode 100644
index 4e9b4ed..0000000
--- a/assets/js/47e0bf55.3ff4ff52.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[54],{122: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(8),s=(n(0),n(270)),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/47e0bf55.9f81139a.js b/assets/js/47e0bf55.9f81139a.js
new file mode 100644
index 0000000..cd4ad96
--- /dev/null
+++ b/assets/js/47e0bf55.9f81139a.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[3064],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return u},kt:function(){return d}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function 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}))),n.push.apply(n,a [...]
\ No newline at end of file
diff --git a/assets/js/47f8a22a.583c2a1c.js b/assets/js/47f8a22a.583c2a1c.js
deleted file mode 100644
index 2fdd73c..0000000
--- a/assets/js/47f8a22a.583c2a1c.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[55,119],{123:function(e,t,n){"use strict";n.r(t);var r=n(3),a=n(0),o=n.n(a),i=n(279),l=n(274),s=n(289),c=n(57),p=n(17),u=i.a.div.withConfig({displayName:"downloads__DownloadsPage",componentId:"hda3kd-0"})(["max-width:var(--ifm-container-width);margin:0 auto;padding:2rem var(--ifm-spacing-horizontal);width:100%;"]),d=i.a.h1.withConfig({displayName:"downloads__PageTitle",componentId:"hda3kd-1"})(["margin-top:2rem;font-size:3rem;font-weig [...]
\ No newline at end of file
diff --git a/assets/js/47f8a22a.f728e89d.js b/assets/js/47f8a22a.f728e89d.js
new file mode 100644
index 0000000..8138599
--- /dev/null
+++ b/assets/js/47f8a22a.f728e89d.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[9658,8763],{8003:function(e,t,r){"use strict";var n=r(7294);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  [...]
\ No newline at end of file
diff --git a/assets/js/4842b438.9c3e0bd2.js b/assets/js/4842b438.9c3e0bd2.js
new file mode 100644
index 0000000..f4999fa
--- /dev/null
+++ b/assets/js/4842b438.9c3e0bd2.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[7213],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return u},kt:function(){return h}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a [...]
\ No newline at end of file
diff --git a/assets/js/4842b438.e2c730d5.js b/assets/js/4842b438.e2c730d5.js
deleted file mode 100644
index 7107403..0000000
--- a/assets/js/4842b438.e2c730d5.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[56],{124:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return l})),n.d(t,"metadata",(function(){return p})),n.d(t,"toc",(function(){return o})),n.d(t,"default",(function(){return b}));var a=n(3),r=n(8),i=(n(0),n(270)),l={title:"traffic-split"},p={unversionedId:"plugins/traffic-split",id:"plugins/traffic-split",isDocsHomePage:!1,title:"traffic-split",description:"\x3c!--",source:"@site/docs/apisix/plugins/traffic-s [...]
\ No newline at end of file
diff --git a/assets/js/4b0b9689.6b962daf.js b/assets/js/4b0b9689.6b962daf.js
deleted file mode 100644
index 315ca3f..0000000
--- a/assets/js/4b0b9689.6b962daf.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[57],{125:function(e,t,r){"use strict";r.r(t),r.d(t,"frontMatter",(function(){return c})),r.d(t,"metadata",(function(){return p})),r.d(t,"toc",(function(){return s})),r.d(t,"default",(function(){return l}));var n=r(3),a=r(8),o=(r(0),r(270)),c={title:"Frontend E2E"},p={unversionedId:"front-end-e2e",id:"front-end-e2e",isDocsHomePage:!1,title:"Frontend E2E",description:"\x3c!--",source:"@site/docs/apisix-dashboard/front-end-e2e.md",slug:"/ [...]
\ No newline at end of file
diff --git a/assets/js/4b0b9689.8f16b3c3.js b/assets/js/4b0b9689.8f16b3c3.js
new file mode 100644
index 0000000..7964dc5
--- /dev/null
+++ b/assets/js/4b0b9689.8f16b3c3.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[13],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return c},kt:function(){return m}});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)} [...]
\ No newline at end of file
diff --git a/assets/js/4e55a385.3a3a653b.js b/assets/js/4e55a385.3a3a653b.js
new file mode 100644
index 0000000..f927ceb
--- /dev/null
+++ b/assets/js/4e55a385.3a3a653b.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[4503],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return p},kt:function(){return h}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function 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}))),n.push.apply(n,a [...]
\ No newline at end of file
diff --git a/assets/js/4e55a385.908faebb.js b/assets/js/4e55a385.908faebb.js
deleted file mode 100644
index 23a9ad2..0000000
--- a/assets/js/4e55a385.908faebb.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[58],{126:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return i})),n.d(t,"metadata",(function(){return o})),n.d(t,"toc",(function(){return l})),n.d(t,"default",(function(){return p}));var a=n(3),r=n(8),s=(n(0),n(270)),i={title:"Install Ingress APISIX on Amazon EKS"},o={unversionedId:"deployments/aws",id:"deployments/aws",isDocsHomePage:!1,title:"Install Ingress APISIX on Amazon EKS",description:"\x3c!--",source:"@ [...]
\ No newline at end of file
diff --git a/assets/js/4eed9ed2.b47cdb5c.js b/assets/js/4eed9ed2.b47cdb5c.js
new file mode 100644
index 0000000..5ef61f7
--- /dev/null
+++ b/assets/js/4eed9ed2.b47cdb5c.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[6249],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return c},kt:function(){return m}});var a=r(7294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(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}))),r.push.apply(r,a [...]
\ No newline at end of file
diff --git a/assets/js/4eed9ed2.fa87211a.js b/assets/js/4eed9ed2.fa87211a.js
deleted file mode 100644
index f92596a..0000000
--- a/assets/js/4eed9ed2.fa87211a.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[59],{127:function(e,t,r){"use strict";r.r(t),r.d(t,"frontMatter",(function(){return c})),r.d(t,"metadata",(function(){return l})),r.d(t,"toc",(function(){return p})),r.d(t,"default",(function(){return s}));var a=r(3),n=r(8),i=(r(0),r(270)),c={title:"Release Apache APISIX Ingress Controller 0.2.0"},l={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/4f34f66f.41729270.js b/assets/js/4f34f66f.41729270.js
deleted file mode 100644
index e3fbc6d..0000000
--- a/assets/js/4f34f66f.41729270.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[60],{128: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 u}));var n=r(3),o=r(8),a=(r(0),r(270)),i={title:"Deploy with RPM"},c={unversionedId:"deploy-with-rpm",id:"deploy-with-rpm",isDocsHomePage:!1,title:"Deploy with RPM",description:"\x3c!--",source:"@site/docs/apisix-dashboard/deploy-with-rpm [...]
\ No newline at end of file
diff --git a/assets/js/4f34f66f.e6bc063a.js b/assets/js/4f34f66f.e6bc063a.js
new file mode 100644
index 0000000..405cc9b
--- /dev/null
+++ b/assets/js/4f34f66f.e6bc063a.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[3330],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return u},kt:function(){return m}});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n [...]
\ No newline at end of file
diff --git a/assets/js/4f7f961a.9b0b73dc.js b/assets/js/4f7f961a.9b0b73dc.js
new file mode 100644
index 0000000..8628a71
--- /dev/null
+++ b/assets/js/4f7f961a.9b0b73dc.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[230],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return u},kt:function(){return d}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r) [...]
\ No newline at end of file
diff --git a/assets/js/4f7f961a.c7014e08.js b/assets/js/4f7f961a.c7014e08.js
deleted file mode 100644
index e4e1b5c..0000000
--- a/assets/js/4f7f961a.c7014e08.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[61],{129: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 r=n(3),a=n(8),o=(n(0),n(270)),i={title:"Batch Processor"},c={unversionedId:"batch-processor",id:"batch-processor",isDocsHomePage:!1,title:"Batch Processor",description:"\x3c!--",source:"@site/docs/apisix/batch-processor.md",slug: [...]
\ No newline at end of file
diff --git a/assets/js/50facf8e.6fe578d3.js b/assets/js/50facf8e.6fe578d3.js
new file mode 100644
index 0000000..54738f3
--- /dev/null
+++ b/assets/js/50facf8e.6fe578d3.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[7974],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return u},kt:function(){return b}});var i=r(7294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i [...]
\ No newline at end of file
diff --git a/assets/js/50facf8e.bec7a0b7.js b/assets/js/50facf8e.bec7a0b7.js
deleted file mode 100644
index 6b276bf..0000000
--- a/assets/js/50facf8e.bec7a0b7.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[62],{130:function(e,t,r){"use strict";r.r(t),r.d(t,"frontMatter",(function(){return o})),r.d(t,"metadata",(function(){return c})),r.d(t,"toc",(function(){return s})),r.d(t,"default",(function(){return p}));var i=r(3),n=r(8),a=(r(0),r(270)),o={id:"subscribe-guide",slug:"/subscribe-guide",title:"Subscribe Guide"},c={unversionedId:"subscribe-guide",id:"subscribe-guide",isDocsHomePage:!1,title:"Subscribe Guide",description:"During the proc [...]
\ No newline at end of file
diff --git a/assets/js/514de2af.20f32562.js b/assets/js/514de2af.20f32562.js
new file mode 100644
index 0000000..9469214
--- /dev/null
+++ b/assets/js/514de2af.20f32562.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[4058],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return l},kt:function(){return m}});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n [...]
\ No newline at end of file
diff --git a/assets/js/514de2af.86d84278.js b/assets/js/514de2af.86d84278.js
deleted file mode 100644
index 2eaa869..0000000
--- a/assets/js/514de2af.86d84278.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[63],{131: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(8),a=(r(0),r(270)),c={title:"Run Ingress APISIX on Amazon EKS",author:"Chao Zhang",authorURL:"https://github.com/tokers",authorImageURL:"https://avatars0.githubusercontent.com/u/10428333?s=60&v=4"},i={permalink:"/blog/ [...]
\ No newline at end of file
diff --git a/assets/js/5256.9d9df735.js b/assets/js/5256.9d9df735.js
new file mode 100644
index 0000000..5eab8af
--- /dev/null
+++ b/assets/js/5256.9d9df735.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[5256],{5256:function(e,s,u){"use strict";u.r(s)}}]);
\ No newline at end of file
diff --git a/assets/js/5381c375.92690a1b.js b/assets/js/5381c375.92690a1b.js
new file mode 100644
index 0000000..9c5219a
--- /dev/null
+++ b/assets/js/5381c375.92690a1b.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[8128],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return p},kt:function(){return h}});var r=n(7294);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 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}))),n.push.apply(n,r [...]
\ No newline at end of file
diff --git a/assets/js/5381c375.f7a3e4d4.js b/assets/js/5381c375.f7a3e4d4.js
deleted file mode 100644
index bd03556..0000000
--- a/assets/js/5381c375.f7a3e4d4.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[64],{132: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 i})),n.d(t,"default",(function(){return p}));var r=n(3),a=n(8),c=(n(0),n(270)),s={title:"Benchmark"},o={unversionedId:"benchmark",id:"benchmark",isDocsHomePage:!1,title:"Benchmark",description:"\x3c!--",source:"@site/docs/apisix/benchmark.md",slug:"/benchmark",permalink:"/docs/ [...]
\ No newline at end of file
diff --git a/assets/js/5426aede.c7e1c799.js b/assets/js/5426aede.c7e1c799.js
new file mode 100644
index 0000000..7d1b66a
--- /dev/null
+++ b/assets/js/5426aede.c7e1c799.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[1584],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return l},kt:function(){return m}});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n [...]
\ No newline at end of file
diff --git a/assets/js/5426aede.ee5d274b.js b/assets/js/5426aede.ee5d274b.js
deleted file mode 100644
index 6d96efa..0000000
--- a/assets/js/5426aede.ee5d274b.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[65],{133: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 p})),r.d(t,"default",(function(){return l}));var n=r(3),o=r(8),a=(r(0),r(270)),c={title:"Traffic Split in Apache APISIX Ingress Controller",author:"Chao Zhang",authorURL:"https://github.com/tokers",authorImageURL:"https://avatars.githubusercontent.com/u/10428333?s=460&u=f48ef50 [...]
\ No newline at end of file
diff --git a/assets/js/5486.d7f23542.js b/assets/js/5486.d7f23542.js
new file mode 100644
index 0000000..afcc96c
--- /dev/null
+++ b/assets/js/5486.d7f23542.js
@@ -0,0 +1,2 @@
+/*! For license information please see 5486.d7f23542.js.LICENSE.txt */
+(self.webpackChunk=self.webpackChunk||[]).push([[5486],{9767:function(e,t,n){"use strict";n.r(t),n.d(t,{__extends:function(){return o},__assign:function(){return u},__rest:function(){return i},__decorate:function(){return a},__param:function(){return c},__metadata:function(){return s},__awaiter:function(){return l},__generator:function(){return f},__createBinding:function(){return d},__exportStar:function(){return v},__values:function(){return p},__read:function(){return g},__spread:func [...]
\ No newline at end of file
diff --git a/assets/js/5486.d7f23542.js.LICENSE.txt b/assets/js/5486.d7f23542.js.LICENSE.txt
new file mode 100644
index 0000000..c18ab1d
--- /dev/null
+++ b/assets/js/5486.d7f23542.js.LICENSE.txt
@@ -0,0 +1,14 @@
+/*! *****************************************************************************
+Copyright (c) Microsoft Corporation.
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+***************************************************************************** */
diff --git a/assets/js/562da56c.308a67ce.js b/assets/js/562da56c.308a67ce.js
new file mode 100644
index 0000000..e1d57b3
--- /dev/null
+++ b/assets/js/562da56c.308a67ce.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[1094],{6289:function(e){"use strict";e.exports=JSON.parse('{"pluginId":"docs-apisix-docker","version":"current","label":"Next","isLast":true,"docsSidebars":{"docs":[{"type":"link","label":"Apache APISIX\u2122 Docker","href":"https://apisix.apache.org/docs/docker/build/"},{"collapsed":true,"type":"category","label":"Installation","items":[{"type":"link","label":"Build an image from the source codes","href":"/docs/docker/build"},{"type":"lin [...]
\ No newline at end of file
diff --git a/assets/js/562da56c.fb5b08f7.js b/assets/js/562da56c.fb5b08f7.js
deleted file mode 100644
index 754fdd9..0000000
--- a/assets/js/562da56c.fb5b08f7.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[66],{134:function(e){e.exports=JSON.parse('{"pluginId":"docs-apisix-docker","version":"current","label":"Next","isLast":true,"docsSidebars":{"docs":[{"type":"link","label":"Apache APISIX\u2122 Docker","href":"https://apisix.apache.org/docs/docker/build/"},{"collapsed":true,"type":"category","label":"Installation","items":[{"type":"link","label":"Build an image from the source codes","href":"/docs/docker/build"},{"type":"link","label":" [...]
\ No newline at end of file
diff --git a/assets/js/574dc000.bc3b9f62.js b/assets/js/574dc000.bc3b9f62.js
deleted file mode 100644
index edfc57e..0000000
--- a/assets/js/574dc000.bc3b9f62.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[67],{135:function(e){e.exports=JSON.parse('{"permalink":"/events","page":1,"postsPerPage":10,"totalPages":1,"totalCount":10,"previousPage":null,"nextPage":null,"blogDescription":"Blog","blogTitle":"Blog"}')}}]);
\ No newline at end of file
diff --git a/assets/js/574dc000.cc48faa7.js b/assets/js/574dc000.cc48faa7.js
new file mode 100644
index 0000000..5d68b12
--- /dev/null
+++ b/assets/js/574dc000.cc48faa7.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[8539],{337:function(e){"use strict";e.exports=JSON.parse('{"permalink":"/events","page":1,"postsPerPage":10,"totalPages":1,"totalCount":10,"previousPage":null,"nextPage":null,"blogDescription":"Blog","blogTitle":"Blog"}')}}]);
\ No newline at end of file
diff --git a/assets/js/579f31ee.08159244.js b/assets/js/579f31ee.08159244.js
deleted file mode 100644
index 46622a4..0000000
--- a/assets/js/579f31ee.08159244.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[68],{136:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return i})),n.d(t,"metadata",(function(){return b})),n.d(t,"toc",(function(){return c})),n.d(t,"default",(function(){return o}));var a=n(3),r=n(8),l=(n(0),n(270)),i={title:"api-breaker"},b={unversionedId:"plugins/api-breaker",id:"plugins/api-breaker",isDocsHomePage:!1,title:"api-breaker",description:"\x3c!--",source:"@site/docs/apisix/plugins/api-breaker.md",s [...]
\ No newline at end of file
diff --git a/assets/js/579f31ee.1ae92b31.js b/assets/js/579f31ee.1ae92b31.js
new file mode 100644
index 0000000..9860b0c
--- /dev/null
+++ b/assets/js/579f31ee.1ae92b31.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[4603],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return s},kt:function(){return d}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function 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}))),n.push.apply(n,a [...]
\ No newline at end of file
diff --git a/assets/js/588365fb.3846e089.js b/assets/js/588365fb.3846e089.js
deleted file mode 100644
index e83f74f..0000000
--- a/assets/js/588365fb.3846e089.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[69],{137:function(e,t,r){"use strict";r.r(t),r.d(t,"frontMatter",(function(){return l})),r.d(t,"metadata",(function(){return o})),r.d(t,"toc",(function(){return s})),r.d(t,"default",(function(){return c}));var a=r(3),n=r(8),i=(r(0),r(270)),l={title:"Release Apache APISIX Ingress Controller 0.5"},o={permalink:"/events/2021/04/13/release-apisix-ingress-controller-0.5",source:"@site/events/2021-04-13-release-apisix-ingress-controller-0.5. [...]
\ No newline at end of file
diff --git a/assets/js/588365fb.f8fe100e.js b/assets/js/588365fb.f8fe100e.js
new file mode 100644
index 0000000..df106c4
--- /dev/null
+++ b/assets/js/588365fb.f8fe100e.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[4062],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return c},kt:function(){return m}});var a=r(7294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(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}))),r.push.apply(r,a [...]
\ No newline at end of file
diff --git a/assets/js/5888.4197bf83.js b/assets/js/5888.4197bf83.js
new file mode 100644
index 0000000..eaccf32
--- /dev/null
+++ b/assets/js/5888.4197bf83.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[5888],{830:function(e,t,n){"use strict";n.d(t,{W:function(){return a}});var r=n(7294);function a(){return r.createElement("svg",{width:"20",height:"20",className:"DocSearch-Search-Icon",viewBox:"0 0 20 20"},r.createElement("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"cur [...]
\ No newline at end of file
diff --git a/assets/js/59472992.5eb3bcf1.js b/assets/js/59472992.5eb3bcf1.js
new file mode 100644
index 0000000..60e3bdd
--- /dev/null
+++ b/assets/js/59472992.5eb3bcf1.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[749],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return p},kt:function(){return h}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function 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}))),n.push.apply(n,a) [...]
\ No newline at end of file
diff --git a/assets/js/59472992.fbaee69e.js b/assets/js/59472992.fbaee69e.js
deleted file mode 100644
index 72ccebb..0000000
--- a/assets/js/59472992.fbaee69e.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[70],{138:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return i})),n.d(t,"metadata",(function(){return b})),n.d(t,"toc",(function(){return c})),n.d(t,"default",(function(){return o}));var a=n(3),r=n(8),l=(n(0),n(270)),i={title:"hmac-auth"},b={unversionedId:"plugins/hmac-auth",id:"plugins/hmac-auth",isDocsHomePage:!1,title:"hmac-auth",description:"\x3c!--",source:"@site/docs/apisix/plugins/hmac-auth.md",slug:"/plug [...]
\ No newline at end of file
diff --git a/assets/js/5aca9bfb.16d5a8bb.js b/assets/js/5aca9bfb.16d5a8bb.js
new file mode 100644
index 0000000..0f330cd
--- /dev/null
+++ b/assets/js/5aca9bfb.16d5a8bb.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[6790],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return p},kt:function(){return d}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r [...]
\ No newline at end of file
diff --git a/assets/js/5aca9bfb.49d36898.js b/assets/js/5aca9bfb.49d36898.js
deleted file mode 100644
index 8d6799a..0000000
--- a/assets/js/5aca9bfb.49d36898.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[71],{139:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return c})),n.d(t,"metadata",(function(){return i})),n.d(t,"toc",(function(){return l})),n.d(t,"default",(function(){return p}));var r=n(3),a=n(8),o=(n(0),n(270)),c={title:"Get Front-End Test Coverage with Cypress",author:"Yi Sun",authorURL:"https://github.com/LiteSun",authorImageURL:"https://avatars.githubusercontent.com/u/31329157?s=400&u=e81b4bb4db2be162c1f [...]
\ No newline at end of file
diff --git a/assets/js/5b9020fd.d2bd3312.js b/assets/js/5b9020fd.d2bd3312.js
deleted file mode 100644
index 0f2732f..0000000
--- a/assets/js/5b9020fd.d2bd3312.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[72],{140:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return i})),n.d(t,"metadata",(function(){return l})),n.d(t,"toc",(function(){return p})),n.d(t,"default",(function(){return s}));var r=n(3),a=n(8),o=(n(0),n(270)),i={title:"gRPC Proxy"},l={unversionedId:"grpc-proxy",id:"grpc-proxy",isDocsHomePage:!1,title:"gRPC Proxy",description:"\x3c!--",source:"@site/docs/apisix/grpc-proxy.md",slug:"/grpc-proxy",permalink:" [...]
\ No newline at end of file
diff --git a/assets/js/5b9020fd.f88654a6.js b/assets/js/5b9020fd.f88654a6.js
new file mode 100644
index 0000000..2499489
--- /dev/null
+++ b/assets/js/5b9020fd.f88654a6.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[4388],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return c},kt:function(){return d}});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n [...]
\ No newline at end of file
diff --git a/assets/js/5bb67ffc.7f92a67b.js b/assets/js/5bb67ffc.7f92a67b.js
deleted file mode 100644
index 193a36c..0000000
--- a/assets/js/5bb67ffc.7f92a67b.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[73],{141: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 p})),r.d(t,"default",(function(){return l}));var n=r(3),o=r(8),a=(r(0),r(270)),c={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/5bb67ffc.9cdd61d1.js b/assets/js/5bb67ffc.9cdd61d1.js
new file mode 100644
index 0000000..cde5ad8
--- /dev/null
+++ b/assets/js/5bb67ffc.9cdd61d1.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[2100],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return l},kt:function(){return m}});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n [...]
\ No newline at end of file
diff --git a/assets/js/5c21e7f7.0899fed0.js b/assets/js/5c21e7f7.0899fed0.js
deleted file mode 100644
index b76b505..0000000
--- a/assets/js/5c21e7f7.0899fed0.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[74],{142:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return a})),n.d(t,"metadata",(function(){return c})),n.d(t,"toc",(function(){return p})),n.d(t,"default",(function(){return u}));var r=n(3),i=n(8),o=(n(0),n(270)),a={title:"Plugin interceptors"},c={unversionedId:"plugin-interceptors",id:"plugin-interceptors",isDocsHomePage:!1,title:"Plugin interceptors",description:"\x3c!--",source:"@site/docs/apisix/plugin-in [...]
\ No newline at end of file
diff --git a/assets/js/5c21e7f7.52c0ae3e.js b/assets/js/5c21e7f7.52c0ae3e.js
new file mode 100644
index 0000000..01c6aca
--- /dev/null
+++ b/assets/js/5c21e7f7.52c0ae3e.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[6515],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return u},kt:function(){return m}});var r=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r [...]
\ No newline at end of file
diff --git a/assets/js/601c6eaa.1621e424.js b/assets/js/601c6eaa.1621e424.js
new file mode 100644
index 0000000..e7733e1
--- /dev/null
+++ b/assets/js/601c6eaa.1621e424.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[7117],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return l},kt:function(){return O}});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n [...]
\ No newline at end of file
diff --git a/assets/js/601c6eaa.65340863.js b/assets/js/601c6eaa.65340863.js
deleted file mode 100644
index 640aac2..0000000
--- a/assets/js/601c6eaa.65340863.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[75],{143: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(8),a=(r(0),r(270)),c={},i={unversionedId:"IGNORE_DOC",id:"IGNORE_DOC",isDocsHomePage:!1,title:"IGNORE_DOC",description:"IGNORE_DOC",source:"@site/docs/apisix/IGNORE_DOC.md",slug:"/IGNORE_DOC",permalink:"/docs/apisix/IG [...]
\ No newline at end of file
diff --git a/assets/js/601cd3be.705d88a9.js b/assets/js/601cd3be.705d88a9.js
deleted file mode 100644
index 59ca45a..0000000
--- a/assets/js/601cd3be.705d88a9.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[76],{144:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return b})),n.d(t,"metadata",(function(){return i})),n.d(t,"toc",(function(){return u})),n.d(t,"default",(function(){return p}));var a=n(3),r=n(8),l=(n(0),n(270)),b={title:"dubbo-proxy"},i={unversionedId:"plugins/dubbo-proxy",id:"plugins/dubbo-proxy",isDocsHomePage:!1,title:"dubbo-proxy",description:"\x3c!--",source:"@site/docs/apisix/plugins/dubbo-proxy.md",s [...]
\ No newline at end of file
diff --git a/assets/js/601cd3be.ba22cf70.js b/assets/js/601cd3be.ba22cf70.js
new file mode 100644
index 0000000..b4c52be
--- /dev/null
+++ b/assets/js/601cd3be.ba22cf70.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[5224],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return d},kt:function(){return c}});var r=n(7294);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 l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r [...]
\ No newline at end of file
diff --git a/assets/js/63468b30.3ef9d276.js b/assets/js/63468b30.3ef9d276.js
deleted file mode 100644
index e4ea171..0000000
--- a/assets/js/63468b30.3ef9d276.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[77],{145:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return l})),n.d(t,"metadata",(function(){return u})),n.d(t,"toc",(function(){return b})),n.d(t,"default",(function(){return o}));var r=n(3),a=n(8),i=(n(0),n(270)),l={title:"request-id"},u={unversionedId:"plugins/request-id",id:"plugins/request-id",isDocsHomePage:!1,title:"request-id",description:"\x3c!--",source:"@site/docs/apisix/plugins/request-id.md",slug:" [...]
\ No newline at end of file
diff --git a/assets/js/63468b30.ad1050e3.js b/assets/js/63468b30.ad1050e3.js
new file mode 100644
index 0000000..25176dd
--- /dev/null
+++ b/assets/js/63468b30.ad1050e3.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[5791],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return s},kt:function(){return m}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r [...]
\ No newline at end of file
diff --git a/assets/js/64288df6.5bf4808c.js b/assets/js/64288df6.5bf4808c.js
deleted file mode 100644
index 6d12a48..0000000
--- a/assets/js/64288df6.5bf4808c.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[78],{146: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(8),i=(n(0),n(270)),s={title:"Install Ingress APISIX on Tencent TKE"},o={unversionedId:"deployments/tke",id:"deployments/tke",isDocsHomePage:!1,title:"Install Ingress APISIX on Tencent TKE",description:"\x3c!--",source: [...]
\ No newline at end of file
diff --git a/assets/js/64288df6.bdeb3467.js b/assets/js/64288df6.bdeb3467.js
new file mode 100644
index 0000000..576b693
--- /dev/null
+++ b/assets/js/64288df6.bdeb3467.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[4324],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return p},kt:function(){return h}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r [...]
\ No newline at end of file
diff --git a/assets/js/645be848.092af5be.js b/assets/js/645be848.092af5be.js
deleted file mode 100644
index dc681d8..0000000
--- a/assets/js/645be848.092af5be.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[79],{147:function(e,n,t){"use strict";t.r(n),t.d(n,"frontMatter",(function(){return i})),t.d(n,"metadata",(function(){return o})),t.d(n,"toc",(function(){return b})),t.d(n,"default",(function(){return c}));var a=t(3),r=t(8),l=(t(0),t(270)),i={title:"request-validation"},o={unversionedId:"plugins/request-validation",id:"plugins/request-validation",isDocsHomePage:!1,title:"request-validation",description:"\x3c!--",source:"@site/docs/apis [...]
\ No newline at end of file
diff --git a/assets/js/645be848.65f69e88.js b/assets/js/645be848.65f69e88.js
new file mode 100644
index 0000000..acd58b5
--- /dev/null
+++ b/assets/js/645be848.65f69e88.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[5556],{3905:function(e,n,t){"use strict";t.d(n,{Zo:function(){return s},kt:function(){return c}});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a [...]
\ No newline at end of file
diff --git a/assets/js/65962b6f.34a2e687.js b/assets/js/65962b6f.34a2e687.js
new file mode 100644
index 0000000..338858d
--- /dev/null
+++ b/assets/js/65962b6f.34a2e687.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[6396],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return c},kt:function(){return d}});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n [...]
\ No newline at end of file
diff --git a/assets/js/65962b6f.aee00c50.js b/assets/js/65962b6f.aee00c50.js
deleted file mode 100644
index ac8b801..0000000
--- a/assets/js/65962b6f.aee00c50.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[80],{148:function(e,t,r){"use strict";r.r(t),r.d(t,"frontMatter",(function(){return i})),r.d(t,"metadata",(function(){return p})),r.d(t,"toc",(function(){return c})),r.d(t,"default",(function(){return l}));var n=r(3),a=r(8),o=(r(0),r(270)),i={title:"Stream Proxy"},p={unversionedId:"stream-proxy",id:"stream-proxy",isDocsHomePage:!1,title:"Stream Proxy",description:"\x3c!--",source:"@site/docs/apisix/stream-proxy.md",slug:"/stream-proxy" [...]
\ No newline at end of file
diff --git a/assets/js/66fbb9c2.23246ff9.js b/assets/js/66fbb9c2.23246ff9.js
deleted file mode 100644
index 13d7a37..0000000
--- a/assets/js/66fbb9c2.23246ff9.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[81],{149:function(e,t,r){"use strict";r.r(t),r.d(t,"frontMatter",(function(){return o})),r.d(t,"metadata",(function(){return c})),r.d(t,"toc",(function(){return s})),r.d(t,"default",(function(){return p}));var n=r(3),a=r(8),i=(r(0),r(270)),o={id:"security",title:"Security"},c={unversionedId:"security",id:"security",isDocsHomePage:!1,title:"Security",description:"The Apache Software Foundation takes a rigorous stance on eliminating secu [...]
\ No newline at end of file
diff --git a/assets/js/66fbb9c2.684806a8.js b/assets/js/66fbb9c2.684806a8.js
new file mode 100644
index 0000000..448c7c8
--- /dev/null
+++ b/assets/js/66fbb9c2.684806a8.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[7668],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return l},kt:function(){return y}});var n=r(7294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n [...]
\ No newline at end of file
diff --git a/assets/js/679cfa79.659ee067.js b/assets/js/679cfa79.659ee067.js
new file mode 100644
index 0000000..bf42f5f
--- /dev/null
+++ b/assets/js/679cfa79.659ee067.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[3388],{3905:function(e,t,a){"use strict";a.d(t,{Zo:function(){return u},kt:function(){return k}});var n=a(7294);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n [...]
\ No newline at end of file
diff --git a/assets/js/679cfa79.7f96b57e.js b/assets/js/679cfa79.7f96b57e.js
deleted file mode 100644
index 70cf526..0000000
--- a/assets/js/679cfa79.7f96b57e.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[82],{150:function(e,t,a){"use strict";a.r(t),a.d(t,"frontMatter",(function(){return b})),a.d(t,"metadata",(function(){return o})),a.d(t,"toc",(function(){return c})),a.d(t,"default",(function(){return i}));var n=a(3),l=a(8),r=(a(0),a(270)),b={title:"i18n User Guide"},o={unversionedId:"I18N_USER_GUIDE",id:"I18N_USER_GUIDE",isDocsHomePage:!1,title:"i18n User Guide",description:"\x3c!--",source:"@site/docs/apisix-dashboard/I18N_USER_GUIDE [...]
\ No newline at end of file
diff --git a/assets/js/6808c117.4cd33d2d.js b/assets/js/6808c117.4cd33d2d.js
new file mode 100644
index 0000000..a48877a
--- /dev/null
+++ b/assets/js/6808c117.4cd33d2d.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[6965],{3905:function(a,e,t){"use strict";t.d(e,{Zo:function(){return s},kt:function(){return d}});var r=t(7294);function i(a,e,t){return e in a?Object.defineProperty(a,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):a[e]=t,a}function p(a,e){var t=Object.keys(a);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(a);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),t.push.apply(t,r [...]
\ No newline at end of file
diff --git a/assets/js/6808c117.cdc213ad.js b/assets/js/6808c117.cdc213ad.js
deleted file mode 100644
index e70c2d0..0000000
--- a/assets/js/6808c117.cdc213ad.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[83],{151:function(e,a,t){"use strict";t.r(a),t.d(a,"frontMatter",(function(){return b})),t.d(a,"metadata",(function(){return l})),t.d(a,"toc",(function(){return c})),t.d(a,"default",(function(){return n}));var r=t(3),i=t(8),p=(t(0),t(270)),b={title:"Release Apache APISIX Dashboard 2.6"},l={permalink:"/events/2021/04/22/release-apache-apisix-dashboard-2.6",source:"@site/events/2021-04-22-release-apache-apisix-dashboard-2.6.md",descripti [...]
\ No newline at end of file
diff --git a/assets/js/6945.5275d096.js b/assets/js/6945.5275d096.js
new file mode 100644
index 0000000..59825f7
--- /dev/null
+++ b/assets/js/6945.5275d096.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[6945],{6945:function(e,s,u){"use strict";u.r(s)}}]);
\ No newline at end of file
diff --git a/assets/js/6967878f.18368567.js b/assets/js/6967878f.18368567.js
deleted file mode 100644
index ef01eb4..0000000
--- a/assets/js/6967878f.18368567.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[84],{152:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return s})),n.d(t,"metadata",(function(){return c})),n.d(t,"toc",(function(){return l})),n.d(t,"default",(function(){return p}));var a=n(3),r=n(8),i=(n(0),n(270)),s={title:"Install Ingress APISIX on ACK"},c={unversionedId:"deployments/ack",id:"deployments/ack",isDocsHomePage:!1,title:"Install Ingress APISIX on ACK",description:"\x3c!--",source:"@site/docs/apis [...]
\ No newline at end of file
diff --git a/assets/js/6967878f.d9f5ffc0.js b/assets/js/6967878f.d9f5ffc0.js
new file mode 100644
index 0000000..a79d3ea
--- /dev/null
+++ b/assets/js/6967878f.d9f5ffc0.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[2216],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return c},kt:function(){return h}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a [...]
\ No newline at end of file
diff --git a/assets/js/6d5713a9.428e6866.js b/assets/js/6d5713a9.428e6866.js
new file mode 100644
index 0000000..fb3abdc
--- /dev/null
+++ b/assets/js/6d5713a9.428e6866.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[2466],{3905:function(e,n,t){"use strict";t.d(n,{Zo:function(){return u},kt:function(){return m}});var a=t(7294);function l(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function r(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a [...]
\ No newline at end of file
diff --git a/assets/js/6d5713a9.6101fafe.js b/assets/js/6d5713a9.6101fafe.js
deleted file mode 100644
index cb57c1c..0000000
--- a/assets/js/6d5713a9.6101fafe.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[85],{153:function(e,n,t){"use strict";t.r(n),t.d(n,"frontMatter",(function(){return i})),t.d(n,"metadata",(function(){return c})),t.d(n,"toc",(function(){return o})),t.d(n,"default",(function(){return p}));var a=t(3),l=t(8),r=(t(0),t(270)),i={title:"fault-injection"},c={unversionedId:"plugins/fault-injection",id:"plugins/fault-injection",isDocsHomePage:!1,title:"fault-injection",description:"\x3c!--",source:"@site/docs/apisix/plugins/f [...]
\ No newline at end of file
diff --git a/assets/js/6e5db0c1.51675755.js b/assets/js/6e5db0c1.51675755.js
new file mode 100644
index 0000000..c6d39a5
--- /dev/null
+++ b/assets/js/6e5db0c1.51675755.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[2562],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return u},kt:function(){return m}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a [...]
\ No newline at end of file
diff --git a/assets/js/6e5db0c1.967ba44a.js b/assets/js/6e5db0c1.967ba44a.js
deleted file mode 100644
index 705de49..0000000
--- a/assets/js/6e5db0c1.967ba44a.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[86],{154:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return l})),n.d(t,"metadata",(function(){return c})),n.d(t,"toc",(function(){return o})),n.d(t,"default",(function(){return p}));var a=n(3),r=n(8),i=(n(0),n(270)),l={title:"wolf-rbac"},c={unversionedId:"plugins/wolf-rbac",id:"plugins/wolf-rbac",isDocsHomePage:!1,title:"wolf-rbac",description:"\x3c!--",source:"@site/docs/apisix/plugins/wolf-rbac.md",slug:"/plug [...]
\ No newline at end of file
diff --git a/assets/js/6f365930.504ff274.js b/assets/js/6f365930.504ff274.js
deleted file mode 100644
index 71ccf9e..0000000
--- a/assets/js/6f365930.504ff274.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[87],{155:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return i})),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(8),s=(n(0),n(270)),i={title:"Install Ingress APISIX on K3S and Rancher RKE"},o={unversionedId:"deployments/k3s-rke",id:"deployments/k3s-rke",isDocsHomePage:!1,title:"Install Ingress APISIX on K3S and Rancher RKE",descr [...]
\ No newline at end of file
diff --git a/assets/js/6f365930.9c60346c.js b/assets/js/6f365930.9c60346c.js
new file mode 100644
index 0000000..a4df01a
--- /dev/null
+++ b/assets/js/6f365930.9c60346c.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[3303],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return c},kt:function(){return m}});var r=n(7294);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 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}))),n.push.apply(n,r [...]
\ No newline at end of file
diff --git a/assets/js/70fb06d4.7b35c299.js b/assets/js/70fb06d4.7b35c299.js
deleted file mode 100644
index a8cd15b..0000000
--- a/assets/js/70fb06d4.7b35c299.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[88],{156:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return b})),n.d(t,"metadata",(function(){return i})),n.d(t,"toc",(function(){return o})),n.d(t,"default",(function(){return p}));var r=n(3),a=n(8),l=(n(0),n(270)),b={title:"error-log-logger"},i={unversionedId:"plugins/error-log-logger",id:"plugins/error-log-logger",isDocsHomePage:!1,title:"error-log-logger",description:"\x3c!--",source:"@site/docs/apisix/plugi [...]
\ No newline at end of file
diff --git a/assets/js/70fb06d4.e73de786.js b/assets/js/70fb06d4.e73de786.js
new file mode 100644
index 0000000..741a437
--- /dev/null
+++ b/assets/js/70fb06d4.e73de786.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[8305],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return g},kt:function(){return s}});var r=n(7294);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 l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r [...]
\ No newline at end of file
diff --git a/assets/js/7193710f.393d48eb.js b/assets/js/7193710f.393d48eb.js
new file mode 100644
index 0000000..b7deed9
--- /dev/null
+++ b/assets/js/7193710f.393d48eb.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[1512],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return d},kt:function(){return m}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r [...]
\ No newline at end of file
diff --git a/assets/js/7193710f.ea510280.js b/assets/js/7193710f.ea510280.js
deleted file mode 100644
index 628cc71..0000000
--- a/assets/js/7193710f.ea510280.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[89],{157:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return l})),n.d(t,"metadata",(function(){return c})),n.d(t,"toc",(function(){return b})),n.d(t,"default",(function(){return p}));var r=n(3),a=n(8),i=(n(0),n(270)),l={title:"redirect"},c={unversionedId:"plugins/redirect",id:"plugins/redirect",isDocsHomePage:!1,title:"redirect",description:"\x3c!--",source:"@site/docs/apisix/plugins/redirect.md",slug:"/plugins/r [...]
\ No newline at end of file
diff --git a/assets/js/71950930.339c66d6.js b/assets/js/71950930.339c66d6.js
deleted file mode 100644
index 116e9f2..0000000
--- a/assets/js/71950930.339c66d6.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[90],{158:function(e,n,t){"use strict";t.r(n),t.d(n,"frontMatter",(function(){return c})),t.d(n,"metadata",(function(){return o})),t.d(n,"toc",(function(){return s})),t.d(n,"default",(function(){return l}));var a=t(3),r=t(8),i=(t(0),t(270)),c={title:"Running APISIX in AWS with AWS CDK"},o={unversionedId:"aws",id:"aws",isDocsHomePage:!1,title:"Running APISIX in AWS with AWS CDK",description:"\x3c!--",source:"@site/docs/apisix/aws.md",slu [...]
\ No newline at end of file
diff --git a/assets/js/71950930.8c5a4202.js b/assets/js/71950930.8c5a4202.js
new file mode 100644
index 0000000..fe255a0
--- /dev/null
+++ b/assets/js/71950930.8c5a4202.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[6198],{3905:function(e,n,t){"use strict";t.d(n,{Zo:function(){return l},kt:function(){return m}});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a [...]
\ No newline at end of file
diff --git a/assets/js/72cd189b.7c340be9.js b/assets/js/72cd189b.7c340be9.js
new file mode 100644
index 0000000..e85b7ca
--- /dev/null
+++ b/assets/js/72cd189b.7c340be9.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[1599],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return u},kt:function(){return m}});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n [...]
\ No newline at end of file
diff --git a/assets/js/72cd189b.ea4d8f3e.js b/assets/js/72cd189b.ea4d8f3e.js
deleted file mode 100644
index b77a982..0000000
--- a/assets/js/72cd189b.ea4d8f3e.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[91],{159: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 p})),r.d(t,"default",(function(){return u}));var n=r(3),a=r(8),o=(r(0),r(270)),c={title:"Release Apache APISIX 2.5"},i={permalink:"/events/2021/04/05/release-apache-apisix-2.5",source:"@site/events/2021-04-05-release-apache-apisix-2.5.md",description:"Change",date:"2021-04-05T0 [...]
\ No newline at end of file
diff --git a/assets/js/72ff46d3.1cb2e254.js b/assets/js/72ff46d3.1cb2e254.js
deleted file mode 100644
index c40ef76..0000000
--- a/assets/js/72ff46d3.1cb2e254.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[92],{160:function(e,r,t){"use strict";t.r(r),t.d(r,"frontMatter",(function(){return a})),t.d(r,"metadata",(function(){return c})),t.d(r,"toc",(function(){return s})),t.d(r,"default",(function(){return p}));var n=t(3),o=t(8),i=(t(0),t(270)),a={title:"DNS"},c={unversionedId:"discovery/dns",id:"discovery/dns",isDocsHomePage:!1,title:"DNS",description:"\x3c!--",source:"@site/docs/apisix/discovery/dns.md",slug:"/discovery/dns",permalink:"/d [...]
\ No newline at end of file
diff --git a/assets/js/72ff46d3.8c0f19e7.js b/assets/js/72ff46d3.8c0f19e7.js
new file mode 100644
index 0000000..e6738c2
--- /dev/null
+++ b/assets/js/72ff46d3.8c0f19e7.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[8077],{3905:function(e,r,t){"use strict";t.d(r,{Zo:function(){return p},kt:function(){return v}});var n=t(7294);function o(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}))),t.push.apply(t,n [...]
\ No newline at end of file
diff --git a/assets/js/746acb87.58ebbb64.js b/assets/js/746acb87.58ebbb64.js
new file mode 100644
index 0000000..d5ce384
--- /dev/null
+++ b/assets/js/746acb87.58ebbb64.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[2931],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return u},kt:function(){return m}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a [...]
\ No newline at end of file
diff --git a/assets/js/746acb87.81a6ccb1.js b/assets/js/746acb87.81a6ccb1.js
deleted file mode 100644
index 1d085cc..0000000
--- a/assets/js/746acb87.81a6ccb1.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[93],{161:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return l})),n.d(t,"metadata",(function(){return o})),n.d(t,"toc",(function(){return c})),n.d(t,"default",(function(){return p}));var a=n(3),r=n(8),i=(n(0),n(270)),l={title:"authz-keycloak"},o={unversionedId:"plugins/authz-keycloak",id:"plugins/authz-keycloak",isDocsHomePage:!1,title:"authz-keycloak",description:"\x3c!--",source:"@site/docs/apisix/plugins/authz [...]
\ No newline at end of file
diff --git a/assets/js/746d4aad.77a73c8c.js b/assets/js/746d4aad.77a73c8c.js
deleted file mode 100644
index c002e79..0000000
--- a/assets/js/746d4aad.77a73c8c.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[94],{162:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return l})),n.d(t,"metadata",(function(){return c})),n.d(t,"toc",(function(){return o})),n.d(t,"default",(function(){return s}));var r=n(3),a=n(8),i=(n(0),n(270)),l={title:"ip-restriction"},c={unversionedId:"plugins/ip-restriction",id:"plugins/ip-restriction",isDocsHomePage:!1,title:"ip-restriction",description:"\x3c!--",source:"@site/docs/apisix/plugins/ip-re [...]
\ No newline at end of file
diff --git a/assets/js/746d4aad.d82ad97a.js b/assets/js/746d4aad.d82ad97a.js
new file mode 100644
index 0000000..386567c
--- /dev/null
+++ b/assets/js/746d4aad.d82ad97a.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[4780],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return u},kt:function(){return m}});var r=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r [...]
\ No newline at end of file
diff --git a/assets/js/74848684.1e817ff1.js b/assets/js/74848684.1e817ff1.js
deleted file mode 100644
index 6f9129c..0000000
--- a/assets/js/74848684.1e817ff1.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[95],{163:function(e,r,t){"use strict";t.r(r),t.d(r,"frontMatter",(function(){return i})),t.d(r,"metadata",(function(){return c})),t.d(r,"toc",(function(){return l})),t.d(r,"default",(function(){return s}));var n=t(3),o=t(8),a=(t(0),t(270)),i={title:"Build an image from the source codes"},c={unversionedId:"build",id:"build",isDocsHomePage:!1,title:"Build an image from the source codes",description:"\x3c!--",source:"@site/docs/apisix-doc [...]
\ No newline at end of file
diff --git a/assets/js/74848684.c9de5e6c.js b/assets/js/74848684.c9de5e6c.js
new file mode 100644
index 0000000..fc98892
--- /dev/null
+++ b/assets/js/74848684.c9de5e6c.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[430],{3905:function(e,r,t){"use strict";t.d(r,{Zo:function(){return s},kt:function(){return f}});var n=t(7294);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(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}))),t.push.apply(t,n) [...]
\ No newline at end of file
diff --git a/assets/js/749ed826.7730456e.js b/assets/js/749ed826.7730456e.js
new file mode 100644
index 0000000..38732f5
--- /dev/null
+++ b/assets/js/749ed826.7730456e.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[7559],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return c},kt:function(){return m}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a [...]
\ No newline at end of file
diff --git a/assets/js/749ed826.b3e4e8fb.js b/assets/js/749ed826.b3e4e8fb.js
deleted file mode 100644
index 31b550e..0000000
--- a/assets/js/749ed826.b3e4e8fb.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[96],{164: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(8),i=(n(0),n(270)),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/7af3052c.291dd3dc.js b/assets/js/7af3052c.291dd3dc.js
new file mode 100644
index 0000000..7f66b2d
--- /dev/null
+++ b/assets/js/7af3052c.291dd3dc.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[5032],{3905:function(e,a,t){"use strict";t.d(a,{Zo:function(){return d},kt:function(){return u}});var n=t(7294);function i(e,a,t){return a in e?Object.defineProperty(e,a,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[a]=t,e}function r(e,a){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);a&&(n=n.filter((function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),t.push.apply(t,n [...]
\ No newline at end of file
diff --git a/assets/js/7af3052c.94d7f357.js b/assets/js/7af3052c.94d7f357.js
deleted file mode 100644
index 148ab3a..0000000
--- a/assets/js/7af3052c.94d7f357.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[97],{165: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(8),r=(t(0),t(270)),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/7e37206e.0ba35447.js b/assets/js/7e37206e.0ba35447.js
deleted file mode 100644
index c9b15e3..0000000
--- a/assets/js/7e37206e.0ba35447.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[98],{166:function(e,t,a){"use strict";a.r(t);var n=a(0),r=a.n(n),i=a(279),l=(a(37),a(274)),c=a(295),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 [...]
\ No newline at end of file
diff --git a/assets/js/7e37206e.7ed96dbe.js b/assets/js/7e37206e.7ed96dbe.js
new file mode 100644
index 0000000..a255f4d
--- /dev/null
+++ b/assets/js/7e37206e.7ed96dbe.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[2740],{9094:function(e,t,n){"use strict";var a=n(7294);function r(){return(r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e}).apply(this,arguments)}function i(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},i=Object.keys(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e, [...]
\ No newline at end of file
diff --git a/assets/js/81f18807.2e7ffedd.js b/assets/js/81f18807.2e7ffedd.js
deleted file mode 100644
index 899429b..0000000
--- a/assets/js/81f18807.2e7ffedd.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[99],{167: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 s}));var a=n(3),r=n(8),o=(n(0),n(270)),i={title:"Deploy with Docker"},c={unversionedId:"deploy-with-docker",id:"deploy-with-docker",isDocsHomePage:!1,title:"Deploy with Docker",description:"\x3c!--",source:"@site/docs/apisix-dashboard/dep [...]
\ No newline at end of file
diff --git a/assets/js/81f18807.30cfe101.js b/assets/js/81f18807.30cfe101.js
new file mode 100644
index 0000000..481480a
--- /dev/null
+++ b/assets/js/81f18807.30cfe101.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[6129],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return s},kt:function(){return h}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r [...]
\ No newline at end of file
diff --git a/assets/js/83cf9161.4a742482.js b/assets/js/83cf9161.4a742482.js
new file mode 100644
index 0000000..d90eb16
--- /dev/null
+++ b/assets/js/83cf9161.4a742482.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[5146],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return u},kt:function(){return m}});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n [...]
\ No newline at end of file
diff --git a/assets/js/83cf9161.6696f94e.js b/assets/js/83cf9161.6696f94e.js
deleted file mode 100644
index 834cf7d..0000000
--- a/assets/js/83cf9161.6696f94e.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[100],{168: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 p})),r.d(t,"default",(function(){return u}));var n=r(3),a=r(8),o=(r(0),r(270)),c={title:"Release Apache APISIX 2.4"},i={permalink:"/events/2021/03/05/release-apache-apisix-2.4",source:"@site/events/2021-03-05-release-apache-apisix-2.4.md",description:"Change",date:"2021-03-05T [...]
\ No newline at end of file
diff --git a/assets/js/84a8b022.32040ebc.js b/assets/js/84a8b022.32040ebc.js
deleted file mode 100644
index b0a4036..0000000
--- a/assets/js/84a8b022.32040ebc.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[101],{169:function(e,t,r){"use strict";r.r(t),r.d(t,"frontMatter",(function(){return l})),r.d(t,"metadata",(function(){return o})),r.d(t,"toc",(function(){return p})),r.d(t,"default",(function(){return u}));var n=r(3),a=r(8),i=(r(0),r(270)),l={title:"proxy-mirror"},o={unversionedId:"plugins/proxy-mirror",id:"plugins/proxy-mirror",isDocsHomePage:!1,title:"proxy-mirror",description:"\x3c!--",source:"@site/docs/apisix/plugins/proxy-mirror [...]
\ No newline at end of file
diff --git a/assets/js/84a8b022.f35c2916.js b/assets/js/84a8b022.f35c2916.js
new file mode 100644
index 0000000..c56ad44
--- /dev/null
+++ b/assets/js/84a8b022.f35c2916.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[597],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return s},kt:function(){return d}});var n=r(7294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n) [...]
\ No newline at end of file
diff --git a/assets/js/84d2a1f2.023da9eb.js b/assets/js/84d2a1f2.023da9eb.js
deleted file mode 100644
index d7cae94..0000000
--- a/assets/js/84d2a1f2.023da9eb.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[102],{170: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 r=n(3),a=n(8),o=(n(0),n(270)),i={title:"Development Guide"},c={unversionedId:"develop",id:"develop",isDocsHomePage:!1,title:"Development Guide",description:"\x3c!--",source:"@site/docs/apisix-dashboard/develop.md",slug:"/develop [...]
\ No newline at end of file
diff --git a/assets/js/84d2a1f2.e0324d3a.js b/assets/js/84d2a1f2.e0324d3a.js
new file mode 100644
index 0000000..a79af62
--- /dev/null
+++ b/assets/js/84d2a1f2.e0324d3a.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[414],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return s},kt:function(){return m}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r) [...]
\ No newline at end of file
diff --git a/assets/js/84ebf226.5be852ec.js b/assets/js/84ebf226.5be852ec.js
new file mode 100644
index 0000000..c064dce
--- /dev/null
+++ b/assets/js/84ebf226.5be852ec.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[6758],{3905:function(t,e,n){"use strict";n.d(e,{Zo:function(){return s},kt:function(){return g}});var a=n(7294);function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,a [...]
\ No newline at end of file
diff --git a/assets/js/84ebf226.98b23c2d.js b/assets/js/84ebf226.98b23c2d.js
deleted file mode 100644
index 76c1eb2..0000000
--- a/assets/js/84ebf226.98b23c2d.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[103],{171:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return i})),n.d(t,"metadata",(function(){return b})),n.d(t,"toc",(function(){return o})),n.d(t,"default",(function(){return u}));var a=n(3),r=n(8),l=(n(0),n(270)),i={title:"udp-logger"},b={unversionedId:"plugins/udp-logger",id:"plugins/udp-logger",isDocsHomePage:!1,title:"udp-logger",description:"\x3c!--",source:"@site/docs/apisix/plugins/udp-logger.md",slug: [...]
\ No newline at end of file
diff --git a/assets/js/859cc09f.9776541f.js b/assets/js/859cc09f.9776541f.js
deleted file mode 100644
index 9cb1fbe..0000000
--- a/assets/js/859cc09f.9776541f.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[104],{264:function(e,t,r){"use strict";r.r(t);var n=r(0),a=r.n(n),o=r(279),i=r(274),l=r(17),c=r(296);r(37);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.len [...]
\ No newline at end of file
diff --git a/assets/js/859cc09f.ad0b659b.js b/assets/js/859cc09f.ad0b659b.js
new file mode 100644
index 0000000..838bf34
--- /dev/null
+++ b/assets/js/859cc09f.ad0b659b.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[1069],{8003:function(e,t,r){"use strict";var n=r(7294);function o(){return(o=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,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e, [...]
\ No newline at end of file
diff --git a/assets/js/860d73b2.2bcf81c3.js b/assets/js/860d73b2.2bcf81c3.js
new file mode 100644
index 0000000..4d1d1e3
--- /dev/null
+++ b/assets/js/860d73b2.2bcf81c3.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[7271],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return c},kt:function(){return m}});var a=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a [...]
\ No newline at end of file
diff --git a/assets/js/860d73b2.84cff8f3.js b/assets/js/860d73b2.84cff8f3.js
deleted file mode 100644
index fe4ca05..0000000
--- a/assets/js/860d73b2.84cff8f3.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[105],{172:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return l})),n.d(t,"metadata",(function(){return o})),n.d(t,"toc",(function(){return s})),n.d(t,"default",(function(){return p}));var a=n(3),i=n(8),r=(n(0),n(270)),l={title:"How to build Apache APISIX"},o={unversionedId:"how-to-build",id:"how-to-build",isDocsHomePage:!1,title:"How to build Apache APISIX",description:"\x3c!--",source:"@site/docs/apisix/how-to-b [...]
\ No newline at end of file
diff --git a/assets/js/89d0b30c.18a8e12c.js b/assets/js/89d0b30c.18a8e12c.js
new file mode 100644
index 0000000..a7aa8b0
--- /dev/null
+++ b/assets/js/89d0b30c.18a8e12c.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[3541],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return p},kt:function(){return m}});var n=r(7294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n [...]
\ No newline at end of file
diff --git a/assets/js/89d0b30c.5a34fca0.js b/assets/js/89d0b30c.5a34fca0.js
deleted file mode 100644
index f8b17b1..0000000
--- a/assets/js/89d0b30c.5a34fca0.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[106],{173:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return o})),n.d(t,"metadata",(function(){return c})),n.d(t,"toc",(function(){return s})),n.d(t,"default",(function(){return p}));var r=n(3),a=n(8),i=(n(0),n(270)),o={title:"Route"},c={unversionedId:"architecture-design/route",id:"architecture-design/route",isDocsHomePage:!1,title:"Route",description:"\x3c!--",source:"@site/docs/apisix/architecture-design/rout [...]
\ No newline at end of file
diff --git a/assets/js/8b956bd2.20ad141e.js b/assets/js/8b956bd2.20ad141e.js
new file mode 100644
index 0000000..77b10b8
--- /dev/null
+++ b/assets/js/8b956bd2.20ad141e.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[7008],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return c},kt:function(){return d}});var n=r(7294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n [...]
\ No newline at end of file
diff --git a/assets/js/8b956bd2.c2281f84.js b/assets/js/8b956bd2.c2281f84.js
deleted file mode 100644
index df136fb..0000000
--- a/assets/js/8b956bd2.c2281f84.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[107],{174:function(e,t,r){"use strict";r.r(t),r.d(t,"frontMatter",(function(){return o})),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),i=r(8),a=(r(0),r(270)),o={title:"Router"},c={unversionedId:"architecture-design/router",id:"architecture-design/router",isDocsHomePage:!1,title:"Router",description:"\x3c!--",source:"@site/docs/apisix/architecture-design/ [...]
\ No newline at end of file
diff --git a/assets/js/8cdcb209.0d6093e2.js b/assets/js/8cdcb209.0d6093e2.js
new file mode 100644
index 0000000..c51298e
--- /dev/null
+++ b/assets/js/8cdcb209.0d6093e2.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[3897],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return p},kt:function(){return m}});var a=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a [...]
\ No newline at end of file
diff --git a/assets/js/8cdcb209.2c41a268.js b/assets/js/8cdcb209.2c41a268.js
deleted file mode 100644
index a231738..0000000
--- a/assets/js/8cdcb209.2c41a268.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[108],{175:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return c})),n.d(t,"metadata",(function(){return l})),n.d(t,"toc",(function(){return s})),n.d(t,"default",(function(){return h}));var a=n(3),i=n(8),r=(n(0),n(270)),c={title:"Health Check"},l={unversionedId:"health-check",id:"health-check",isDocsHomePage:!1,title:"Health Check",description:"\x3c!--",source:"@site/docs/apisix/health-check.md",slug:"/health-check [...]
\ No newline at end of file
diff --git a/assets/js/8e27d69a.70c352ee.js b/assets/js/8e27d69a.70c352ee.js
new file mode 100644
index 0000000..258b37a
--- /dev/null
+++ b/assets/js/8e27d69a.70c352ee.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[1558],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return u},kt:function(){return m}});var r=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r [...]
\ No newline at end of file
diff --git a/assets/js/8e27d69a.a0aa0d18.js b/assets/js/8e27d69a.a0aa0d18.js
deleted file mode 100644
index 5d0f61d..0000000
--- a/assets/js/8e27d69a.a0aa0d18.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[109],{176:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return a})),n.d(t,"metadata",(function(){return l})),n.d(t,"toc",(function(){return s})),n.d(t,"default",(function(){return u}));var r=n(3),i=n(8),o=(n(0),n(270)),a={title:"Developing for Apache APISIX Ingress Controller"},l={unversionedId:"development",id:"development",isDocsHomePage:!1,title:"Developing for Apache APISIX Ingress Controller",description:"\x3 [...]
\ No newline at end of file
diff --git a/assets/js/8e784bf3.8cced6b2.js b/assets/js/8e784bf3.8cced6b2.js
new file mode 100644
index 0000000..4b83777
--- /dev/null
+++ b/assets/js/8e784bf3.8cced6b2.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[8216],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return m},kt:function(){return d}});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r [...]
\ No newline at end of file
diff --git a/assets/js/8e784bf3.e790b9c9.js b/assets/js/8e784bf3.e790b9c9.js
deleted file mode 100644
index 65e4c8c..0000000
--- a/assets/js/8e784bf3.e790b9c9.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[110],{177: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(8),a=(n(0),n(270)),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/ [...]
\ No newline at end of file
diff --git a/assets/js/9163.f28cf3e6.js b/assets/js/9163.f28cf3e6.js
new file mode 100644
index 0000000..3aac2fe
--- /dev/null
+++ b/assets/js/9163.f28cf3e6.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[9163],{6774:function(e){e.exports=function(e,t,r,n){var i=r?r.call(n,e,t):void 0;if(void 0!==i)return!!i;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var a=Object.keys(e),o=Object.keys(t);if(a.length!==o.length)return!1;for(var s=Object.prototype.hasOwnProperty.bind(t),c=0;c<a.length;c++){var l=a[c];if(!s(l))return!1;var u=e[l],d=t[l];if(!1===(i=r?r.call(n,u,d,l):void 0)||void 0===i&&u!==d)return!1}return!0} [...]
\ No newline at end of file
diff --git a/assets/js/91ce05ef.39543e2a.js b/assets/js/91ce05ef.39543e2a.js
new file mode 100644
index 0000000..3056a6b
--- /dev/null
+++ b/assets/js/91ce05ef.39543e2a.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[6833],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return c},kt:function(){return m}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r [...]
\ No newline at end of file
diff --git a/assets/js/91ce05ef.f6a571b7.js b/assets/js/91ce05ef.f6a571b7.js
deleted file mode 100644
index 2fb0479..0000000
--- a/assets/js/91ce05ef.f6a571b7.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[111],{178:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return l})),n.d(t,"metadata",(function(){return o})),n.d(t,"toc",(function(){return c})),n.d(t,"default",(function(){return u}));var a=n(3),r=n(8),i=(n(0),n(270)),l={title:"Debug Mode"},o={unversionedId:"architecture-design/debug-mode",id:"architecture-design/debug-mode",isDocsHomePage:!1,title:"Debug Mode",description:"\x3c!--",source:"@site/docs/apisix/arch [...]
\ No newline at end of file
diff --git a/assets/js/92b07c7e.2dfd79d2.js b/assets/js/92b07c7e.2dfd79d2.js
new file mode 100644
index 0000000..25c5e82
--- /dev/null
+++ b/assets/js/92b07c7e.2dfd79d2.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[8411],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return u},kt:function(){return f}});var r=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r [...]
\ No newline at end of file
diff --git a/assets/js/92b07c7e.4f2af9aa.js b/assets/js/92b07c7e.4f2af9aa.js
deleted file mode 100644
index 1e98f97..0000000
--- a/assets/js/92b07c7e.4f2af9aa.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[112],{179:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return o})),n.d(t,"metadata",(function(){return c})),n.d(t,"toc",(function(){return l})),n.d(t,"default",(function(){return u}));var r=n(3),i=n(8),a=(n(0),n(270)),o={title:"APISIX"},c={unversionedId:"architecture-design/apisix",id:"architecture-design/apisix",isDocsHomePage:!1,title:"APISIX",description:"\x3c!--",source:"@site/docs/apisix/architecture-design/ [...]
\ No newline at end of file
diff --git a/assets/js/92dfebd0.2d7b06e7.js b/assets/js/92dfebd0.2d7b06e7.js
new file mode 100644
index 0000000..97c9d47
--- /dev/null
+++ b/assets/js/92dfebd0.2d7b06e7.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[2731],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return c},kt:function(){return h}});var a=n(7294);function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a [...]
\ No newline at end of file
diff --git a/assets/js/92dfebd0.9fd1609d.js b/assets/js/92dfebd0.9fd1609d.js
deleted file mode 100644
index ec58b97..0000000
--- a/assets/js/92dfebd0.9fd1609d.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[113],{180:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return r})),n.d(t,"metadata",(function(){return c})),n.d(t,"toc",(function(){return s})),n.d(t,"default",(function(){return p}));var a=n(3),l=n(8),i=(n(0),n(270)),r={title:"Apache APISIX Helm Chart"},c={unversionedId:"apisix",id:"apisix",isDocsHomePage:!1,title:"Apache APISIX Helm Chart",description:"\x3c!--",source:"@site/docs/apisix-helm-chart/apisix.md",sl [...]
\ No newline at end of file
diff --git a/assets/js/93013804.0d34b6e4.js b/assets/js/93013804.0d34b6e4.js
deleted file mode 100644
index 69b8c1a..0000000
--- a/assets/js/93013804.0d34b6e4.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[114],{181: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(8),a=(n(0),n(270)),s={title:"Install Ingress APISIX on Minikube"},o={unversionedId:"deployments/minikube",id:"deployments/minikube",isDocsHomePage:!1,title:"Install Ingress APISIX on Minikube",description:"\x3c!--",so [...]
\ No newline at end of file
diff --git a/assets/js/93013804.daaeb049.js b/assets/js/93013804.daaeb049.js
new file mode 100644
index 0000000..1079f8c
--- /dev/null
+++ b/assets/js/93013804.daaeb049.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[9915],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return c},kt:function(){return h}});var r=n(7294);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}))),n.push.apply(n,r [...]
\ No newline at end of file
diff --git a/assets/js/935f2afb.271056d4.js b/assets/js/935f2afb.271056d4.js
new file mode 100644
index 0000000..ae7eb7d
--- /dev/null
+++ b/assets/js/935f2afb.271056d4.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[53],{9054:function(e){"use strict";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-gui [...]
\ No newline at end of file
diff --git a/assets/js/935f2afb.d717f45f.js b/assets/js/935f2afb.d717f45f.js
deleted file mode 100644
index 070aba2..0000000
--- a/assets/js/935f2afb.d717f45f.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[115],{182: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"},{"ty [...]
\ No newline at end of file
diff --git a/assets/js/95244615.0600e50f.js b/assets/js/95244615.0600e50f.js
deleted file mode 100644
index 4972927..0000000
--- a/assets/js/95244615.0600e50f.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[116],{183: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 p})),n.d(t,"default",(function(){return c}));var a=n(3),i=n(8),r=(n(0),n(270)),s={title:"Import OpenAPI Guide"},o={unversionedId:"IMPORT_OPENAPI_USER_GUIDE",id:"IMPORT_OPENAPI_USER_GUIDE",isDocsHomePage:!1,title:"Import OpenAPI Guide",description:"\x3c!--",source:"@site/docs/a [...]
\ No newline at end of file
diff --git a/assets/js/95244615.1b282d9d.js b/assets/js/95244615.1b282d9d.js
new file mode 100644
index 0000000..ee53c6f
--- /dev/null
+++ b/assets/js/95244615.1b282d9d.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[1345],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return u},kt:function(){return m}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a [...]
\ No newline at end of file
diff --git a/assets/js/95e0e949.554cae22.js b/assets/js/95e0e949.554cae22.js
new file mode 100644
index 0000000..c211293
--- /dev/null
+++ b/assets/js/95e0e949.554cae22.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[4267],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return c},kt:function(){return f}});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n [...]
\ No newline at end of file
diff --git a/assets/js/95e0e949.aec2d47e.js b/assets/js/95e0e949.aec2d47e.js
deleted file mode 100644
index 2022246..0000000
--- a/assets/js/95e0e949.aec2d47e.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[117],{184: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 s})),r.d(t,"default",(function(){return p}));var n=r(3),a=r(8),o=(r(0),r(270)),i={title:"Release Apache APISIX Ingress Controller 0.4.0"},c={permalink:"/events/2021/03/12/release-apache-apisix-ingress-controller-0.4.0",source:"@site/events/2021-03-12-release-apache-apisix-ingr [...]
\ No newline at end of file
diff --git a/assets/js/96ff6680.893bc861.js b/assets/js/96ff6680.893bc861.js
new file mode 100644
index 0000000..9bf3cd3
--- /dev/null
+++ b/assets/js/96ff6680.893bc861.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[2108],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return s},kt:function(){return m}});var a=r(7294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(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}))),r.push.apply(r,a [...]
\ No newline at end of file
diff --git a/assets/js/96ff6680.9931e3e7.js b/assets/js/96ff6680.9931e3e7.js
deleted file mode 100644
index 8d09680..0000000
--- a/assets/js/96ff6680.9931e3e7.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[118],{185:function(e,t,a){"use strict";a.r(t),a.d(t,"frontMatter",(function(){return c})),a.d(t,"metadata",(function(){return p})),a.d(t,"toc",(function(){return i})),a.d(t,"default",(function(){return s}));var r=a(3),n=a(8),o=(a(0),a(270)),c={title:"Install Apache APISIX from Helm Charts",author:"Chao Zhang",authorURL:"https://github.com/tokers",authorImageURL:"https://avatars.githubusercontent.com/u/10428333?s=400&u=f48ef50c5621a1616 [...]
\ No newline at end of file
diff --git a/assets/js/98c69322.c1668b1b.js b/assets/js/98c69322.c1668b1b.js
deleted file mode 100644
index 505f0a9..0000000
--- a/assets/js/98c69322.c1668b1b.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[119],{284: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/98c69322.f8e21e44.js b/assets/js/98c69322.f8e21e44.js
new file mode 100644
index 0000000..f7b4c0d
--- /dev/null
+++ b/assets/js/98c69322.f8e21e44.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[8763],{8003:function(e,t,r){"use strict";var n=r(7294);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, [...]
\ No newline at end of file
diff --git a/assets/js/9969a994.1758f44c.js b/assets/js/9969a994.1758f44c.js
deleted file mode 100644
index 8d3710a..0000000
--- a/assets/js/9969a994.1758f44c.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[120],{186: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),i=r(8),a=(r(0),r(270)),c={title:"Proxy the httpbin service"},o={unversionedId:"practices/proxy-the-httpbin-service",id:"practices/proxy-the-httpbin-service",isDocsHomePage:!1,title:"Proxy the httpbin service",description: [...]
\ No newline at end of file
diff --git a/assets/js/9969a994.7e5253d6.js b/assets/js/9969a994.7e5253d6.js
new file mode 100644
index 0000000..746dcf6
--- /dev/null
+++ b/assets/js/9969a994.7e5253d6.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[9855],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return p},kt:function(){return m}});var n=r(7294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n [...]
\ No newline at end of file
diff --git a/assets/js/9c26c05d.20c285f6.js b/assets/js/9c26c05d.20c285f6.js
new file mode 100644
index 0000000..47a22cc
--- /dev/null
+++ b/assets/js/9c26c05d.20c285f6.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[3100],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return l},kt:function(){return g}});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r [...]
\ No newline at end of file
diff --git a/assets/js/9c26c05d.53871cab.js b/assets/js/9c26c05d.53871cab.js
deleted file mode 100644
index 727086e..0000000
--- a/assets/js/9c26c05d.53871cab.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[121],{187:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return i})),n.d(t,"metadata",(function(){return s})),n.d(t,"toc",(function(){return c})),n.d(t,"default",(function(){return l}));var r=n(3),o=n(8),a=(n(0),n(270)),i={title:"Contributing to apisix-ingress-controller"},s={unversionedId:"contribute",id:"contribute",isDocsHomePage:!1,title:"Contributing to apisix-ingress-controller",description:"\x3c!--",source:" [...]
\ No newline at end of file
diff --git a/assets/js/9d971112.38f1704a.js b/assets/js/9d971112.38f1704a.js
new file mode 100644
index 0000000..8a31a8c
--- /dev/null
+++ b/assets/js/9d971112.38f1704a.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[4450],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return c},kt:function(){return m}});var a=r(7294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(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}))),r.push.apply(r,a [...]
\ No newline at end of file
diff --git a/assets/js/9d971112.80ba3096.js b/assets/js/9d971112.80ba3096.js
deleted file mode 100644
index 0035905..0000000
--- a/assets/js/9d971112.80ba3096.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[122],{188:function(e,t,a){"use strict";a.r(t),a.d(t,"frontMatter",(function(){return o})),a.d(t,"metadata",(function(){return b})),a.d(t,"toc",(function(){return s})),a.d(t,"default",(function(){return u}));var r=a(3),n=a(8),c=(a(0),a(270)),o={title:"User Guide"},b={unversionedId:"USER_GUIDE",id:"USER_GUIDE",isDocsHomePage:!1,title:"User Guide",description:"\x3c!--",source:"@site/docs/apisix-dashboard/USER_GUIDE.md",slug:"/USER_GUIDE", [...]
\ No newline at end of file
diff --git a/assets/js/9da58367.238ab2d3.js b/assets/js/9da58367.238ab2d3.js
deleted file mode 100644
index 8b85e40..0000000
--- a/assets/js/9da58367.238ab2d3.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[123],{189:function(e,n,t){"use strict";t.r(n),t.d(n,"frontMatter",(function(){return o})),t.d(n,"metadata",(function(){return c})),t.d(n,"toc",(function(){return s})),t.d(n,"default",(function(){return l}));var a=t(3),r=t(8),i=(t(0),t(270)),o={title:"ApisixRoute"},c={unversionedId:"concepts/apisix_route",id:"concepts/apisix_route",isDocsHomePage:!1,title:"ApisixRoute",description:"\x3c!--",source:"@site/docs/apisix-ingress-controller/c [...]
\ No newline at end of file
diff --git a/assets/js/9da58367.664cb6b0.js b/assets/js/9da58367.664cb6b0.js
new file mode 100644
index 0000000..561f8b6
--- /dev/null
+++ b/assets/js/9da58367.664cb6b0.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[5994],{3905:function(e,n,t){"use strict";t.d(n,{Zo:function(){return l},kt:function(){return m}});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a [...]
\ No newline at end of file
diff --git a/assets/js/9dc47d34.1b76f60c.js b/assets/js/9dc47d34.1b76f60c.js
deleted file mode 100644
index a739caa..0000000
--- a/assets/js/9dc47d34.1b76f60c.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[124],{190:function(e,t,r){"use strict";r.r(t),r.d(t,"frontMatter",(function(){return a})),r.d(t,"metadata",(function(){return l})),r.d(t,"toc",(function(){return s})),r.d(t,"default",(function(){return p}));var n=r(3),i=r(8),o=(r(0),r(270)),a={title:"FAQ"},l={unversionedId:"FAQ",id:"FAQ",isDocsHomePage:!1,title:"FAQ",description:"\x3c!--",source:"@site/docs/apisix-ingress-controller/FAQ.md",slug:"/FAQ",permalink:"/docs/ingress-controll [...]
\ No newline at end of file
diff --git a/assets/js/9dc47d34.731076eb.js b/assets/js/9dc47d34.731076eb.js
new file mode 100644
index 0000000..782617e
--- /dev/null
+++ b/assets/js/9dc47d34.731076eb.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[8091],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return p},kt:function(){return h}});var n=r(7294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n [...]
\ No newline at end of file
diff --git a/assets/js/a06dfdd3.70db923d.js b/assets/js/a06dfdd3.70db923d.js
new file mode 100644
index 0000000..1dd486a
--- /dev/null
+++ b/assets/js/a06dfdd3.70db923d.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[7588],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return l},kt:function(){return m}});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n [...]
\ No newline at end of file
diff --git a/assets/js/a06dfdd3.c53203b3.js b/assets/js/a06dfdd3.c53203b3.js
deleted file mode 100644
index 1e8bbfc..0000000
--- a/assets/js/a06dfdd3.c53203b3.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[125],{191: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 p})),r.d(t,"default",(function(){return l}));var n=r(3),o=r(8),a=(r(0),r(270)),c={title:"Get Front-End Test Coverage with Cypress",author:"Yi Sun",authorURL:"https://github.com/LiteSun",authorImageURL:"https://avatars.githubusercontent.com/u/31329157?s=400&u=e81b4bb4db2be162c1 [...]
\ No newline at end of file
diff --git a/assets/js/a138bbe3.b1a1087f.js b/assets/js/a138bbe3.b1a1087f.js
deleted file mode 100644
index 63fefb7..0000000
--- a/assets/js/a138bbe3.b1a1087f.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[126],{192:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return i})),n.d(t,"metadata",(function(){return o})),n.d(t,"toc",(function(){return c})),n.d(t,"default",(function(){return p}));var a=n(3),r=n(8),s=(n(0),n(270)),i={title:"Install Dependencies"},o={unversionedId:"install-dependencies",id:"install-dependencies",isDocsHomePage:!1,title:"Install Dependencies",description:"\x3c!--",source:"@site/docs/apisix/inst [...]
\ No newline at end of file
diff --git a/assets/js/a138bbe3.fe7b1554.js b/assets/js/a138bbe3.fe7b1554.js
new file mode 100644
index 0000000..0e8b64e
--- /dev/null
+++ b/assets/js/a138bbe3.fe7b1554.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[8028],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return c},kt:function(){return m}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function 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}))),n.push.apply(n,a [...]
\ No newline at end of file
diff --git a/assets/js/a4a2cefa.7694c1a4.js b/assets/js/a4a2cefa.7694c1a4.js
new file mode 100644
index 0000000..a9bb83c
--- /dev/null
+++ b/assets/js/a4a2cefa.7694c1a4.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[8554],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return o},kt:function(){return m}});var n=r(7294);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 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}))),r.push.apply(r,n [...]
\ No newline at end of file
diff --git a/assets/js/a4a2cefa.dfa1b85c.js b/assets/js/a4a2cefa.dfa1b85c.js
deleted file mode 100644
index a959737..0000000
--- a/assets/js/a4a2cefa.dfa1b85c.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[127],{193: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 c})),r.d(t,"default",(function(){return p}));var a=r(3),n=r(8),b=(r(0),r(270)),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=e140a6d2bf19c426da6498 [...]
\ No newline at end of file
diff --git a/assets/js/a650e70d.9eab3b10.js b/assets/js/a650e70d.9eab3b10.js
new file mode 100644
index 0000000..37c966a
--- /dev/null
+++ b/assets/js/a650e70d.9eab3b10.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[7546],{3905:function(e,n,t){"use strict";t.d(n,{Zo:function(){return s},kt:function(){return m}});var r=t(7294);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function a(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r [...]
\ No newline at end of file
diff --git a/assets/js/a650e70d.d48760a3.js b/assets/js/a650e70d.d48760a3.js
deleted file mode 100644
index 853479c..0000000
--- a/assets/js/a650e70d.d48760a3.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[128],{194:function(e,n,t){"use strict";t.r(n),t.d(n,"frontMatter",(function(){return a})),t.d(n,"metadata",(function(){return i})),t.d(n,"toc",(function(){return p})),t.d(n,"default",(function(){return s}));var r=t(3),c=t(8),o=(t(0),t(270)),a={title:"Example"},i={unversionedId:"example",id:"example",isDocsHomePage:!1,title:"Example",description:"\x3c!--",source:"@site/docs/apisix-docker/example.md",slug:"/example",permalink:"/docs/dock [...]
\ No newline at end of file
diff --git a/assets/js/a6641250.19b9cf33.js b/assets/js/a6641250.19b9cf33.js
new file mode 100644
index 0000000..95c2b89
--- /dev/null
+++ b/assets/js/a6641250.19b9cf33.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[7363],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return l},kt:function(){return m}});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n [...]
\ No newline at end of file
diff --git a/assets/js/a6641250.5c6f02f7.js b/assets/js/a6641250.5c6f02f7.js
deleted file mode 100644
index 2faa695..0000000
--- a/assets/js/a6641250.5c6f02f7.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[129],{195: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(8),a=(r(0),r(270)),c={title:"New website for Apache APISIX",author:"juzhiyuan",authorURL:"https://github.com/juzhiyuan",authorImageURL:"https://avatars3.githubusercontent.com/u/2106987?s=460&u=f92e880ce95fe1fee18becd0 [...]
\ No newline at end of file
diff --git a/assets/js/a6aa9e1f.06032861.js b/assets/js/a6aa9e1f.06032861.js
deleted file mode 100644
index 0acfe56..0000000
--- a/assets/js/a6aa9e1f.06032861.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[130],{267:function(a,e,t){"use strict";t.r(e);var n=t(0),i=t.n(n),l=t(17),r=t(274),c=t(319),m=t(273);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-n [...]
\ No newline at end of file
diff --git a/assets/js/a6aa9e1f.84caf643.js b/assets/js/a6aa9e1f.84caf643.js
new file mode 100644
index 0000000..05063c3
--- /dev/null
+++ b/assets/js/a6aa9e1f.84caf643.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[3089],{3905:function(e,t,a){"use strict";a.d(t,{Zo:function(){return m},kt:function(){return p}});var r=a(7294);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 l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r [...]
\ No newline at end of file
diff --git a/assets/js/ab6cb272.040e9836.js b/assets/js/ab6cb272.040e9836.js
deleted file mode 100644
index cec669b..0000000
--- a/assets/js/ab6cb272.040e9836.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[131],{198:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return l})),n.d(t,"metadata",(function(){return p})),n.d(t,"toc",(function(){return c})),n.d(t,"default",(function(){return o}));var r=n(3),a=n(8),i=(n(0),n(270)),l={title:"Zipkin"},p={unversionedId:"plugins/zipkin",id:"plugins/zipkin",isDocsHomePage:!1,title:"Zipkin",description:"\x3c!--",source:"@site/docs/apisix/plugins/zipkin.md",slug:"/plugins/zipkin",pe [...]
\ No newline at end of file
diff --git a/assets/js/ab6cb272.f47c8537.js b/assets/js/ab6cb272.f47c8537.js
new file mode 100644
index 0000000..89c65f8
--- /dev/null
+++ b/assets/js/ab6cb272.f47c8537.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[9295],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return u},kt:function(){return d}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r [...]
\ No newline at end of file
diff --git a/assets/js/ad461966.4267cf56.js b/assets/js/ad461966.4267cf56.js
deleted file mode 100644
index 427fea9..0000000
--- a/assets/js/ad461966.4267cf56.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[132],{199:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return l})),n.d(t,"metadata",(function(){return o})),n.d(t,"toc",(function(){return b})),n.d(t,"default",(function(){return p}));var r=n(3),a=n(8),i=(n(0),n(270)),l={title:"server-info"},o={unversionedId:"plugins/server-info",id:"plugins/server-info",isDocsHomePage:!1,title:"server-info",description:"\x3c!--",source:"@site/docs/apisix/plugins/server-info.md", [...]
\ No newline at end of file
diff --git a/assets/js/ad461966.b2352052.js b/assets/js/ad461966.b2352052.js
new file mode 100644
index 0000000..e9e4605
--- /dev/null
+++ b/assets/js/ad461966.b2352052.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[9444],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return s},kt:function(){return d}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r [...]
\ No newline at end of file
diff --git a/assets/js/adbb350b.277d5b26.js b/assets/js/adbb350b.277d5b26.js
new file mode 100644
index 0000000..7a3af6d
--- /dev/null
+++ b/assets/js/adbb350b.277d5b26.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[5427],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return p},kt:function(){return d}});var i=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i [...]
\ No newline at end of file
diff --git a/assets/js/adbb350b.c9f6bbf4.js b/assets/js/adbb350b.c9f6bbf4.js
deleted file mode 100644
index 5613a79..0000000
--- a/assets/js/adbb350b.c9f6bbf4.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[133],{200:function(e,t,r){"use strict";r.r(t),r.d(t,"frontMatter",(function(){return o})),r.d(t,"metadata",(function(){return s})),r.d(t,"toc",(function(){return c})),r.d(t,"default",(function(){return b}));var i=r(3),a=r(8),n=(r(0),r(270)),o={id:"contributor-guide",title:"Contributor Guide"},s={unversionedId:"contributor-guide",id:"contributor-guide",isDocsHomePage:!1,title:"Contributor Guide",description:"Please fee free to report bu [...]
\ No newline at end of file
diff --git a/assets/js/af4112e0.227a96bb.js b/assets/js/af4112e0.227a96bb.js
new file mode 100644
index 0000000..67496da
--- /dev/null
+++ b/assets/js/af4112e0.227a96bb.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[3658],{3905:function(e,r,t){"use strict";t.d(r,{Zo:function(){return p},kt:function(){return d}});var n=t(7294);function o(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}))),t.push.apply(t,n [...]
\ No newline at end of file
diff --git a/assets/js/af4112e0.55110529.js b/assets/js/af4112e0.55110529.js
deleted file mode 100644
index 749ca99..0000000
--- a/assets/js/af4112e0.55110529.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[134],{201: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 u}));var n=t(3),o=t(8),a=(t(0),t(270)),c={title:"eureka"},i={unversionedId:"discovery/eureka",id:"discovery/eureka",isDocsHomePage:!1,title:"eureka",description:"\x3c!--",source:"@site/docs/apisix/discovery/eureka.md",slug:"/discovery/eu [...]
\ No newline at end of file
diff --git a/assets/js/b0e5e822.4c4d9727.js b/assets/js/b0e5e822.4c4d9727.js
deleted file mode 100644
index 3a99574..0000000
--- a/assets/js/b0e5e822.4c4d9727.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[135],{202:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return o})),n.d(t,"metadata",(function(){return s})),n.d(t,"toc",(function(){return c})),n.d(t,"default",(function(){return l}));var a=n(3),r=n(8),i=(n(0),n(270)),o={title:"ApisixUpstream"},s={unversionedId:"concepts/apisix_upstream",id:"concepts/apisix_upstream",isDocsHomePage:!1,title:"ApisixUpstream",description:"\x3c!--",source:"@site/docs/apisix-ingress- [...]
\ No newline at end of file
diff --git a/assets/js/b0e5e822.7fa81691.js b/assets/js/b0e5e822.7fa81691.js
new file mode 100644
index 0000000..71bfbb6
--- /dev/null
+++ b/assets/js/b0e5e822.7fa81691.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[4316],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return c},kt:function(){return d}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a [...]
\ No newline at end of file
diff --git a/assets/js/b28b7341.0bf72feb.js b/assets/js/b28b7341.0bf72feb.js
new file mode 100644
index 0000000..35a8f96
--- /dev/null
+++ b/assets/js/b28b7341.0bf72feb.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[6324],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return p},kt:function(){return c}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r [...]
\ No newline at end of file
diff --git a/assets/js/b28b7341.ad440845.js b/assets/js/b28b7341.ad440845.js
deleted file mode 100644
index 81d5674..0000000
--- a/assets/js/b28b7341.ad440845.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[136],{203:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return l})),n.d(t,"metadata",(function(){return c})),n.d(t,"toc",(function(){return b})),n.d(t,"default",(function(){return d}));var r=n(3),a=n(8),i=(n(0),n(270)),l={title:"limit-count"},c={unversionedId:"plugins/limit-count",id:"plugins/limit-count",isDocsHomePage:!1,title:"limit-count",description:"\x3c!--",source:"@site/docs/apisix/plugins/limit-count.md", [...]
\ No newline at end of file
diff --git a/assets/js/b2b675dd.4e1af5aa.js b/assets/js/b2b675dd.4e1af5aa.js
deleted file mode 100644
index 54d07b1..0000000
--- a/assets/js/b2b675dd.4e1af5aa.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[137],{204:function(o){o.exports=JSON.parse('{"permalink":"/blog","page":1,"postsPerPage":10,"totalPages":1,"totalCount":8,"previousPage":null,"nextPage":null,"blogDescription":"Blog","blogTitle":"Blog"}')}}]);
\ No newline at end of file
diff --git a/assets/js/b2b675dd.56cfd134.js b/assets/js/b2b675dd.56cfd134.js
new file mode 100644
index 0000000..55dc656
--- /dev/null
+++ b/assets/js/b2b675dd.56cfd134.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[533],{2383:function(e){"use strict";e.exports=JSON.parse('{"permalink":"/blog","page":1,"postsPerPage":10,"totalPages":1,"totalCount":8,"previousPage":null,"nextPage":null,"blogDescription":"Blog","blogTitle":"Blog"}')}}]);
\ No newline at end of file
diff --git a/assets/js/b3ea7b47.3db77782.js b/assets/js/b3ea7b47.3db77782.js
new file mode 100644
index 0000000..b51709f
--- /dev/null
+++ b/assets/js/b3ea7b47.3db77782.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[4960],{3905:function(e,n,t){"use strict";t.d(n,{Zo:function(){return u},kt:function(){return f}});var r=t(7294);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function a(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r [...]
\ No newline at end of file
diff --git a/assets/js/b3ea7b47.920ff128.js b/assets/js/b3ea7b47.920ff128.js
deleted file mode 100644
index 0dc9656..0000000
--- a/assets/js/b3ea7b47.920ff128.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[138],{205:function(e,n,t){"use strict";t.r(n),t.d(n,"frontMatter",(function(){return c})),t.d(n,"metadata",(function(){return i})),t.d(n,"toc",(function(){return s})),t.d(n,"default",(function(){return u}));var r=t(3),a=t(8),o=(t(0),t(270)),c={title:"nacos"},i={unversionedId:"discovery/nacos",id:"discovery/nacos",isDocsHomePage:!1,title:"nacos",description:"\x3c!--",source:"@site/docs/apisix/discovery/nacos.md",slug:"/discovery/nacos", [...]
\ No newline at end of file
diff --git a/assets/js/b3ea87e1.12f69f8b.js b/assets/js/b3ea87e1.12f69f8b.js
new file mode 100644
index 0000000..4d33e64
--- /dev/null
+++ b/assets/js/b3ea87e1.12f69f8b.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[2140],{3905:function(t,e,n){"use strict";n.d(e,{Zo:function(){return s},kt:function(){return k}});var a=n(7294);function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,a [...]
\ No newline at end of file
diff --git a/assets/js/b3ea87e1.c4cd04d1.js b/assets/js/b3ea87e1.c4cd04d1.js
deleted file mode 100644
index f1a199d..0000000
--- a/assets/js/b3ea87e1.c4cd04d1.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[139],{206:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return b})),n.d(t,"metadata",(function(){return i})),n.d(t,"toc",(function(){return p})),n.d(t,"default",(function(){return o}));var a=n(3),r=n(8),l=(n(0),n(270)),b={title:"batch-requests"},i={unversionedId:"plugins/batch-requests",id:"plugins/batch-requests",isDocsHomePage:!1,title:"batch-requests",description:"\x3c!--",source:"@site/docs/apisix/plugins/batc [...]
\ No newline at end of file
diff --git a/assets/js/b436937a.7e853ce8.js b/assets/js/b436937a.7e853ce8.js
new file mode 100644
index 0000000..bc022b5
--- /dev/null
+++ b/assets/js/b436937a.7e853ce8.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[702],{3905:function(t,e,n){"use strict";n.d(e,{Zo:function(){return s},kt:function(){return g}});var a=n(7294);function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,a) [...]
\ No newline at end of file
diff --git a/assets/js/b436937a.95a41d13.js b/assets/js/b436937a.95a41d13.js
deleted file mode 100644
index 90fefba..0000000
--- a/assets/js/b436937a.95a41d13.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[140],{207:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return b})),n.d(t,"metadata",(function(){return i})),n.d(t,"toc",(function(){return o})),n.d(t,"default",(function(){return p}));var a=n(3),r=n(8),l=(n(0),n(270)),b={title:"tcp-logger"},i={unversionedId:"plugins/tcp-logger",id:"plugins/tcp-logger",isDocsHomePage:!1,title:"tcp-logger",description:"\x3c!--",source:"@site/docs/apisix/plugins/tcp-logger.md",slug: [...]
\ No newline at end of file
diff --git a/assets/js/b4a67526.cbe07c3d.js b/assets/js/b4a67526.cbe07c3d.js
deleted file mode 100644
index 051dc85..0000000
--- a/assets/js/b4a67526.cbe07c3d.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[141],{208:function(e){e.exports=JSON.parse('{"pluginId":"docs-apisix-ingress-controller","version":"current","label":"Next","isLast":true,"docsSidebars":{"docs":[{"type":"link","label":"Apache APISIX Ingress Controller","href":"https://apisix.apache.org/docs/ingress-controller/getting-started/"},{"type":"link","label":"Getting Started","href":"/docs/ingress-controller/getting-started"},{"collapsed":true,"type":"category","label":"Pract [...]
\ No newline at end of file
diff --git a/assets/js/b4a67526.d62f30b2.js b/assets/js/b4a67526.d62f30b2.js
new file mode 100644
index 0000000..b033987
--- /dev/null
+++ b/assets/js/b4a67526.d62f30b2.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[4385],{9677:function(e){"use strict";e.exports=JSON.parse('{"pluginId":"docs-apisix-ingress-controller","version":"current","label":"Next","isLast":true,"docsSidebars":{"docs":[{"type":"link","label":"Apache APISIX Ingress Controller","href":"https://apisix.apache.org/docs/ingress-controller/getting-started/"},{"type":"link","label":"Getting Started","href":"/docs/ingress-controller/getting-started"},{"collapsed":true,"type":"category","la [...]
\ No newline at end of file
diff --git a/assets/js/b58143c5.4717cc56.js b/assets/js/b58143c5.4717cc56.js
new file mode 100644
index 0000000..c44aa9f
--- /dev/null
+++ b/assets/js/b58143c5.4717cc56.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[8241],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return c},kt:function(){return m}});var r=n(7294);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 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}))),n.push.apply(n,r [...]
\ No newline at end of file
diff --git a/assets/js/b58143c5.f6196ae1.js b/assets/js/b58143c5.f6196ae1.js
deleted file mode 100644
index 5972c70..0000000
--- a/assets/js/b58143c5.f6196ae1.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[142],{209: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(8),i=(n(0),n(270)),s={title:"Install Ingress APISIX on KubeSphere"},o={unversionedId:"deployments/kubesphere",id:"deployments/kubesphere",isDocsHomePage:!1,title:"Install Ingress APISIX on KubeSphere",description:"\x3 [...]
\ No newline at end of file
diff --git a/assets/js/b5a39df0.87f08745.js b/assets/js/b5a39df0.87f08745.js
deleted file mode 100644
index 53851a9..0000000
--- a/assets/js/b5a39df0.87f08745.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[143],{210:function(e,t,a){"use strict";a.r(t),a.d(t,"frontMatter",(function(){return i})),a.d(t,"metadata",(function(){return p})),a.d(t,"toc",(function(){return c})),a.d(t,"default",(function(){return s}));var n=a(3),r=a(8),l=(a(0),a(270)),i={title:"skywalking"},p={unversionedId:"plugins/skywalking",id:"plugins/skywalking",isDocsHomePage:!1,title:"skywalking",description:"\x3c!--",source:"@site/docs/apisix/plugins/skywalking.md",slug: [...]
\ No newline at end of file
diff --git a/assets/js/b5a39df0.e143dffe.js b/assets/js/b5a39df0.e143dffe.js
new file mode 100644
index 0000000..c62041c
--- /dev/null
+++ b/assets/js/b5a39df0.e143dffe.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[4862],{3905:function(e,t,a){"use strict";a.d(t,{Zo:function(){return u},kt:function(){return c}});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n [...]
\ No newline at end of file
diff --git a/assets/js/bacea567.50f2be22.js b/assets/js/bacea567.50f2be22.js
deleted file mode 100644
index ea57bae..0000000
--- a/assets/js/bacea567.50f2be22.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[144],{211: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(8),o=(r(0),r(270)),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",descript [...]
\ No newline at end of file
diff --git a/assets/js/bacea567.83d6cb04.js b/assets/js/bacea567.83d6cb04.js
new file mode 100644
index 0000000..47f50b1
--- /dev/null
+++ b/assets/js/bacea567.83d6cb04.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[557],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return l},kt:function(){return m}});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n) [...]
\ No newline at end of file
diff --git a/assets/js/bd3a6b69.8a97b802.js b/assets/js/bd3a6b69.8a97b802.js
deleted file mode 100644
index 21ddebf..0000000
--- a/assets/js/bd3a6b69.8a97b802.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[145],{212: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 a=n(3),r=n(8),o=(n(0),n(270)),i={title:"Deploy with Source Codes"},c={unversionedId:"deploy",id:"deploy",isDocsHomePage:!1,title:"Deploy with Source Codes",description:"\x3c!--",source:"@site/docs/apisix-dashboard/deploy.md",slu [...]
\ No newline at end of file
diff --git a/assets/js/bd3a6b69.b7596477.js b/assets/js/bd3a6b69.b7596477.js
new file mode 100644
index 0000000..2cb6335
--- /dev/null
+++ b/assets/js/bd3a6b69.b7596477.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[1003],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return u},kt:function(){return m}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r [...]
\ No newline at end of file
diff --git a/assets/js/bec177a9.518c129d.js b/assets/js/bec177a9.518c129d.js
deleted file mode 100644
index 1be9568..0000000
--- a/assets/js/bec177a9.518c129d.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[146],{213:function(e,t,r){"use strict";r.r(t),r.d(t,"frontMatter",(function(){return o})),r.d(t,"metadata",(function(){return l})),r.d(t,"toc",(function(){return c})),r.d(t,"default",(function(){return p}));var n=r(3),a=r(8),i=(r(0),r(270)),o={title:"Apache APISIX Dashboard Helm Chart"},l={unversionedId:"apisix-dashboard",id:"apisix-dashboard",isDocsHomePage:!1,title:"Apache APISIX Dashboard Helm Chart",description:"\x3c!--",source:"@s [...]
\ No newline at end of file
diff --git a/assets/js/bec177a9.cfe3a373.js b/assets/js/bec177a9.cfe3a373.js
new file mode 100644
index 0000000..6d34526
--- /dev/null
+++ b/assets/js/bec177a9.cfe3a373.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[8714],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return p},kt:function(){return h}});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n [...]
\ No newline at end of file
diff --git a/assets/js/c119cf3c.93a7687a.js b/assets/js/c119cf3c.93a7687a.js
new file mode 100644
index 0000000..72e21fb
--- /dev/null
+++ b/assets/js/c119cf3c.93a7687a.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[4804],{3905:function(e,r,t){"use strict";t.d(r,{Zo:function(){return p},kt:function(){return m}});var n=t(7294);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 o(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}))),t.push.apply(t,n [...]
\ No newline at end of file
diff --git a/assets/js/c119cf3c.f5bec26c.js b/assets/js/c119cf3c.f5bec26c.js
deleted file mode 100644
index efeaf47..0000000
--- a/assets/js/c119cf3c.f5bec26c.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[147],{214: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(8),o=(t(0),t(270)),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-ingr [...]
\ No newline at end of file
diff --git a/assets/js/c2f0cd73.0fd4db12.js b/assets/js/c2f0cd73.0fd4db12.js
new file mode 100644
index 0000000..ab0060e
--- /dev/null
+++ b/assets/js/c2f0cd73.0fd4db12.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[9067],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return u},kt:function(){return m}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r [...]
\ No newline at end of file
diff --git a/assets/js/c2f0cd73.db74991d.js b/assets/js/c2f0cd73.db74991d.js
deleted file mode 100644
index cfac385..0000000
--- a/assets/js/c2f0cd73.db74991d.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[148],{215:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return o})),n.d(t,"metadata",(function(){return c})),n.d(t,"toc",(function(){return p})),n.d(t,"default",(function(){return d}));var r=n(3),a=n(8),i=(n(0),n(270)),o={title:"Deploy Apache APISIX with Docker"},c={unversionedId:"manual",id:"manual",isDocsHomePage:!1,title:"Deploy Apache APISIX with Docker",description:"\x3c!--",source:"@site/docs/apisix-docker/m [...]
\ No newline at end of file
diff --git a/assets/js/c44a0953.08ca2806.js b/assets/js/c44a0953.08ca2806.js
deleted file mode 100644
index 6b7d6e5..0000000
--- a/assets/js/c44a0953.08ca2806.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[149],{216:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return i})),n.d(t,"metadata",(function(){return b})),n.d(t,"toc",(function(){return u})),n.d(t,"default",(function(){return o}));var a=n(3),r=n(8),l=(n(0),n(270)),i={title:"key-auth"},b={unversionedId:"plugins/key-auth",id:"plugins/key-auth",isDocsHomePage:!1,title:"key-auth",description:"\x3c!--",source:"@site/docs/apisix/plugins/key-auth.md",slug:"/plugins/ [...]
\ No newline at end of file
diff --git a/assets/js/c44a0953.c5a02a84.js b/assets/js/c44a0953.c5a02a84.js
new file mode 100644
index 0000000..3aac35c
--- /dev/null
+++ b/assets/js/c44a0953.c5a02a84.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[382],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return s},kt:function(){return d}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function 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}))),n.push.apply(n,a) [...]
\ No newline at end of file
diff --git a/assets/js/c4f5d8e4.b8ea99a1.js b/assets/js/c4f5d8e4.b8ea99a1.js
deleted file mode 100644
index 94de58c..0000000
--- a/assets/js/c4f5d8e4.b8ea99a1.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[150],{217:function(e,t,a){"use strict";a.r(t);var n=a(273),l=a(17),r=a(277),c=a(274),s=a(296),i=a(0),o=a(371),m=a(295),u=a(0),d=function(){var e=Object(i.useState)(0),t=e[0],a=e[1],l=["Dynamic","Real-Time","Performant"],c=Object(i.useState)(!0),m=c[0],d=c[1],p=function(e){d(!1),a(e),d(!0)};return Object(i.useEffect)((function(){var e=setInterval((function(){p(t>=l.length-1?0:t+1)}),3600);return function(){return clearInterval(e)}}),[t] [...]
\ No newline at end of file
diff --git a/assets/js/c4f5d8e4.bd5ea330.js b/assets/js/c4f5d8e4.bd5ea330.js
new file mode 100644
index 0000000..d1eea3c
--- /dev/null
+++ b/assets/js/c4f5d8e4.bd5ea330.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[4195],{9094:function(e,t,n){"use strict";var a=n(7294);function s(){return(s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e}).apply(this,arguments)}function r(e,t){if(null==e)return{};var n,a,s=function(e,t){if(null==e)return{};var n,a,s={},r=Object.keys(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||(s[n]=e[n]);return s}(e, [...]
\ No newline at end of file
diff --git a/assets/js/c5594f1a.324c2c2d.js b/assets/js/c5594f1a.324c2c2d.js
new file mode 100644
index 0000000..4ed9448
--- /dev/null
+++ b/assets/js/c5594f1a.324c2c2d.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[2088],{3905:function(e,r,t){"use strict";t.d(r,{Zo:function(){return p},kt:function(){return m}});var n=t(7294);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 o(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}))),t.push.apply(t,n [...]
\ No newline at end of file
diff --git a/assets/js/c5594f1a.b0dcf837.js b/assets/js/c5594f1a.b0dcf837.js
deleted file mode 100644
index 5615d2c..0000000
--- a/assets/js/c5594f1a.b0dcf837.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[151],{218: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(8),o=(t(0),t(270)),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-ingr [...]
\ No newline at end of file
diff --git a/assets/js/c6a4007d.1979b1cc.js b/assets/js/c6a4007d.1979b1cc.js
deleted file mode 100644
index 712191d..0000000
--- a/assets/js/c6a4007d.1979b1cc.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[152],{219:function(e,n,t){"use strict";t.r(n),t.d(n,"frontMatter",(function(){return s})),t.d(n,"metadata",(function(){return l})),t.d(n,"toc",(function(){return o})),t.d(n,"default",(function(){return p}));var r=t(3),i=t(8),a=(t(0),t(270)),s={title:"Apache APISIX Ingress Controller Helm Chart"},l={unversionedId:"apisix-ingress-controller",id:"apisix-ingress-controller",isDocsHomePage:!1,title:"Apache APISIX Ingress Controller Helm Cha [...]
\ No newline at end of file
diff --git a/assets/js/c6a4007d.6ba5d3a2.js b/assets/js/c6a4007d.6ba5d3a2.js
new file mode 100644
index 0000000..980eb49
--- /dev/null
+++ b/assets/js/c6a4007d.6ba5d3a2.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[1239],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return c},kt:function(){return h}});var n=r(7294);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 s(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 [...]
\ No newline at end of file
diff --git a/assets/js/c888429e.95c6e915.js b/assets/js/c888429e.95c6e915.js
deleted file mode 100644
index d7735e5..0000000
--- a/assets/js/c888429e.95c6e915.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[153],{220:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return i})),n.d(t,"metadata",(function(){return b})),n.d(t,"toc",(function(){return o})),n.d(t,"default",(function(){return p}));var a=n(3),r=n(8),l=(n(0),n(270)),i={title:"echo"},b={unversionedId:"plugins/echo",id:"plugins/echo",isDocsHomePage:!1,title:"echo",description:"\x3c!--",source:"@site/docs/apisix/plugins/echo.md",slug:"/plugins/echo",permalink:"/do [...]
\ No newline at end of file
diff --git a/assets/js/c888429e.e39b1ace.js b/assets/js/c888429e.e39b1ace.js
new file mode 100644
index 0000000..ffefe72
--- /dev/null
+++ b/assets/js/c888429e.e39b1ace.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[541],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return s},kt:function(){return m}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function 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}))),n.push.apply(n,a) [...]
\ No newline at end of file
diff --git a/assets/js/c9f6a9fb.b9181f74.js b/assets/js/c9f6a9fb.b9181f74.js
new file mode 100644
index 0000000..88d59ab
--- /dev/null
+++ b/assets/js/c9f6a9fb.b9181f74.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[4353],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return c},kt:function(){return d}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r [...]
\ No newline at end of file
diff --git a/assets/js/c9f6a9fb.eb77776d.js b/assets/js/c9f6a9fb.eb77776d.js
deleted file mode 100644
index 6f61cec..0000000
--- a/assets/js/c9f6a9fb.eb77776d.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[154],{221:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return l})),n.d(t,"metadata",(function(){return c})),n.d(t,"toc",(function(){return o})),n.d(t,"default",(function(){return p}));var r=n(3),a=n(8),i=(n(0),n(270)),l={title:"ApisixRoute/v1 (Deprecated) Reference"},c={unversionedId:"references/apisix_route_v1",id:"references/apisix_route_v1",isDocsHomePage:!1,title:"ApisixRoute/v1 (Deprecated) Reference",descri [...]
\ No newline at end of file
diff --git a/assets/js/ca5ff64e.467f2d7a.js b/assets/js/ca5ff64e.467f2d7a.js
new file mode 100644
index 0000000..f85ba30
--- /dev/null
+++ b/assets/js/ca5ff64e.467f2d7a.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[9075],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return p},kt:function(){return m}});var r=n(7294);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}))),n.push.apply(n,r [...]
\ No newline at end of file
diff --git a/assets/js/ca5ff64e.f2cf6e8a.js b/assets/js/ca5ff64e.f2cf6e8a.js
deleted file mode 100644
index 1924154..0000000
--- a/assets/js/ca5ff64e.f2cf6e8a.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[155],{222:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return a})),n.d(t,"metadata",(function(){return c})),n.d(t,"toc",(function(){return o})),n.d(t,"default",(function(){return l}));var r=n(3),i=n(8),s=(n(0),n(270)),a={title:"Proxy the httpbin service with Ingress"},c={unversionedId:"practices/proxy-the-httpbin-service-with-ingress",id:"practices/proxy-the-httpbin-service-with-ingress",isDocsHomePage:!1,title:" [...]
\ No newline at end of file
diff --git a/assets/js/ccc49370.3aa4f16c.js b/assets/js/ccc49370.3aa4f16c.js
new file mode 100644
index 0000000..7b68b0c
--- /dev/null
+++ b/assets/js/ccc49370.3aa4f16c.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[6103],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return m},kt:function(){return p}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function 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}))),n.push.apply(n,a [...]
\ No newline at end of file
diff --git a/assets/js/ccc49370.abb0447c.js b/assets/js/ccc49370.abb0447c.js
deleted file mode 100644
index 0f58fbd..0000000
--- a/assets/js/ccc49370.abb0447c.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[156],{268:function(e,t,a){"use strict";a.r(t);var n=a(0),l=a.n(n),r=a(274),i=a(319),c=a(273);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/cf167ebd.06667f3a.js b/assets/js/cf167ebd.06667f3a.js
new file mode 100644
index 0000000..2eca592
--- /dev/null
+++ b/assets/js/cf167ebd.06667f3a.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[2282],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return u},kt:function(){return m}});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n [...]
\ No newline at end of file
diff --git a/assets/js/cf167ebd.d3a0fd48.js b/assets/js/cf167ebd.d3a0fd48.js
deleted file mode 100644
index b7ce363..0000000
--- a/assets/js/cf167ebd.d3a0fd48.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[157],{223:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return i})),n.d(t,"metadata",(function(){return l})),n.d(t,"toc",(function(){return o})),n.d(t,"default",(function(){return u}));var r=n(3),a=n(8),c=(n(0),n(270)),i={title:"Mutual TLS authentication for Admin API"},l={unversionedId:"mtls",id:"mtls",isDocsHomePage:!1,title:"Mutual TLS authentication for Admin API",description:"\x3c!--",source:"@site/docs/apisi [...]
\ No newline at end of file
diff --git a/assets/js/cf554819.951d2cbd.js b/assets/js/cf554819.951d2cbd.js
new file mode 100644
index 0000000..ad4342d
--- /dev/null
+++ b/assets/js/cf554819.951d2cbd.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[3055],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return s},kt:function(){return d}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a [...]
\ No newline at end of file
diff --git a/assets/js/cf554819.e5228e79.js b/assets/js/cf554819.e5228e79.js
deleted file mode 100644
index 8c9bbe5..0000000
--- a/assets/js/cf554819.e5228e79.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[158],{224:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return l})),n.d(t,"metadata",(function(){return b})),n.d(t,"toc",(function(){return c})),n.d(t,"default",(function(){return o}));var a=n(3),r=n(8),i=(n(0),n(270)),l={title:"jwt-auth"},b={unversionedId:"plugins/jwt-auth",id:"plugins/jwt-auth",isDocsHomePage:!1,title:"jwt-auth",description:"\x3c!--",source:"@site/docs/apisix/plugins/jwt-auth.md",slug:"/plugins/ [...]
\ No newline at end of file
diff --git a/assets/js/d0f73e13.12145532.js b/assets/js/d0f73e13.12145532.js
new file mode 100644
index 0000000..c40639f
--- /dev/null
+++ b/assets/js/d0f73e13.12145532.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[5901],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return p},kt:function(){return f}});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r [...]
\ No newline at end of file
diff --git a/assets/js/d0f73e13.da45fea6.js b/assets/js/d0f73e13.da45fea6.js
deleted file mode 100644
index 9e1c68e..0000000
--- a/assets/js/d0f73e13.da45fea6.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[159],{225: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 p}));var r=n(3),o=n(8),a=(n(0),n(270)),i={title:"Plugins"},c={unversionedId:"plugins",id:"plugins",isDocsHomePage:!1,title:"Plugins",description:"\x3c!--",source:"@site/docs/apisix/plugins.md",slug:"/plugins",permalink:"/docs/apisix/plug [...]
\ No newline at end of file
diff --git a/assets/js/d18db9b0.57c3dc75.js b/assets/js/d18db9b0.57c3dc75.js
deleted file mode 100644
index 2ec86ee..0000000
--- a/assets/js/d18db9b0.57c3dc75.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[160],{226:function(e,r,t){"use strict";t.r(r),t.d(r,"frontMatter",(function(){return a})),t.d(r,"metadata",(function(){return i})),t.d(r,"toc",(function(){return u})),t.d(r,"default",(function(){return l}));var n=t(3),o=t(8),c=(t(0),t(270)),a={},i={unversionedId:"IGNORE_DOC",id:"IGNORE_DOC",isDocsHomePage:!1,title:"IGNORE_DOC",description:"IGNORE_DOC",source:"@site/docs/apisix-ingress-controller/IGNORE_DOC.md",slug:"/IGNORE_DOC",permal [...]
\ No newline at end of file
diff --git a/assets/js/d18db9b0.ffc7527b.js b/assets/js/d18db9b0.ffc7527b.js
new file mode 100644
index 0000000..3735d81
--- /dev/null
+++ b/assets/js/d18db9b0.ffc7527b.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[7825],{3905:function(e,r,t){"use strict";t.d(r,{Zo:function(){return l},kt:function(){return O}});var n=t(7294);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function c(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}))),t.push.apply(t,n [...]
\ No newline at end of file
diff --git a/assets/js/d2247e49.b0d604a6.js b/assets/js/d2247e49.b0d604a6.js
deleted file mode 100644
index 49a3d69..0000000
--- a/assets/js/d2247e49.b0d604a6.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[161],{227:function(e,t,a){"use strict";a.r(t),a.d(t,"frontMatter",(function(){return b})),a.d(t,"metadata",(function(){return i})),a.d(t,"toc",(function(){return c})),a.d(t,"default",(function(){return o}));var n=a(3),r=a(8),l=(a(0),a(270)),b={title:"ApisixRoute/v2alpha1 Reference"},i={unversionedId:"references/apisix_route_v2alpha1",id:"references/apisix_route_v2alpha1",isDocsHomePage:!1,title:"ApisixRoute/v2alpha1 Reference",descript [...]
\ No newline at end of file
diff --git a/assets/js/d2247e49.e05ceca6.js b/assets/js/d2247e49.e05ceca6.js
new file mode 100644
index 0000000..7114fea
--- /dev/null
+++ b/assets/js/d2247e49.e05ceca6.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[4397],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return d},kt:function(){return c}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function 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}))),n.push.apply(n,a [...]
\ No newline at end of file
diff --git a/assets/js/d25ed933.1403aadd.js b/assets/js/d25ed933.1403aadd.js
new file mode 100644
index 0000000..08a6d8f
--- /dev/null
+++ b/assets/js/d25ed933.1403aadd.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[6983],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return u},kt:function(){return m}});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n [...]
\ No newline at end of file
diff --git a/assets/js/d25ed933.77008734.js b/assets/js/d25ed933.77008734.js
deleted file mode 100644
index 66d6350..0000000
--- a/assets/js/d25ed933.77008734.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[162],{228: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 p})),r.d(t,"default",(function(){return l}));var n=r(3),a=r(8),o=(r(0),r(270)),c={title:"Release Apache APISIX Dashboard 2.6"},i={permalink:"/events/2021/04/22/release-apache-apisix-dashboard-2.6",source:"@site/events/2021-04-22-release-apache-apisix-dashboard-2.6.md",descript [...]
\ No newline at end of file
diff --git a/assets/js/d3321028.1c64b781.js b/assets/js/d3321028.1c64b781.js
deleted file mode 100644
index 2f30dfd..0000000
--- a/assets/js/d3321028.1c64b781.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[163],{229: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(8),o=(t(0),t(270)),c={title:"Release Apache APISIX Ingress Controller 0.4.0"},i={permalink:"/events/2021/03/12/release-apache-apisix-ingress-controller-0.4.0",source:"@site/events/2021-03-12-release-apache-apisix-ingr [...]
\ No newline at end of file
diff --git a/assets/js/d3321028.8548eb3d.js b/assets/js/d3321028.8548eb3d.js
new file mode 100644
index 0000000..b4bbf82
--- /dev/null
+++ b/assets/js/d3321028.8548eb3d.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[8715],{3905:function(e,r,t){"use strict";t.d(r,{Zo:function(){return p},kt:function(){return m}});var n=t(7294);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 o(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}))),t.push.apply(t,n [...]
\ No newline at end of file
diff --git a/assets/js/d3e633ff.818f794a.js b/assets/js/d3e633ff.818f794a.js
deleted file mode 100644
index a3dd869..0000000
--- a/assets/js/d3e633ff.818f794a.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[164],{230:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return l})),n.d(t,"metadata",(function(){return i})),n.d(t,"toc",(function(){return o})),n.d(t,"default",(function(){return p}));var a=n(3),r=n(8),c=(n(0),n(270)),l={title:"proxy-cache"},i={unversionedId:"plugins/proxy-cache",id:"plugins/proxy-cache",isDocsHomePage:!1,title:"proxy-cache",description:"\x3c!--",source:"@site/docs/apisix/plugins/proxy-cache.md", [...]
\ No newline at end of file
diff --git a/assets/js/d3e633ff.f81b413b.js b/assets/js/d3e633ff.f81b413b.js
new file mode 100644
index 0000000..b2a7f6f
--- /dev/null
+++ b/assets/js/d3e633ff.f81b413b.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[723],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return s},kt:function(){return d}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function 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}))),n.push.apply(n,a) [...]
\ No newline at end of file
diff --git a/assets/js/d4de91ec.716c2062.js b/assets/js/d4de91ec.716c2062.js
deleted file mode 100644
index 6350bc4..0000000
--- a/assets/js/d4de91ec.716c2062.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[165],{231: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(8),n=(a(0),a(270)),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",descript [...]
\ No newline at end of file
diff --git a/assets/js/d4de91ec.ef332b85.js b/assets/js/d4de91ec.ef332b85.js
new file mode 100644
index 0000000..ee61f9b
--- /dev/null
+++ b/assets/js/d4de91ec.ef332b85.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[376],{3905:function(e,t,a){"use strict";a.d(t,{Zo:function(){return u},kt:function(){return d}});var r=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r) [...]
\ No newline at end of file
diff --git a/assets/js/d73fca9b.2f477cb6.js b/assets/js/d73fca9b.2f477cb6.js
new file mode 100644
index 0000000..9bbdef8
--- /dev/null
+++ b/assets/js/d73fca9b.2f477cb6.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[7384],{5596:function(i){"use strict";i.exports=JSON.parse('{"pluginId":"docs-apisix","version":"current","label":"Next","isLast":true,"docsSidebars":{"docs":[{"type":"link","label":"Apache APISIX","href":"https://apisix.apache.org/docs/apisix/getting-started"},{"collapsed":true,"type":"category","label":"Architecture Design","items":[{"type":"link","label":"APISIX","href":"/docs/apisix/architecture-design/apisix"},{"type":"link","label":"R [...]
\ No newline at end of file
diff --git a/assets/js/d73fca9b.6c49c622.js b/assets/js/d73fca9b.6c49c622.js
deleted file mode 100644
index ca5ac08..0000000
--- a/assets/js/d73fca9b.6c49c622.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[166],{232:function(i){i.exports=JSON.parse('{"pluginId":"docs-apisix","version":"current","label":"Next","isLast":true,"docsSidebars":{"docs":[{"type":"link","label":"Apache APISIX","href":"https://apisix.apache.org/docs/apisix/getting-started"},{"collapsed":true,"type":"category","label":"Architecture Design","items":[{"type":"link","label":"APISIX","href":"/docs/apisix/architecture-design/apisix"},{"type":"link","label":"Route","href [...]
\ No newline at end of file
diff --git a/assets/js/d9418bf0.adcc4b7d.js b/assets/js/d9418bf0.adcc4b7d.js
deleted file mode 100644
index 5948700..0000000
--- a/assets/js/d9418bf0.adcc4b7d.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[167],{233:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return i})),n.d(t,"metadata",(function(){return b})),n.d(t,"toc",(function(){return o})),n.d(t,"default",(function(){return p}));var a=n(3),r=n(8),l=(n(0),n(270)),i={title:"kafka-logger"},b={unversionedId:"plugins/kafka-logger",id:"plugins/kafka-logger",isDocsHomePage:!1,title:"kafka-logger",description:"\x3c!--",source:"@site/docs/apisix/plugins/kafka-logger [...]
\ No newline at end of file
diff --git a/assets/js/d9418bf0.b68c64dd.js b/assets/js/d9418bf0.b68c64dd.js
new file mode 100644
index 0000000..41548e0
--- /dev/null
+++ b/assets/js/d9418bf0.b68c64dd.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[152],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return s},kt:function(){return k}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function 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}))),n.push.apply(n,a) [...]
\ No newline at end of file
diff --git a/assets/js/da9aeeeb.056f5df4.js b/assets/js/da9aeeeb.056f5df4.js
new file mode 100644
index 0000000..ef53200
--- /dev/null
+++ b/assets/js/da9aeeeb.056f5df4.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[616],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return d},kt:function(){return m}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a) [...]
\ No newline at end of file
diff --git a/assets/js/da9aeeeb.d1d003c7.js b/assets/js/da9aeeeb.d1d003c7.js
deleted file mode 100644
index d186d38..0000000
--- a/assets/js/da9aeeeb.d1d003c7.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[168],{234: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 a=n(3),r=n(8),i=(n(0),n(270)),s={title:"Backend Tests"},o={unversionedId:"back-end-tests",id:"back-end-tests",isDocsHomePage:!1,title:"Backend Tests",description:"\x3c!--",source:"@site/docs/apisix-dashboard/back-end-tests.md",s [...]
\ No newline at end of file
diff --git a/assets/js/dcb3fc1e.0fc675dc.js b/assets/js/dcb3fc1e.0fc675dc.js
new file mode 100644
index 0000000..95c4ff5
--- /dev/null
+++ b/assets/js/dcb3fc1e.0fc675dc.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[2398],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return p},kt:function(){return f}});var r=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r [...]
\ No newline at end of file
diff --git a/assets/js/dcb3fc1e.f0b80faf.js b/assets/js/dcb3fc1e.f0b80faf.js
deleted file mode 100644
index 1933f61..0000000
--- a/assets/js/dcb3fc1e.f0b80faf.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[169],{235:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return c})),n.d(t,"metadata",(function(){return o})),n.d(t,"toc",(function(){return s})),n.d(t,"default",(function(){return p}));var r=n(3),i=n(8),a=(n(0),n(270)),c={title:"Service"},o={unversionedId:"architecture-design/service",id:"architecture-design/service",isDocsHomePage:!1,title:"Service",description:"\x3c!--",source:"@site/docs/apisix/architecture-des [...]
\ No newline at end of file
diff --git a/assets/js/dd639a99.07a99646.js b/assets/js/dd639a99.07a99646.js
deleted file mode 100644
index fbf114a..0000000
--- a/assets/js/dd639a99.07a99646.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[170],{236:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return l})),n.d(t,"metadata",(function(){return c})),n.d(t,"toc",(function(){return u})),n.d(t,"default",(function(){return o}));var a=n(3),r=n(8),i=(n(0),n(270)),l={title:"basic-auth"},c={unversionedId:"plugins/basic-auth",id:"plugins/basic-auth",isDocsHomePage:!1,title:"basic-auth",description:"\x3c!--",source:"@site/docs/apisix/plugins/basic-auth.md",slug: [...]
\ No newline at end of file
diff --git a/assets/js/dd639a99.94ca31c0.js b/assets/js/dd639a99.94ca31c0.js
new file mode 100644
index 0000000..d459357
--- /dev/null
+++ b/assets/js/dd639a99.94ca31c0.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[6031],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return p},kt:function(){return m}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a [...]
\ No newline at end of file
diff --git a/assets/js/e02da2c5.081e8184.js b/assets/js/e02da2c5.081e8184.js
new file mode 100644
index 0000000..5d605a2
--- /dev/null
+++ b/assets/js/e02da2c5.081e8184.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[5194],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return l},kt:function(){return s}});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r [...]
\ No newline at end of file
diff --git a/assets/js/e02da2c5.3872722c.js b/assets/js/e02da2c5.3872722c.js
deleted file mode 100644
index cb252ea..0000000
--- a/assets/js/e02da2c5.3872722c.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[171],{237:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return c})),n.d(t,"metadata",(function(){return i})),n.d(t,"toc",(function(){return p})),n.d(t,"default",(function(){return l}));var r=n(3),o=n(8),a=(n(0),n(270)),c={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/33000 [...]
\ No newline at end of file
diff --git a/assets/js/e1a3b18d.91652dcc.js b/assets/js/e1a3b18d.91652dcc.js
deleted file mode 100644
index ae6a49b..0000000
--- a/assets/js/e1a3b18d.91652dcc.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[172],{238: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 p})),r.d(t,"default",(function(){return u}));var n=r(3),o=r(8),a=(r(0),r(270)),c={title:"Install Apache APISIX from Helm Charts",author:"Chao Zhang",authorURL:"https://github.com/tokers",authorImageURL:"https://avatars.githubusercontent.com/u/10428333?s=400&u=f48ef50c5621a1616 [...]
\ No newline at end of file
diff --git a/assets/js/e1a3b18d.f61b4211.js b/assets/js/e1a3b18d.f61b4211.js
new file mode 100644
index 0000000..75fe91a
--- /dev/null
+++ b/assets/js/e1a3b18d.f61b4211.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[4653],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return u},kt:function(){return m}});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n [...]
\ No newline at end of file
diff --git a/assets/js/e278666a.8d5549f8.js b/assets/js/e278666a.8d5549f8.js
deleted file mode 100644
index 7a01eae..0000000
--- a/assets/js/e278666a.8d5549f8.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[173],{239:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return i})),n.d(t,"metadata",(function(){return o})),n.d(t,"toc",(function(){return p})),n.d(t,"default",(function(){return b}));var r=n(3),a=n(8),l=(n(0),n(270)),i={title:"grpc-transcode"},o={unversionedId:"plugins/grpc-transcode",id:"plugins/grpc-transcode",isDocsHomePage:!1,title:"grpc-transcode",description:"\x3c!--",source:"@site/docs/apisix/plugins/grpc [...]
\ No newline at end of file
diff --git a/assets/js/e278666a.c3374894.js b/assets/js/e278666a.c3374894.js
new file mode 100644
index 0000000..b5f5a5f
--- /dev/null
+++ b/assets/js/e278666a.c3374894.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[1529],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return s},kt:function(){return m}});var r=n(7294);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 l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r [...]
\ No newline at end of file
diff --git a/assets/js/e3d364e1.3af322dd.js b/assets/js/e3d364e1.3af322dd.js
new file mode 100644
index 0000000..b5194e5
--- /dev/null
+++ b/assets/js/e3d364e1.3af322dd.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[6588],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return p},kt:function(){return d}});var i=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i [...]
\ No newline at end of file
diff --git a/assets/js/e3d364e1.e73825b9.js b/assets/js/e3d364e1.e73825b9.js
deleted file mode 100644
index 7bbcc69..0000000
--- a/assets/js/e3d364e1.e73825b9.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[174],{240:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return c})),n.d(t,"metadata",(function(){return o})),n.d(t,"toc",(function(){return s})),n.d(t,"default",(function(){return p}));var i=n(3),a=n(8),r=(n(0),n(270)),c={title:"HTTPS"},o={unversionedId:"https",id:"https",isDocsHomePage:!1,title:"HTTPS",description:"\x3c!--",source:"@site/docs/apisix/https.md",slug:"/https",permalink:"/docs/apisix/https",editUrl:" [...]
\ No newline at end of file
diff --git a/assets/js/e451ae2c.08ccb9d7.js b/assets/js/e451ae2c.08ccb9d7.js
new file mode 100644
index 0000000..2d44514
--- /dev/null
+++ b/assets/js/e451ae2c.08ccb9d7.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[3077],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return l},kt:function(){return m}});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n [...]
\ No newline at end of file
diff --git a/assets/js/e451ae2c.a04bc61c.js b/assets/js/e451ae2c.a04bc61c.js
deleted file mode 100644
index 3b6cbb8..0000000
--- a/assets/js/e451ae2c.a04bc61c.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[175],{241: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(8),a=(r(0),r(270)),c={title:"Stable Product Delivery with Cypress",author:"Yi Sun",authorURL:"https://github.com/LiteSun",authorImageURL:"https://avatars.githubusercontent.com/u/31329157?s=400&u=e81b4bb4db2be162c1fcac [...]
\ No newline at end of file
diff --git a/assets/js/e461335b.06b4c2c5.js b/assets/js/e461335b.06b4c2c5.js
deleted file mode 100644
index 5baa41f..0000000
--- a/assets/js/e461335b.06b4c2c5.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[176],{242:function(e,n,t){"use strict";t.r(n),t.d(n,"frontMatter",(function(){return o})),t.d(n,"metadata",(function(){return l})),t.d(n,"toc",(function(){return s})),t.d(n,"default",(function(){return p}));var a=t(3),r=t(8),i=(t(0),t(270)),o={title:"consul_kv"},l={unversionedId:"discovery/consul_kv",id:"discovery/consul_kv",isDocsHomePage:!1,title:"consul_kv",description:"\x3c!--",source:"@site/docs/apisix/discovery/consul_kv.md",slug [...]
\ No newline at end of file
diff --git a/assets/js/e461335b.e13340b5.js b/assets/js/e461335b.e13340b5.js
new file mode 100644
index 0000000..b0be0ec
--- /dev/null
+++ b/assets/js/e461335b.e13340b5.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[7714],{3905:function(e,n,t){"use strict";t.d(n,{Zo:function(){return p},kt:function(){return m}});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a [...]
\ No newline at end of file
diff --git a/assets/js/e5ad0cc6.4d433c7b.js b/assets/js/e5ad0cc6.4d433c7b.js
deleted file mode 100644
index 10b48d4..0000000
--- a/assets/js/e5ad0cc6.4d433c7b.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[177],{243:function(e,n,t){"use strict";t.r(n),t.d(n,"frontMatter",(function(){return i})),t.d(n,"metadata",(function(){return o})),t.d(n,"toc",(function(){return s})),t.d(n,"default",(function(){return l}));var a=t(3),r=t(8),c=(t(0),t(270)),i={title:"Upstream"},o={unversionedId:"architecture-design/upstream",id:"architecture-design/upstream",isDocsHomePage:!1,title:"Upstream",description:"\x3c!--",source:"@site/docs/apisix/architecture [...]
\ No newline at end of file
diff --git a/assets/js/e5ad0cc6.eb786536.js b/assets/js/e5ad0cc6.eb786536.js
new file mode 100644
index 0000000..57c883d
--- /dev/null
+++ b/assets/js/e5ad0cc6.eb786536.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[2171],{3905:function(e,n,t){"use strict";t.d(n,{Zo:function(){return l},kt:function(){return m}});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a [...]
\ No newline at end of file
diff --git a/assets/js/e60dd3b0.4544b712.js b/assets/js/e60dd3b0.4544b712.js
new file mode 100644
index 0000000..a651aff
--- /dev/null
+++ b/assets/js/e60dd3b0.4544b712.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[3739],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return c},kt:function(){return m}});var i=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i [...]
\ No newline at end of file
diff --git a/assets/js/e60dd3b0.7e55d226.js b/assets/js/e60dd3b0.7e55d226.js
deleted file mode 100644
index 1888966..0000000
--- a/assets/js/e60dd3b0.7e55d226.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[178],{244: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),r=n(8),a=(n(0),n(270)),s={title:"Ingress Controller"},o={unversionedId:"design",id:"design",isDocsHomePage:!1,title:"Ingress Controller",description:"\x3c!--",source:"@site/docs/apisix-ingress-controller/design.md",slug:" [...]
\ No newline at end of file
diff --git a/assets/js/e6331947.90cab919.js b/assets/js/e6331947.90cab919.js
new file mode 100644
index 0000000..e832514
--- /dev/null
+++ b/assets/js/e6331947.90cab919.js
@@ -0,0 +1,2 @@
+/*! For license information please see e6331947.90cab919.js.LICENSE.txt */
+(self.webpackChunk=self.webpackChunk||[]).push([[2455],{1427:function(e,t,r){"use strict";var n=r(8185),i=r(6479),a=r(2956);function s(e,t,r){return new n(e,t,r)}s.version=r(4392),s.AlgoliaSearchHelper=n,s.SearchParameters=i,s.SearchResults=a,e.exports=s},2213:function(e,t,r){"use strict";var n=r(7802);function i(e,t){this.main=e,this.fn=t,this.lastResults=null}r(3412)(i,n.EventEmitter),i.prototype.detach=function(){this.removeAllListeners(),this.main.detachDerivedHelper(this)},i.prototy [...]
\ No newline at end of file
diff --git a/assets/js/e6331947.90cab919.js.LICENSE.txt b/assets/js/e6331947.90cab919.js.LICENSE.txt
new file mode 100644
index 0000000..b78f682
--- /dev/null
+++ b/assets/js/e6331947.90cab919.js.LICENSE.txt
@@ -0,0 +1 @@
+/*! algoliasearch-lite.umd.js | 4.9.0 | © Algolia, inc. | https://github.com/algolia/algoliasearch-client-javascript */
diff --git a/assets/js/e75fbec5.03dfa561.js b/assets/js/e75fbec5.03dfa561.js
new file mode 100644
index 0000000..1c4f2a1
--- /dev/null
+++ b/assets/js/e75fbec5.03dfa561.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[1980],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return p},kt:function(){return m}});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n [...]
\ No newline at end of file
diff --git a/assets/js/e75fbec5.fdcbfe13.js b/assets/js/e75fbec5.fdcbfe13.js
deleted file mode 100644
index d47d5df..0000000
--- a/assets/js/e75fbec5.fdcbfe13.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[179],{247:function(e,t,r){"use strict";r.r(t),r.d(t,"frontMatter",(function(){return i})),r.d(t,"metadata",(function(){return o})),r.d(t,"toc",(function(){return l})),r.d(t,"default",(function(){return p}));var n=r(3),a=r(8),c=(r(0),r(270)),i={title:"ApisixTls Reference"},o={unversionedId:"references/apisix_tls",id:"references/apisix_tls",isDocsHomePage:!1,title:"ApisixTls Reference",description:"\x3c!--",source:"@site/docs/apisix-ingr [...]
\ No newline at end of file
diff --git a/assets/js/e7ebab94.45249921.js b/assets/js/e7ebab94.45249921.js
new file mode 100644
index 0000000..83668da
--- /dev/null
+++ b/assets/js/e7ebab94.45249921.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[7741],{3905:function(t,e,n){"use strict";n.d(e,{Zo:function(){return s},kt:function(){return g}});var a=n(7294);function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,a [...]
\ No newline at end of file
diff --git a/assets/js/e7ebab94.ecae67f7.js b/assets/js/e7ebab94.ecae67f7.js
deleted file mode 100644
index 57761a4..0000000
--- a/assets/js/e7ebab94.ecae67f7.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[180],{248:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return b})),n.d(t,"metadata",(function(){return i})),n.d(t,"toc",(function(){return o})),n.d(t,"default",(function(){return p}));var a=n(3),r=n(8),l=(n(0),n(270)),b={title:"syslog"},i={unversionedId:"plugins/syslog",id:"plugins/syslog",isDocsHomePage:!1,title:"syslog",description:"\x3c!--",source:"@site/docs/apisix/plugins/syslog.md",slug:"/plugins/syslog",pe [...]
\ No newline at end of file
diff --git a/assets/js/ec546d2e.27c63a15.js b/assets/js/ec546d2e.27c63a15.js
deleted file mode 100644
index f886778..0000000
--- a/assets/js/ec546d2e.27c63a15.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[181],{249:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return o})),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),a=n(8),i=(n(0),n(270)),o={title:"Consumer"},c={unversionedId:"architecture-design/consumer",id:"architecture-design/consumer",isDocsHomePage:!1,title:"Consumer",description:"\x3c!--",source:"@site/docs/apisix/architecture [...]
\ No newline at end of file
diff --git a/assets/js/ec546d2e.a72f8a97.js b/assets/js/ec546d2e.a72f8a97.js
new file mode 100644
index 0000000..974338f
--- /dev/null
+++ b/assets/js/ec546d2e.a72f8a97.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[3649],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return l},kt:function(){return d}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r [...]
\ No newline at end of file
diff --git a/assets/js/ed20433f.55cb902d.js b/assets/js/ed20433f.55cb902d.js
deleted file mode 100644
index a3324e7..0000000
--- a/assets/js/ed20433f.55cb902d.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[182],{250:function(e,r,t){"use strict";t.r(r),t.d(r,"frontMatter",(function(){return o})),t.d(r,"metadata",(function(){return i})),t.d(r,"toc",(function(){return c})),t.d(r,"default",(function(){return p}));var n=t(3),a=t(8),l=(t(0),t(270)),o={title:"log-rotate"},i={unversionedId:"plugins/log-rotate",id:"plugins/log-rotate",isDocsHomePage:!1,title:"log-rotate",description:"\x3c!--",source:"@site/docs/apisix/plugins/log-rotate.md",slug: [...]
\ No newline at end of file
diff --git a/assets/js/ed20433f.8f13a1a9.js b/assets/js/ed20433f.8f13a1a9.js
new file mode 100644
index 0000000..4b83256
--- /dev/null
+++ b/assets/js/ed20433f.8f13a1a9.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[2219],{3905:function(e,r,t){"use strict";t.d(r,{Zo:function(){return c},kt:function(){return m}});var n=t(7294);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 l(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}))),t.push.apply(t,n [...]
\ No newline at end of file
diff --git a/assets/js/ef63a76e.6f5b7b0b.js b/assets/js/ef63a76e.6f5b7b0b.js
new file mode 100644
index 0000000..ddaa93d
--- /dev/null
+++ b/assets/js/ef63a76e.6f5b7b0b.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[8846],{3905:function(n,e,t){"use strict";t.d(e,{Zo:function(){return p},kt:function(){return g}});var r=t(7294);function i(n,e,t){return e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function o(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),t.push.apply(t,r [...]
\ No newline at end of file
diff --git a/assets/js/ef63a76e.8961b158.js b/assets/js/ef63a76e.8961b158.js
deleted file mode 100644
index afd2509..0000000
--- a/assets/js/ef63a76e.8961b158.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[183],{251:function(e,n,t){"use strict";t.r(n),t.d(n,"frontMatter",(function(){return c})),t.d(n,"metadata",(function(){return a})),t.d(n,"toc",(function(){return u})),t.d(n,"default",(function(){return p}));var r=t(3),i=t(8),o=(t(0),t(270)),c={title:"Plugin Config"},a={unversionedId:"architecture-design/plugin-config",id:"architecture-design/plugin-config",isDocsHomePage:!1,title:"Plugin Config",description:"\x3c!--",source:"@site/docs [...]
\ No newline at end of file
diff --git a/assets/js/f1d91454.1d870b93.js b/assets/js/f1d91454.1d870b93.js
deleted file mode 100644
index 0c31582..0000000
--- a/assets/js/f1d91454.1d870b93.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[184],{252:function(e){e.exports=JSON.parse('{"pluginId":"docs-apisix-helm-chart","version":"current","label":"Next","isLast":true,"docsSidebars":{"docs":[{"type":"link","label":"Apache APISIX\u2122 Helm Chart","href":"https://apisix.apache.org/docs/helm-chart/apisix/"},{"collapsed":true,"type":"category","label":"Installation","items":[{"type":"link","label":"Apache APISIX Helm Chart","href":"/docs/helm-chart/apisix"},{"type":"link","l [...]
\ No newline at end of file
diff --git a/assets/js/f1d91454.7fe11ef9.js b/assets/js/f1d91454.7fe11ef9.js
new file mode 100644
index 0000000..8a0bf8b
--- /dev/null
+++ b/assets/js/f1d91454.7fe11ef9.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[4822],{993:function(e){"use strict";e.exports=JSON.parse('{"pluginId":"docs-apisix-helm-chart","version":"current","label":"Next","isLast":true,"docsSidebars":{"docs":[{"type":"link","label":"Apache APISIX\u2122 Helm Chart","href":"https://apisix.apache.org/docs/helm-chart/apisix/"},{"collapsed":true,"type":"category","label":"Installation","items":[{"type":"link","label":"Apache APISIX Helm Chart","href":"/docs/helm-chart/apisix"},{"type" [...]
\ No newline at end of file
diff --git a/assets/js/f202f54b.147e6732.js b/assets/js/f202f54b.147e6732.js
deleted file mode 100644
index 6099914..0000000
--- a/assets/js/f202f54b.147e6732.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[185],{253:function(e,n,t){"use strict";t.r(n),t.d(n,"frontMatter",(function(){return a})),t.d(n,"metadata",(function(){return c})),t.d(n,"toc",(function(){return l})),t.d(n,"default",(function(){return p}));var i=t(3),r=t(8),o=(t(0),t(270)),a={title:"Plugin"},c={unversionedId:"architecture-design/plugin",id:"architecture-design/plugin",isDocsHomePage:!1,title:"Plugin",description:"\x3c!--",source:"@site/docs/apisix/architecture-design/ [...]
\ No newline at end of file
diff --git a/assets/js/f202f54b.9b30867a.js b/assets/js/f202f54b.9b30867a.js
new file mode 100644
index 0000000..f153a2a
--- /dev/null
+++ b/assets/js/f202f54b.9b30867a.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[1994],{3905:function(e,n,t){"use strict";t.d(n,{Zo:function(){return p},kt:function(){return f}});var i=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);n&&(i=i.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,i [...]
\ No newline at end of file
diff --git a/assets/js/f243156b.1481c128.js b/assets/js/f243156b.1481c128.js
deleted file mode 100644
index a882d42..0000000
--- a/assets/js/f243156b.1481c128.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[186],{254:function(d){d.exports=JSON.parse('{"pluginId":"docs-apisix-dashboard","version":"current","label":"Next","isLast":true,"docsSidebars":{"docs":[{"type":"link","label":"Apache APISIX Dashboard","href":"https://apisix.apache.org/docs/dashboard/USER_GUIDE/"},{"collapsed":true,"type":"category","label":"Getting Started","items":[{"type":"link","label":"User Guide","href":"/docs/dashboard/USER_GUIDE"},{"type":"link","label":"Import [...]
\ No newline at end of file
diff --git a/assets/js/f243156b.7b8e9e61.js b/assets/js/f243156b.7b8e9e61.js
new file mode 100644
index 0000000..a825c21
--- /dev/null
+++ b/assets/js/f243156b.7b8e9e61.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[2037],{9861:function(e){"use strict";e.exports=JSON.parse('{"pluginId":"docs-apisix-dashboard","version":"current","label":"Next","isLast":true,"docsSidebars":{"docs":[{"type":"link","label":"Apache APISIX Dashboard","href":"https://apisix.apache.org/docs/dashboard/USER_GUIDE/"},{"collapsed":true,"type":"category","label":"Getting Started","items":[{"type":"link","label":"User Guide","href":"/docs/dashboard/USER_GUIDE"},{"type":"link","lab [...]
\ No newline at end of file
diff --git a/assets/js/f45d06d8.1c72ef29.js b/assets/js/f45d06d8.1c72ef29.js
new file mode 100644
index 0000000..cfdd959
--- /dev/null
+++ b/assets/js/f45d06d8.1c72ef29.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[7270],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return c},kt:function(){return m}});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n [...]
\ No newline at end of file
diff --git a/assets/js/f45d06d8.392b8c69.js b/assets/js/f45d06d8.392b8c69.js
deleted file mode 100644
index aeaa390..0000000
--- a/assets/js/f45d06d8.392b8c69.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[187],{255:function(e,t,r){"use strict";r.r(t),r.d(t,"frontMatter",(function(){return o})),r.d(t,"metadata",(function(){return s})),r.d(t,"toc",(function(){return c})),r.d(t,"default",(function(){return p}));var n=r(3),a=r(8),i=(r(0),r(270)),o={title:"Getting Started"},s={unversionedId:"getting-started",id:"getting-started",isDocsHomePage:!1,title:"Getting Started",description:"\x3c!--",source:"@site/docs/apisix-ingress-controller/getti [...]
\ No newline at end of file
diff --git a/assets/js/f4620fb6.dae92d21.js b/assets/js/f4620fb6.dae92d21.js
deleted file mode 100644
index 83b444c..0000000
--- a/assets/js/f4620fb6.dae92d21.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[188],{256:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return o})),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),a=n(8),i=(n(0),n(270)),o={title:"ApisixTls"},c={unversionedId:"concepts/apisix_tls",id:"concepts/apisix_tls",isDocsHomePage:!1,title:"ApisixTls",description:"\x3c!--",source:"@site/docs/apisix-ingress-controller/concepts/ [...]
\ No newline at end of file
diff --git a/assets/js/f4620fb6.e3dcba34.js b/assets/js/f4620fb6.e3dcba34.js
new file mode 100644
index 0000000..f7dfb0b
--- /dev/null
+++ b/assets/js/f4620fb6.e3dcba34.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[6038],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return p},kt:function(){return m}});var r=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r [...]
\ No newline at end of file
diff --git a/assets/js/f6cd6006.39fb4ab6.js b/assets/js/f6cd6006.39fb4ab6.js
new file mode 100644
index 0000000..6ba9161
--- /dev/null
+++ b/assets/js/f6cd6006.39fb4ab6.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[5100],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return p},kt:function(){return h}});var r=n(7294);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 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}))),n.push.apply(n,r [...]
\ No newline at end of file
diff --git a/assets/js/f6cd6006.df19eafd.js b/assets/js/f6cd6006.df19eafd.js
deleted file mode 100644
index 2ed6898..0000000
--- a/assets/js/f6cd6006.df19eafd.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[189],{257:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return i})),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(8),s=(n(0),n(270)),i={title:"Install Ingress APISIX on Azure AKS"},o={unversionedId:"deployments/azure",id:"deployments/azure",isDocsHomePage:!1,title:"Install Ingress APISIX on Azure AKS",description:"\x3c!--",source [...]
\ No newline at end of file
diff --git a/assets/js/f7488fe8.0bab9cf0.js b/assets/js/f7488fe8.0bab9cf0.js
deleted file mode 100644
index 564bea3..0000000
--- a/assets/js/f7488fe8.0bab9cf0.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[190],{258:function(e){e.exports=JSON.parse('{"title":"Recent posts","items":[{"title":"Release Apache APISIX Dashboard 2.6","permalink":"/events/2021/04/22/release-apache-apisix-dashboard-2.6"},{"title":"Release Apache APISIX Ingress Controller 0.5","permalink":"/events/2021/04/13/release-apisix-ingress-controller-0.5"},{"title":"Release Apache APISIX 2.5","permalink":"/events/2021/04/05/release-apache-apisix-2.5"},{"title":"Release Ap [...]
\ No newline at end of file
diff --git a/assets/js/f7488fe8.9f173681.js b/assets/js/f7488fe8.9f173681.js
new file mode 100644
index 0000000..b96d9ae
--- /dev/null
+++ b/assets/js/f7488fe8.9f173681.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[5199],{7624:function(e){"use strict";e.exports=JSON.parse('{"title":"Recent posts","items":[{"title":"Release Apache APISIX Dashboard 2.6","permalink":"/events/2021/04/22/release-apache-apisix-dashboard-2.6"},{"title":"Release Apache APISIX Ingress Controller 0.5","permalink":"/events/2021/04/13/release-apisix-ingress-controller-0.5"},{"title":"Release Apache APISIX 2.5","permalink":"/events/2021/04/05/release-apache-apisix-2.5"},{"title": [...]
\ No newline at end of file
diff --git a/assets/js/f7b3f6db.0afacce7.js b/assets/js/f7b3f6db.0afacce7.js
new file mode 100644
index 0000000..29c9594
--- /dev/null
+++ b/assets/js/f7b3f6db.0afacce7.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[2001],{3905:function(e,t,a){"use strict";a.d(t,{Zo:function(){return u},kt:function(){return f}});var r=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r [...]
\ No newline at end of file
diff --git a/assets/js/f7b3f6db.b630e133.js b/assets/js/f7b3f6db.b630e133.js
deleted file mode 100644
index 21aa889..0000000
--- a/assets/js/f7b3f6db.b630e133.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[191],{259: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 u}));var r=a(3),n=a(8),i=(a(0),a(270)),p={title:"Release Apache APISIX 2.4"},c={permalink:"/events/2021/03/05/release-apache-apisix-2.4",source:"@site/events/2021-03-05-release-apache-apisix-2.4.md",description:"Change",date:"2021-03-05T [...]
\ No newline at end of file
diff --git a/assets/js/f8217c69.8c15dfef.js b/assets/js/f8217c69.8c15dfef.js
new file mode 100644
index 0000000..8b10d1c
--- /dev/null
+++ b/assets/js/f8217c69.8c15dfef.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[7680],{3905:function(t,e,n){"use strict";n.d(e,{Zo:function(){return h},kt:function(){return c}});var a=n(7294);function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,a [...]
\ No newline at end of file
diff --git a/assets/js/f8217c69.ff154d03.js b/assets/js/f8217c69.ff154d03.js
deleted file mode 100644
index 00e28a4..0000000
--- a/assets/js/f8217c69.ff154d03.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[192],{260:function(e,t,a){"use strict";a.r(t),a.d(t,"frontMatter",(function(){return i})),a.d(t,"metadata",(function(){return b})),a.d(t,"toc",(function(){return c})),a.d(t,"default",(function(){return p}));var n=a(3),r=a(8),l=(a(0),a(270)),i={title:"ApisixUpstream Reference"},b={unversionedId:"references/apisix_upstream",id:"references/apisix_upstream",isDocsHomePage:!1,title:"ApisixUpstream Reference",description:"\x3c!--",source:"@s [...]
\ No newline at end of file
diff --git a/assets/js/fa919c95.9940e680.js b/assets/js/fa919c95.9940e680.js
new file mode 100644
index 0000000..c7d08e9
--- /dev/null
+++ b/assets/js/fa919c95.9940e680.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[7677],{3905:function(e,r,t){"use strict";t.d(r,{Zo:function(){return p},kt:function(){return m}});var n=t(7294);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 o(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}))),t.push.apply(t,n [...]
\ No newline at end of file
diff --git a/assets/js/fa919c95.adb23c3a.js b/assets/js/fa919c95.adb23c3a.js
deleted file mode 100644
index 86635e9..0000000
--- a/assets/js/fa919c95.adb23c3a.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[193],{261: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(8),o=(t(0),t(270)),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-ingr [...]
\ No newline at end of file
diff --git a/assets/js/fd72aa65.3d67f7e3.js b/assets/js/fd72aa65.3d67f7e3.js
deleted file mode 100644
index b49473a..0000000
--- a/assets/js/fd72aa65.3d67f7e3.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[194],{262:function(e,t,r){"use strict";r.r(t),r.d(t,"frontMatter",(function(){return c})),r.d(t,"metadata",(function(){return a})),r.d(t,"toc",(function(){return s})),r.d(t,"default",(function(){return l}));var n=r(3),i=r(8),o=(r(0),r(270)),c={title:"Ingress APISIX Use Examples"},a={unversionedId:"practices/index",id:"practices/index",isDocsHomePage:!1,title:"Ingress APISIX Use Examples",description:"\x3c!--",source:"@site/docs/apisix- [...]
\ No newline at end of file
diff --git a/assets/js/fd72aa65.f429c64a.js b/assets/js/fd72aa65.f429c64a.js
new file mode 100644
index 0000000..5d1a744
--- /dev/null
+++ b/assets/js/fd72aa65.f429c64a.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[1771],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return l},kt:function(){return m}});var n=r(7294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n [...]
\ No newline at end of file
diff --git a/assets/js/ff8d1795.6b1ff326.js b/assets/js/ff8d1795.6b1ff326.js
deleted file mode 100644
index da31230..0000000
--- a/assets/js/ff8d1795.6b1ff326.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[195],{263:function(e,n,t){"use strict";t.r(n),t.d(n,"frontMatter",(function(){return i})),t.d(n,"metadata",(function(){return c})),t.d(n,"toc",(function(){return l})),t.d(n,"default",(function(){return s}));var r=t(3),a=t(8),o=(t(0),t(270)),i={title:"Control API"},c={unversionedId:"control-api",id:"control-api",isDocsHomePage:!1,title:"Control API",description:"\x3c!--",source:"@site/docs/apisix/control-api.md",slug:"/control-api",perm [...]
\ No newline at end of file
diff --git a/assets/js/ff8d1795.abd59e60.js b/assets/js/ff8d1795.abd59e60.js
new file mode 100644
index 0000000..b9dc5a0
--- /dev/null
+++ b/assets/js/ff8d1795.abd59e60.js
@@ -0,0 +1 @@
+(self.webpackChunk=self.webpackChunk||[]).push([[222],{3905:function(e,n,t){"use strict";t.d(n,{Zo:function(){return s},kt:function(){return d}});var r=t(7294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r) [...]
\ No newline at end of file
diff --git a/assets/js/main.690fe4bb.js b/assets/js/main.690fe4bb.js
deleted file mode 100644
index 796e287..0000000
--- a/assets/js/main.690fe4bb.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/*! For license information please see main.690fe4bb.js.LICENSE.txt */
-(window.webpackJsonp=window.webpackJsonp||[]).push([[196],[function(e,t,n){"use strict";e.exports=n(39)},function(e,t,n){e.exports=n(43)()},function(e,t,n){"use strict";n.d(t,"a",(function(){return v})),n.d(t,"b",(function(){return x})),n.d(t,"c",(function(){return S})),n.d(t,"d",(function(){return O})),n.d(t,"e",(function(){return b})),n.d(t,"f",(function(){return j})),n.d(t,"g",(function(){return L})),n.d(t,"h",(function(){return g})),n.d(t,"i",(function(){return E})),n.d(t,"j",(functi [...]
\ No newline at end of file
diff --git a/assets/js/main.690fe4bb.js.LICENSE.txt b/assets/js/main.690fe4bb.js.LICENSE.txt
deleted file mode 100644
index 8039c42..0000000
--- a/assets/js/main.690fe4bb.js.LICENSE.txt
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
-object-assign
-(c) Sindre Sorhus
-@license MIT
-*/
-
-/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress
- * @license MIT */
-
-/** @license React v0.19.1
- * scheduler.production.min.js
- *
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
-/** @license React v16.13.1
- * react-is.production.min.js
- *
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
-/** @license React v16.14.0
- * react-dom.production.min.js
- *
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
-/** @license React v16.14.0
- * react.production.min.js
- *
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
diff --git a/assets/js/main.b9a04668.js b/assets/js/main.b9a04668.js
new file mode 100644
index 0000000..178a651
--- /dev/null
+++ b/assets/js/main.b9a04668.js
@@ -0,0 +1,2 @@
+/*! For license information please see main.b9a04668.js.LICENSE.txt */
+(self.webpackChunk=self.webpackChunk||[]).push([[179],{4644:function(e){"use strict";e.exports={}},2122:function(e,t,n){"use strict";function r(){return(r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}n.d(t,{Z:function(){return r}})},3552:function(e,t,n){"use strict";function r(e,t){return(r=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e} [...]
\ No newline at end of file
diff --git a/assets/js/main.b9a04668.js.LICENSE.txt b/assets/js/main.b9a04668.js.LICENSE.txt
new file mode 100644
index 0000000..2ac88e6
--- /dev/null
+++ b/assets/js/main.b9a04668.js.LICENSE.txt
@@ -0,0 +1,44 @@
+/*
+object-assign
+(c) Sindre Sorhus
+@license MIT
+*/
+
+/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress
+ * @license MIT */
+
+/** @license React v0.20.2
+ * scheduler.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+/** @license React v16.13.1
+ * react-is.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+/** @license React v17.0.2
+ * react-dom.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+/** @license React v17.0.2
+ * react.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
diff --git a/assets/js/runtime~main.9e570764.js b/assets/js/runtime~main.9e570764.js
new file mode 100644
index 0000000..4fa3e15
--- /dev/null
+++ b/assets/js/runtime~main.9e570764.js
@@ -0,0 +1 @@
+!function(){"use strict";var e,f,a,b,c={},d={};function t(e){var f=d[e];if(void 0!==f)return f.exports;var a=d[e]={id:e,loaded:!1,exports:{}};return c[e].call(a.exports,a,a.exports,t),a.loaded=!0,a.exports}t.m=c,t.c=d,e=[],t.O=function(f,a,b,c){if(!a){var d=1/0;for(o=0;o<e.length;o++){a=e[o][0],b=e[o][1],c=e[o][2];for(var n=!0,r=0;r<a.length;r++)(!1&c||d>=c)&&Object.keys(t.O).every((function(e){return t.O[e](a[r])}))?a.splice(r--,1):(n=!1,c<d&&(d=c));n&&(e.splice(o--,1),f=b())}return f}c [...]
\ No newline at end of file
diff --git a/assets/js/runtime~main.c0371017.js b/assets/js/runtime~main.c0371017.js
deleted file mode 100644
index 72d7134..0000000
--- a/assets/js/runtime~main.c0371017.js
+++ /dev/null
@@ -1 +0,0 @@
-!function(e){function f(f){for(var c,r,t=f[0],n=f[1],o=f[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(c in n)Object.prototype.hasOwnProperty.call(n,c)&&(e[c]=n[c]);for(i&&i(f);l.length;)l.shift()();return b.push.apply(b,o||[]),a()}function a(){for(var e,f=0;f<b.length;f++){for(var a=b[f],c=!0,r=1;r<a.length;r++){var n=a[r];0!==d[n]&&(c=!1)}c&&(b.splice(f--,1),e=t(t.s=a[0]))}return e}var c={},d={197:0},b=[];function r(e){ret [...]
\ No newline at end of file
diff --git a/assets/js/styles.915eeed2.js b/assets/js/styles.915eeed2.js
deleted file mode 100644
index d5a4b57..0000000
--- a/assets/js/styles.915eeed2.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[0],{196:function(e,o,n){e.exports={blogPostTitle:"blogPostTitle_GeHD",blogPostDate:"blogPostDate_fNvV"}},197:function(e,o,n){e.exports={sidebar:"sidebar_2ahu",sidebarItemTitle:"sidebarItemTitle_2hhb",sidebarItemList:"sidebarItemList_2xAf",sidebarItem:"sidebarItem_2UVv",sidebarItemLink:"sidebarItemLink_1RT6",sidebarItemLinkActive:"sidebarItemLinkActive_12pM"}},246: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 cd4c9b2..b5afd45 100644
--- a/blog/2020/08/22/new-website/index.html
+++ b/blog/2020/08/22/new-website/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,28 +14,14 @@
 <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">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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/4.bde55da2.js" as="script">
-<link rel="preload" href="/assets/js/ccc49370.abb0447c.js" as="script">
-<link rel="preload" href="/assets/js/2d8fe9ee.406a866d.js" as="script">
-<link rel="preload" href="/assets/js/a6641250.5c6f02f7.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">New website for Apache APISIX | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="New website for Apache APISIX | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="We are just refactored out website for Apache APISIX by using docusaurus."><meta data-react-helmet="true" propert [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/4.bde55da2.js"></script>
-<script src="/assets/js/ccc49370.abb0447c.js"></script>
-<script src="/assets/js/2d8fe9ee.406a866d.js"></script>
-<script src="/assets/js/a6641250.5c6f02f7.js"></script>
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.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 ab20cae..6b3a573 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
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,30 +14,16 @@
 <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">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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/4.bde55da2.js" as="script">
-<link rel="preload" href="/assets/js/ccc49370.abb0447c.js" as="script">
-<link rel="preload" href="/assets/js/2d8fe9ee.406a866d.js" as="script">
-<link rel="preload" href="/assets/js/749ed826.b3e4e8fb.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Envoy and Apache APISIX: Another way to implement the Envoy filter | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Envoy and Apache APISIX: Another way to implement the Envoy filter | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="@nic-chen, Apache APISIX PMC from Shenz [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
-A pluggable filter chain mechanism allows filters to be written to perform different tasks and inserted into the main server.</p><p><img src="https://static.apiseven.com/filters.png" alt="Envoy filter"></p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="expansion-method"></a>Expansion method<a class="hash-link" href="#expansion-method" title="Direct link to heading">#</a></h3><p>The existing filters may not meet the user&#x27;s custom requirements. In this case, Envoy needs to [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+A pluggable filter chain mechanism allows filters to be written to perform different tasks and inserted into the main server.</p><p><img src="https://static.apiseven.com/filters.png" alt="Envoy filter"></p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="expansion-method"></a>Expansion method<a class="hash-link" href="#expansion-method" title="Direct link to heading">#</a></h3><p>The existing filters may not meet the user&#x27;s custom requirements. In this case, Envoy needs to [...]
 In the example, we configured plugin <code>uri-blocker</code> for the route whose prefix is ​​<code>/foo</code>, as well as the block rule of the plugin and the response status when a block is required.</p><h4><a aria-hidden="true" tabindex="-1" class="anchor" id="second-step-parse-request"></a>Second step, parse request<a class="hash-link" href="#second-step-parse-request" title="Direct link to heading">#</a></h4><p>We encapsulated the client request data into <code>ctx</code> so that i [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/4.bde55da2.js"></script>
-<script src="/assets/js/ccc49370.abb0447c.js"></script>
-<script src="/assets/js/2d8fe9ee.406a866d.js"></script>
-<script src="/assets/js/749ed826.b3e4e8fb.js"></script>
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.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 50433dc..e85327e 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
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,28 +14,14 @@
 <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">初探 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/4.bde55da2.js" as="script">
-<link rel="preload" href="/assets/js/ccc49370.abb0447c.js" as="script">
-<link rel="preload" href="/assets/js/2d8fe9ee.406a866d.js" as="script">
-<link rel="preload" href="/assets/js/a4a2cefa.dfa1b85c.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">初探 Kubernetes Service APIs | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="初探 Kubernetes Service APIs | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="@gxthrj, Apache APISIX PMC &amp; Apache apisix-ingress-controller Founder from Shenzhen Zhiliu Technology Co."><meta da [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/4.bde55da2.js"></script>
-<script src="/assets/js/ccc49370.abb0447c.js"></script>
-<script src="/assets/js/2d8fe9ee.406a866d.js"></script>
-<script src="/assets/js/a4a2cefa.dfa1b85c.js"></script>
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.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 7e57cd3..ae6f17c 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
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,29 +14,15 @@
 <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">Run Ingress APISIX on Amazon EKS | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Run Ingress APISIX on Amazon EKS | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="@Chao Zhang, Apache APISIX Committer from Shenzhen Zhiliu Technology Co."><meta data-react-helmet="true" na [...]
-<link rel="preload" href="/assets/js/styles.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/4.bde55da2.js" as="script">
-<link rel="preload" href="/assets/js/ccc49370.abb0447c.js" as="script">
-<link rel="preload" href="/assets/js/2d8fe9ee.406a866d.js" as="script">
-<link rel="preload" href="/assets/js/1c89ab3b.9f20e2c0.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Run Ingress APISIX on Amazon EKS | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Run Ingress APISIX on Amazon EKS | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="@Chao Zhang, Apache APISIX Committer from Shenzhen Zhiliu Technology Co."><meta data-react-helmet="true" pr [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  </span><span class="token string" style="color:rgb(195, 232, 141)">&quot;headers&quot;</span><span class="token builtin class-name" style="color:rgb(255, 203, 107)">:</span><span class="token plain"> </span><span c [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/4.bde55da2.js"></script>
-<script src="/assets/js/ccc49370.abb0447c.js"></script>
-<script src="/assets/js/2d8fe9ee.406a866d.js"></script>
-<script src="/assets/js/1c89ab3b.9f20e2c0.js"></script>
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.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 e67ffac..2247c89 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
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,28 +14,14 @@
 <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">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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/4.bde55da2.js" as="script">
-<link rel="preload" href="/assets/js/ccc49370.abb0447c.js" as="script">
-<link rel="preload" href="/assets/js/2d8fe9ee.406a866d.js" as="script">
-<link rel="preload" href="/assets/js/47e0bf55.3ff4ff52.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Stable Product Delivery with Cypress | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Stable Product Delivery with Cypress | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="@LiteSun, Apache APISIX Committer from Shenzhen Zhiliu Technology Co."><meta data-react-helmet="tru [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/4.bde55da2.js"></script>
-<script src="/assets/js/ccc49370.abb0447c.js"></script>
-<script src="/assets/js/2d8fe9ee.406a866d.js"></script>
-<script src="/assets/js/47e0bf55.3ff4ff52.js"></script>
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/02/26/install-apache-apisix-from-helm-charts/index.html b/blog/2021/02/26/install-apache-apisix-from-helm-charts/index.html
index dcea59e..7343bfc 100644
--- a/blog/2021/02/26/install-apache-apisix-from-helm-charts/index.html
+++ b/blog/2021/02/26/install-apache-apisix-from-helm-charts/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,30 +14,16 @@
 <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">Install Apache APISIX from Helm Charts | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Install Apache APISIX from Helm Charts | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="@tokers, Apache APISIX Committer from Shenzhen Zhiliu Technology Co."><meta data-react-helmet=" [...]
-<link rel="preload" href="/assets/js/styles.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/4.bde55da2.js" as="script">
-<link rel="preload" href="/assets/js/ccc49370.abb0447c.js" as="script">
-<link rel="preload" href="/assets/js/2d8fe9ee.406a866d.js" as="script">
-<link rel="preload" href="/assets/js/96ff6680.9931e3e7.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Install Apache APISIX from Helm Charts | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Install Apache APISIX from Helm Charts | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="@tokers, Apache APISIX Committer from Shenzhen Zhiliu Technology Co."><meta data-react-helmet=" [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">NAME                    CHART VERSION   APP VERSION     DESCRIPTION</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">apisix/apisix           0.1.2           2.1.0           A Helm chart for Apache APISIX</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">apisix/apisix-dashboard 0.1.0           2.3.0           A Helm chart for Apache APIS [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">NAME                    CHART VERSION   APP VERSION     DESCRIPTION</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">apisix/apisix           0.1.2           2.1.0           A Helm chart for Apache APISIX</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">apisix/apisix-dashboard 0.1.0           2.3.0           A Helm chart for Apache APIS [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">NAME: apisix-gw</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">LAST DEPLOYED: Fri Feb 19 11:34:14 2021</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">NAMESPACE: default</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">STATUS: deployed</span></div><div class="token-line" style="color:#bfc7d5"><span [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/4.bde55da2.js"></script>
-<script src="/assets/js/ccc49370.abb0447c.js"></script>
-<script src="/assets/js/2d8fe9ee.406a866d.js"></script>
-<script src="/assets/js/96ff6680.9931e3e7.js"></script>
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/03/02/get-front-end-test-coverage-with-cypress/index.html b/blog/2021/03/02/get-front-end-test-coverage-with-cypress/index.html
index f8929cf..27e2d5b 100644
--- a/blog/2021/03/02/get-front-end-test-coverage-with-cypress/index.html
+++ b/blog/2021/03/02/get-front-end-test-coverage-with-cypress/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,28 +14,14 @@
 <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">Get Front-End Test Coverage with Cypress | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Get Front-End Test Coverage with Cypress | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="@LiteSun, Apache APISIX Committer from Shenzhen Zhiliu Technology Co."><meta data-react-hel [...]
-<link rel="preload" href="/assets/js/styles.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/4.bde55da2.js" as="script">
-<link rel="preload" href="/assets/js/ccc49370.abb0447c.js" as="script">
-<link rel="preload" href="/assets/js/2d8fe9ee.406a866d.js" as="script">
-<link rel="preload" href="/assets/js/5aca9bfb.49d36898.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Get Front-End Test Coverage with Cypress | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Get Front-End Test Coverage with Cypress | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="@LiteSun, Apache APISIX Committer from Shenzhen Zhiliu Technology Co."><meta data-react-hel [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/4.bde55da2.js"></script>
-<script src="/assets/js/ccc49370.abb0447c.js"></script>
-<script src="/assets/js/2d8fe9ee.406a866d.js"></script>
-<script src="/assets/js/5aca9bfb.49d36898.js"></script>
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/2021/03/27/traffic-split-in-apache-apisix-ingress-controller/index.html b/blog/2021/03/27/traffic-split-in-apache-apisix-ingress-controller/index.html
index cba949a..0b92d2e 100644
--- a/blog/2021/03/27/traffic-split-in-apache-apisix-ingress-controller/index.html
+++ b/blog/2021/03/27/traffic-split-in-apache-apisix-ingress-controller/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,28 +14,14 @@
 <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">Traffic Split in Apache APISIX Ingress Controller | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Traffic Split in Apache APISIX Ingress Controller | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="@tokers, Apache APISIX Committer from Shenzhen Zhiliu Technology Co."><me [...]
-<link rel="preload" href="/assets/js/styles.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/4.bde55da2.js" as="script">
-<link rel="preload" href="/assets/js/ccc49370.abb0447c.js" as="script">
-<link rel="preload" href="/assets/js/2d8fe9ee.406a866d.js" as="script">
-<link rel="preload" href="/assets/js/2ceea113.ba996d5c.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Traffic Split in Apache APISIX Ingress Controller | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Traffic Split in Apache APISIX Ingress Controller | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="@tokers, Apache APISIX Committer from Shenzhen Zhiliu Technology Co."><me [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/4.bde55da2.js"></script>
-<script src="/assets/js/ccc49370.abb0447c.js"></script>
-<script src="/assets/js/2d8fe9ee.406a866d.js"></script>
-<script src="/assets/js/2ceea113.ba996d5c.js"></script>
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/index.html b/blog/index.html
index 4b4aa9f..aa27ef9 100644
--- a/blog/index.html
+++ b/blog/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,44 +14,14 @@
 <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">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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/4.bde55da2.js" as="script">
-<link rel="preload" href="/assets/js/a6aa9e1f.06032861.js" as="script">
-<link rel="preload" href="/assets/js/2d8fe9ee.406a866d.js" as="script">
-<link rel="preload" href="/assets/js/5426aede.ee5d274b.js" as="script">
-<link rel="preload" href="/assets/js/a06dfdd3.c53203b3.js" as="script">
-<link rel="preload" href="/assets/js/e1a3b18d.91652dcc.js" as="script">
-<link rel="preload" href="/assets/js/e451ae2c.a04bc61c.js" as="script">
-<link rel="preload" href="/assets/js/514de2af.86d84278.js" as="script">
-<link rel="preload" href="/assets/js/5bb67ffc.7f92a67b.js" as="script">
-<link rel="preload" href="/assets/js/e02da2c5.3872722c.js" as="script">
-<link rel="preload" href="/assets/js/37e3b3ea.fda28e6d.js" as="script">
-<link rel="preload" href="/assets/js/b2b675dd.4e1af5aa.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Blog | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Blog | Apache APISIX™"><meta data-react-helmet="true" property="og:description" content="Blog"><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//blog"><meta data-react-helmet="true" name="docsearch:language" content=" [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/4.bde55da2.js"></script>
-<script src="/assets/js/a6aa9e1f.06032861.js"></script>
-<script src="/assets/js/2d8fe9ee.406a866d.js"></script>
-<script src="/assets/js/5426aede.ee5d274b.js"></script>
-<script src="/assets/js/a06dfdd3.c53203b3.js"></script>
-<script src="/assets/js/e1a3b18d.91652dcc.js"></script>
-<script src="/assets/js/e451ae2c.a04bc61c.js"></script>
-<script src="/assets/js/514de2af.86d84278.js"></script>
-<script src="/assets/js/5bb67ffc.7f92a67b.js"></script>
-<script src="/assets/js/e02da2c5.3872722c.js"></script>
-<script src="/assets/js/37e3b3ea.fda28e6d.js"></script>
-<script src="/assets/js/b2b675dd.4e1af5aa.js"></script>
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/FAQ/index.html b/docs/apisix/FAQ/index.html
index 2d60797..eb1861d 100644
--- a/docs/apisix/FAQ/index.html
+++ b/docs/apisix/FAQ/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,36 +14,22 @@
 <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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/162a65a3.34fd45ff.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">FAQ | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/FAQ"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" cont [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 Run the <code>luarocks config rocks_servers</code> command(this command is supported after luarocks 3.0) to see which server are available.
-For China mainland users, you can use the <code>luarocks.cn</code> as the luarocks server.</p><p>We already provide a wrapper in the Makefile to simplify your job:</p><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-bash codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token assign-left variable" style="colo [...]
+For China mainland users, you can use the <code>luarocks.cn</code> as the luarocks server.</p><p>We already provide a wrapper in the Makefile to simplify your job:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly bash"><div tabindex="0" class="prism-code language-bash codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token assign-left variable"  [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> -i http://127.0.0.1:9080/apisix/admin/routes/2 -H </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><span class="token plain"> -X PUT -d </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;</span></di [...]
-<a href="https://github.com/iresty/lua-resty-radixtree#operator-list" target="_blank" rel="noopener noreferrer">https://github.com/iresty/lua-resty-radixtree#operator-list</a></p><ol start="2"><li>Use <code>traffic-split</code> plugin to do it.</li></ol><p>Please refer to the <a href="/docs/apisix/plugins/traffic-split">traffic-split.md</a> plugin documentation for usage examples.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="how-to-redirect-http-to-https-via-apisix"></a> [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">&lt;html&gt;</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">&lt;head&gt;&lt;title&gt;301 Moved Permanently&lt;/title&gt;&lt;/head&gt;</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">&lt;body&gt;</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">&lt;center&gt;&lt;h1&gt;301 Moved Permanently&lt;/h1&gt [...]
-See the <code>Hot reload</code> section in <a href="/docs/apisix/plugins">plugins</a> for how to do that.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="how-to-make-apisix-listen-on-multiple-ports-when-handling-http-or-https-requests"></a>How to make APISIX listen on multiple ports when handling HTTP or HTTPS requests?<a class="hash-link" href="#how-to-make-apisix-listen-on-multiple-ports-when-handling-http-or-https-requests" title="Direct link to heading">#</a></h2><p>By  [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># The uri match failed</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/12ab -i</span></div><div class="token-line" style= [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:rgb(247, 140, 108)">200</span><span class="token plain"> OK</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">..</span><span class="token punctuation" style="color:rgb(199, 146, 234)">..</span><span class="token punctuation" style="color:rgb(199 [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/162a65a3.34fd45ff.js"></script>
+<a href="https://github.com/iresty/lua-resty-radixtree#operator-list" target="_blank" rel="noopener noreferrer">https://github.com/iresty/lua-resty-radixtree#operator-list</a></p><ol start="2"><li>Use <code>traffic-split</code> plugin to do it.</li></ol><p>Please refer to the <a href="/docs/apisix/plugins/traffic-split">traffic-split.md</a> plugin documentation for usage examples.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="how-to-redirect-http-to-https-via-apisix"></a> [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">&lt;html&gt;</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">&lt;head&gt;&lt;title&gt;301 Moved Permanently&lt;/title&gt;&lt;/head&gt;</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">&lt;body&gt;</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">&lt;center&gt;&lt;h1&gt;301 Moved Permanently&lt;/h1&gt [...]
+See the <code>Hot reload</code> section in <a href="/docs/apisix/plugins">plugins</a> for how to do that.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="how-to-make-apisix-listen-on-multiple-ports-when-handling-http-or-https-requests"></a>How to make APISIX listen on multiple ports when handling HTTP or HTTPS requests?<a class="hash-link" href="#how-to-make-apisix-listen-on-multiple-ports-when-handling-http-or-https-requests" title="Direct link to heading">#</a></h2><p>By  [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># The uri match failed</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/12ab -i</span></div><div class="token-line" style= [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:rgb(247, 140, 108)">200</span><span class="token plain"> OK</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">..</span><span class="token punctuation" style="color:rgb(199, 146, 234)">..</span><span class="token punctuation" style="color:rgb(199 [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/IGNORE_DOC/index.html b/docs/apisix/IGNORE_DOC/index.html
index 9db0e08..d1e0a9f 100644
--- a/docs/apisix/IGNORE_DOC/index.html
+++ b/docs/apisix/IGNORE_DOC/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,28 +14,14 @@
 <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">IGNORE_DOC | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/601c6eaa.65340863.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">IGNORE_DOC | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/IGNORE_DOC"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusa [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/601c6eaa.65340863.js"></script>
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/admin-api/index.html b/docs/apisix/admin-api/index.html
index 34c5e15..300b2de 100644
--- a/docs/apisix/admin-api/index.html
+++ b/docs/apisix/admin-api/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,20 +14,13 @@
 <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">Admin API | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/1bc24c0d.08b153c1.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Admin API | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/admin-api"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaur [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:rgb(247, 140, 108)">201</span><span class="token plain"> Created</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Date: Sat, </span><span class="token number" style="color:rgb(247, 140, 108)">31</span><span class="token plain"> Aug </span><span class="token number" style="color:rgb(247, 140, 108)">2019</span><span  [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># Create a route expires after 60 seconds, then it&#x27;s deleted automatically</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0. [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:rgb(247, 140, 108)">201</span><span class="token plain"> Created</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Date: Sat, </span><span class="token number" style="color:rgb(247, 140, 108)">31</span><span class="token plain"> Aug </span><span class="token number" style="color:rgb(247, 140, 108)">2019</span><span  [...]
@@ -56,7 +49,7 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># enable route</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1 -H </span><span class="token string" [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">After successful execution, status nodes will be updated to:</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)"> [...]
 </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><blockquote><p>Response Parameters</p></blockquote><p>Return response from etcd currently.</p><p><a href="#table-of-contents">Back to TOC</a></p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="service"></a>Service<a class="hash-link" href="#service" title="Direct link to heading">#</a></h2><p><em>API</em>:/apisix/admin/services/{id}</p><p><em>Desc [...]
+</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><blockquote><p>Response Parameters</p></blockquote><p>Return response from etcd currently.</p><p><a href="#table-of-contents">Back to TOC</a></p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="service"></a>Service<a class="hash-link" href="#service" title="Direct link to heading">#</a></h2><p><em>API</em>:/apisix/admin/services/{id}</p><p><em>Desc [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:rgb(247, 140, 108)">201</span><span class="token plain"> Created</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></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" style="di [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># Add an upstream node to the Service</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/services/201 -H</span> [...]
@@ -70,10 +63,10 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># Replace upstream nodes of the Service</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/services/201/upstrea [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">After successful execution, upstream nodes will not retain the original data, and the entire update is:</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    </span><span class="toke [...]
-</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><blockquote><p>Response Parameters</p></blockquote><p>Return response from etcd currently.</p><p><a href="#table-of-contents">Back to TOC</a></p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="consumer"></a>Consumer<a class="hash-link" href="#consumer" title="Direct link to heading">#</a></h2><p><em>API</em>:/apisix/admin/consumers/{username}</p>< [...]
+</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><blockquote><p>Response Parameters</p></blockquote><p>Return response from etcd currently.</p><p><a href="#table-of-contents">Back to TOC</a></p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="consumer"></a>Consumer<a class="hash-link" href="#consumer" title="Direct link to heading">#</a></h2><p><em>API</em>:/apisix/admin/consumers/{username}</p>< [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token string" style="color:rgb(195, 232, 141)">&quot;node&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token string" style="color:rgb(195, 232, 141)">&quot;value&quot;</span><span class="token plain">:</span><span class="token  [...]
 Their formats are the same as SSL&#x27;s <code>cert</code> and <code>key</code> fields.
-This feature requires APISIX to run on <a href="/docs/how-to-build.md#6-build-openresty-for-apisix">APISIX-OpenResty</a>.</p><p><strong>Config Example:</strong></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 punctuation" style="color:rgb(199,  [...]
+This feature requires APISIX to run on <a href="/docs/how-to-build.md#6-build-openresty-for-apisix">APISIX-OpenResty</a>.</p><p><strong>Config Example:</strong></p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token punctuation" style="col [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># Add a node to the Upstream</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/upstreams/100 -H</span><span cl [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">After successful execution, nodes will be updated to:</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;3 [...]
@@ -86,18 +79,11 @@ This feature requires APISIX to run on <a href="/docs/how-to-build.md#6-build-op
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># Replace the nodes of the Upstream</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/upstreams/100/nodes -H</ [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">After the execution is successful, nodes will not retain the original data, and the entire update is:</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    </span><span class="token  [...]
-</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>Example 2: How to proxy client request to <code>https</code> upstream service</p><ol><li>Create a route and configure the upstream scheme as <code>https</code>.</li></ol><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= [...]
-used when all the nodes with higher priority are unavailable or tried.</p><p>As the default priority is 0, we can configure nodes with negative priority as the backup.</p><p>For example:</p><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-json codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token punctuatio [...]
-Therefore it is the backup of <code>127.0.0.1</code>.</p><blockquote><p>Response Parameters</p></blockquote><p>Return response from etcd currently.</p><p><a href="#table-of-contents">Back to TOC</a></p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="ssl"></a>SSL<a class="hash-link" href="#ssl" title="Direct link to heading">#</a></h2><p><em>API</em>:/apisix/admin/ssl/{id}</p><p><em>Description</em>:SSL.</p><blockquote><p>Request Methods:</p></blockquote><table><thead><tr><th>M [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> </span><span class="token string" style="color:rgb(195, 232, 141)">&quot;http://127.0.0.1:9080/apisix/admin/plugins/key-auth&quot;</span><span class="token plain"> -H </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><s [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/1bc24c0d.08b153c1.js"></script>
+</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>Example 2: How to proxy client request to <code>https</code> upstream service</p><ol><li>Create a route and configure the upstream scheme as <code>https</code>.</li></ol><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_ [...]
+used when all the nodes with higher priority are unavailable or tried.</p><p>As the default priority is 0, we can configure nodes with negative priority as the backup.</p><p>For example:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly json"><div tabindex="0" class="prism-code language-json codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token [...]
+Therefore it is the backup of <code>127.0.0.1</code>.</p><blockquote><p>Response Parameters</p></blockquote><p>Return response from etcd currently.</p><p><a href="#table-of-contents">Back to TOC</a></p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="ssl"></a>SSL<a class="hash-link" href="#ssl" title="Direct link to heading">#</a></h2><p><em>API</em>:/apisix/admin/ssl/{id}</p><p><em>Description</em>:SSL.</p><blockquote><p>Request Methods:</p></blockquote><table><thead><tr><th>M [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> </span><span class="token string" style="color:rgb(195, 232, 141)">&quot;http://127.0.0.1:9080/apisix/admin/plugins/key-auth&quot;</span><span class="token plain"> -H </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><s [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/architecture-design/apisix/index.html b/docs/apisix/architecture-design/apisix/index.html
index efdbe80..7ff36c0 100644
--- a/docs/apisix/architecture-design/apisix/index.html
+++ b/docs/apisix/architecture-design/apisix/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,30 +14,16 @@
 <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">APISIX | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/92b07c7e.4f2af9aa.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">APISIX | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/architecture-design/apisix"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docs [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
-and keep other configurations as default. The configuration in <code>config.yaml</code> should be like this:</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">apisix</span><span class="token punctuation" style="color:rgb(199, 146, 234) [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token key atrule">etcd</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  </span><span class="token key atrule">host</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> </span><span class="tok [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/92b07c7e.4f2af9aa.js"></script>
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+and keep other configurations as default. The configuration in <code>config.yaml</code> should be like this:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><div tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token key atrule">apisix</span><span class="token punctuation" style="color:rgb(199 [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token key atrule">etcd</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  </span><span class="token key atrule">host</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> </span><span class="tok [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/architecture-design/consumer/index.html b/docs/apisix/architecture-design/consumer/index.html
index 06be5ac..dda05fe 100644
--- a/docs/apisix/architecture-design/consumer/index.html
+++ b/docs/apisix/architecture-design/consumer/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,35 +14,21 @@
 <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">Consumer | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/ec546d2e.27c63a15.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Consumer | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/architecture-design/consumer"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name=" [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># Create a Router, set routing rules and enable plugin configuration</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apis [...]
 </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"># Send a test request, the first two return to normal, did not reach the speed limit threshold</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain">  [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/hello -H </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;apikey: auth-one&#x27;</span><span class="token plain"> -I</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># The third test returns 503 and the request is restricted</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/hello -H </spa [...]
-</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>Use the <a href="/docs/apisix/plugins/consumer-restriction">consumer-restriction</a> plug-in to restrict the access of Jack to this API.</p><div class="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-colo [...]
+</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>Use the <a href="/docs/apisix/plugins/consumer-restriction">consumer-restriction</a> plug-in to restrict the access of Jack to this API.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;bac [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># Repeated tests, all return 403; Jack is forbidden to access this API</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/he [...]
-</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/architecture-design/consumer.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAspectRatio="xMidYMid meet" role="img" viewBox="0 0 40 40" class="iconEdit_ [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/ec546d2e.27c63a15.js"></script>
+</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/architecture-design/consumer.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAspectRatio="xMidYMid meet" role="img" viewBox="0 0 40 40" class="iconEdit_ [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/architecture-design/debug-mode/index.html b/docs/apisix/architecture-design/debug-mode/index.html
index 1ace634..a68271d 100644
--- a/docs/apisix/architecture-design/debug-mode/index.html
+++ b/docs/apisix/architecture-design/debug-mode/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,31 +14,17 @@
 <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">Debug Mode | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/91ce05ef.f6a571b7.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Debug Mode | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/architecture-design/debug-mode"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" na [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello world</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>If the information can be delivered via HTTP response header, for example, the plugin is in stream
-subsystem, the information will be logged in the error log with <code>warn</code> level.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="advanced-debug-mode"></a>Advanced Debug Mode<a class="hash-link" href="#advanced-debug-mode" title="Direct link to heading">#</a></h3><p>Enable advanced debug mode by modifying the configuration in <code>conf/debug.yaml</code> file. Because there will be a check every second, only the checker reads the <code>#END</code> flag, and the file  [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token key atrule">hook_phase</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> </span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># Module Function List, Name: hook_phase</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  </span [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/91ce05ef.f6a571b7.js"></script>
+subsystem, the information will be logged in the error log with <code>warn</code> level.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="advanced-debug-mode"></a>Advanced Debug Mode<a class="hash-link" href="#advanced-debug-mode" title="Direct link to heading">#</a></h3><p>Enable advanced debug mode by modifying the configuration in <code>conf/debug.yaml</code> file. Because there will be a check every second, only the checker reads the <code>#END</code> flag, and the file  [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token key atrule">hook_phase</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> </span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># Module Function List, Name: hook_phase</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  </span [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/architecture-design/global-rule/index.html b/docs/apisix/architecture-design/global-rule/index.html
index cd23aa7..871f228 100644
--- a/docs/apisix/architecture-design/global-rule/index.html
+++ b/docs/apisix/architecture-design/global-rule/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,29 +14,15 @@
 <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">Global rule | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/2b03a116.e4b3b757.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Global rule | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/architecture-design/global-rule"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true"  [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
-We can register a global <a href="/docs/apisix/architecture-design/plugin">Plugin</a> with <code>GlobalRule</code>:</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 function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/2b03a116.e4b3b757.js"></script>
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+We can register a global <a href="/docs/apisix/architecture-design/plugin">Plugin</a> with <code>GlobalRule</code>:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="t [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/architecture-design/plugin-config/index.html b/docs/apisix/architecture-design/plugin-config/index.html
index 9be09fd..b000cc0 100644
--- a/docs/apisix/architecture-design/plugin-config/index.html
+++ b/docs/apisix/architecture-design/plugin-config/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,31 +14,17 @@
 <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">Plugin Config | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/ef63a76e.8961b158.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Plugin Config | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/architecture-design/plugin-config"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="tr [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
-bind it with a route directly.</p><p>For instance, you can do something like:</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 comment" style="color:rgb(105, 112, 152);font-style:italic"># create a plugin config</span><span class="token plain">< [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+bind it with a route directly.</p><p>For instance, you can do something like:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># create a plugin config</span><span class="to [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># bind it to route</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1 -H </span><span class="token str [...]
-will be merged into it. The same plugin in the plugin config will override one in the <code>plugins</code>.</p><p>For example, when we configure a plugin config</p><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-undefined codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">{</span></div><div class [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/ef63a76e.8961b158.js"></script>
+will be merged into it. The same plugin in the plugin config will override one in the <code>plugins</code>.</p><p>For example, when we configure a plugin config</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-undefined codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">{</span></div><div [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/architecture-design/plugin/index.html b/docs/apisix/architecture-design/plugin/index.html
index 2ddeee4..c83e270 100644
--- a/docs/apisix/architecture-design/plugin/index.html
+++ b/docs/apisix/architecture-design/plugin/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,28 +14,14 @@
 <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">Plugin | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/f202f54b.147e6732.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Plugin | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/architecture-design/plugin"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docs [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/f202f54b.147e6732.js"></script>
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/architecture-design/route/index.html b/docs/apisix/architecture-design/route/index.html
index 069c079..cb59b37 100644
--- a/docs/apisix/architecture-design/route/index.html
+++ b/docs/apisix/architecture-design/route/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,30 +14,16 @@
 <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">Route | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/89d0b30c.5a34fca0.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Route | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/architecture-design/route"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsea [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:rgb(247, 140, 108)">201</span><span class="token plain"> Created</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Date: Sat, </span><span class="token number" style="color:rgb(247, 140, 108)">31</span><span class="token plain"> Aug </span><span class="token number" style="color:rgb(247, 140, 108)">2019</span><span  [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token string" style="color:rgb(195, 232, 141)">&quot;node&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token string" style="color:rgb(195, 232, 141)">&quot;value&quot;</span><span class="token plain">:</span><span class="token  [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/89d0b30c.5a34fca0.js"></script>
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token string" style="color:rgb(195, 232, 141)">&quot;node&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token string" style="color:rgb(195, 232, 141)">&quot;value&quot;</span><span class="token plain">:</span><span class="token  [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/architecture-design/router/index.html b/docs/apisix/architecture-design/router/index.html
index 6f452c9..83ee475 100644
--- a/docs/apisix/architecture-design/router/index.html
+++ b/docs/apisix/architecture-design/router/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,28 +14,14 @@
 <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">Router | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/8b956bd2.c2281f84.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Router | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/architecture-design/router"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docs [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/8b956bd2.c2281f84.js"></script>
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/architecture-design/script/index.html b/docs/apisix/architecture-design/script/index.html
index f8e3b22..ad163b6 100644
--- a/docs/apisix/architecture-design/script/index.html
+++ b/docs/apisix/architecture-design/script/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,28 +14,14 @@
 <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">Script | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/0dc3e78d.6f67ea1c.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Script | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/architecture-design/script"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docs [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/0dc3e78d.6f67ea1c.js"></script>
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/architecture-design/service/index.html b/docs/apisix/architecture-design/service/index.html
index 84d7846..992427c 100644
--- a/docs/apisix/architecture-design/service/index.html
+++ b/docs/apisix/architecture-design/service/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,30 +14,16 @@
 <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">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" content="docs-docs-ap [...]
-<link rel="preload" href="/assets/js/styles.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/dcb3fc1e.f0b80faf.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Service | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/architecture-design/service"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="do [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># create new Route and reference the service by id `200`</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/route [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/101 -H </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><span class="token plain"> -X PUT -d </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;</span></div [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/dcb3fc1e.f0b80faf.js"></script>
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/101 -H </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><span class="token plain"> -X PUT -d </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;</span></div [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/architecture-design/upstream/index.html b/docs/apisix/architecture-design/upstream/index.html
index 7c20bc9..980ac82 100644
--- a/docs/apisix/architecture-design/upstream/index.html
+++ b/docs/apisix/architecture-design/upstream/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,28 +14,14 @@
 <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">Upstream | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/e5ad0cc6.4d433c7b.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Upstream | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/architecture-design/upstream"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name=" [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/e5ad0cc6.4d433c7b.js"></script>
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/aws/index.html b/docs/apisix/aws/index.html
index c4da7f2..8f1f893 100644
--- a/docs/apisix/aws/index.html
+++ b/docs/apisix/aws/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,22 +14,15 @@
 <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">Running APISIX in AWS with AWS CDK | 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 [...]
-<link rel="preload" href="/assets/js/styles.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/71950930.339c66d6.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Running APISIX in AWS with AWS CDK | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/aws"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name= [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token keyword" style="font-style:italic">const</span><span class="token plain"> project </span><span class="token operator" style="color:rgb(137, 221, 255)">=</span><span class="token plain"> </span><span class="token keyword" style="font-style:italic">new</span><span class="token plain"> </span><span class="token class-name" style="color:rgb(255, 203, 107)">AwsCdkTypeScriptApp</span> [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">project</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token method function property-access" style="color:rgb(130, 170, 255)">synth</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span></di [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">project</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token method function property-access" style="color:rgb(130, 170, 255)">synth</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span></di [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token keyword" style="font-style:italic">export</span><span class="token plain"> </span><span class="token keyword" style="font-style:italic">class</span><span class="token plain"> </span><span class="token class-name" style="color:rgb(255, 203, 107)">ApiSixStack</span><span class="token plain"> </span><span class="token keyword" style="font-style:italic">extends</span><span class="to [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    </span><span class="token keyword" style="font-style:italic">const</span><span class="token plain"> vpc </span><span class="token operator" style="color:rgb(137, 221, 255)">=</span><span class="token plain"> </span><span class="token maybe-class-name">Vpc</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token method function property-access" style="color:rgb [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    </span><span class="token keyword" style="font-style:italic">const</span><span class="token plain"> cluster </span><span class="token operator" style="color:rgb(137, 221, 255)">=</span><span class="token plain"> </span><span class="token keyword" style="font-style:italic">new</span><span class="token plain"> </span><span class="token class-name" style="color:rgb(255, 203, 107)">Cluster</span><span cl [...]
@@ -46,18 +39,11 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token keyword" style="font-style:italic">const</span><span class="token plain"> devEnv </span><span class="token operator" style="color:rgb(137, 221, 255)">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  acc [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token keyword" style="font-style:italic">const</span><span class="token plain"> app </span><span class="token operator" style="color:rgb(137, 221, 255)">=</span><span class="token plain"> </span><span class="token keyword" style="font-style:italic">new</span><span class="token plain"> </span><span class="token class-name" style="color:rgb(255, 203, 107)">cdk</span><span class="token c [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token keyword" style="font-style:italic">new</span><span class="token plain"> </span><span class="token class-name" style="color:rgb(255, 203, 107)">ApiSixStack</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">app</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><spa [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">app</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token method function property-access" style="color:rgb(130, 170, 255)">synth</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span></div></ [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">app</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token method function property-access" style="color:rgb(130, 170, 255)">synth</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span></div></ [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Non-authoritative answer:</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Name:   apiSi-PhpSe-FOL2MM4TW7G8-09029e095ab36fcc.elb.us-west-2.amazonaws.com</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Address: </span><span class="token number" style="color:rgb(247, 140, 108)">44.224</span><span class="token plain">.124.213</span></div [...]
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/aws-define-service.png">
-<img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/aws-define-route.png"></p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="validation"></a>Validation<a class="hash-link" href="#validation" title="Direct link to heading">#</a></h2><p>OK. Let&#x27;s test the <code>/index.php</code> on <code>{apiSix.ApiSixServiceServiceURL}/index.php</code></p><p><img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/aws-caddy-php-we [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/71950930.339c66d6.js"></script>
+<img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/aws-define-route.png"></p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="validation"></a>Validation<a class="hash-link" href="#validation" title="Direct link to heading">#</a></h2><p>OK. Let&#x27;s test the <code>/index.php</code> on <code>{apiSix.ApiSixServiceServiceURL}/index.php</code></p><p><img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/aws-caddy-php-we [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/batch-processor/index.html b/docs/apisix/batch-processor/index.html
index 47fc4e8..aa96206 100644
--- a/docs/apisix/batch-processor/index.html
+++ b/docs/apisix/batch-processor/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,38 +14,24 @@
 <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">Batch Processor | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/4f7f961a.c7014e08.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Batch Processor | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/batch-processor"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsea [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 When the batch_max_size is set to zero the processor will execute each entry immediately. Setting the batch max size more
 than 1 will start aggregating the entries until it reaches the max size or the timeout expires.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="configurations"></a>Configurations<a class="hash-link" href="#configurations" title="Direct link to heading">#</a></h2><p>The only mandatory parameter to create a batch processor is a function. The function will be executed when the batch reaches the max size
 or when the buffer duration exceeds.</p><table><thead><tr><th>Name</th><th>Requirement</th><th>Description</th></tr></thead><tbody><tr><td>id</td><td>optional</td><td>A unique identifier to identity the batch processor</td></tr><tr><td>batch_max_size</td><td>optional</td><td>Max size of each batch, default is 1000</td></tr><tr><td>inactive_timeout</td><td>optional</td><td>maximum age in seconds when the buffer will be flushed if inactive, default is 5s</td></tr><tr><td>buffer_duration</t [...]
-argument and the batch configuration as the second parameter.</p><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-lua 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">local bp = require(&quot;apisix.plugins.batch-processor&quot;)</span></div><div class="token-line" style="color:#bfc7d5"><span cl [...]
+argument and the batch configuration as the second parameter.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly lua"><div tabindex="0" class="prism-code language-lua 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">local bp = require(&quot;apisix.plugins.batch-processor&quot;)</span></div><div class="token-line" style="color:#bfc7d5 [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">local config = {</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    max_retry_count  = 2,</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    buffer_duration  = 60,</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    inactive_timeout  = 5,</span></div><div class="token-line" style="color:#bfc7d5"> [...]
 </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">local batch_processor, err = bp:new(func_to_execute, config)</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">if batch_processor then</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    batch_processor:push({hello=&#x27;world&#x27;})</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">end</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>Note: Please make sure th [...]
 The timer to flush the batch runs based on the <code>inactive_timeout</code> configuration. Thus, for optimal usage,
-keep the <code>inactive_timeout</code> smaller than the <code>buffer_duration</code>.</p></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/batch-processor.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAspectRatio="xMidYMid meet" role="img" viewBox="0 0 40 40" class="iconEdit_2_ui" aria-label="Edit page"><g><path d="m34.5 11.7l-3 3 [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/4f7f961a.c7014e08.js"></script>
+keep the <code>inactive_timeout</code> smaller than the <code>buffer_duration</code>.</p></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/batch-processor.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAspectRatio="xMidYMid meet" role="img" viewBox="0 0 40 40" class="iconEdit_2_ui" aria-label="Edit page"><g><path d="m34.5 11.7l-3 3 [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/benchmark/index.html b/docs/apisix/benchmark/index.html
index 0520a8e..c32912a 100644
--- a/docs/apisix/benchmark/index.html
+++ b/docs/apisix/benchmark/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,33 +14,19 @@
 <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">Benchmark | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/5381c375.f7a3e4d4.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Benchmark | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/benchmark"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaur [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 which is the HTTP benchmarking tool.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="benchmark-test-for-reverse-proxy"></a>Benchmark Test for reverse proxy<a class="hash-link" href="#benchmark-test-for-reverse-proxy" title="Direct link to heading">#</a></h3><p>Only used APISIX as the reverse proxy server, with no logging, limit rate, or other plugins enabled,
 and the response size was 1KB.</p><h4><a aria-hidden="true" tabindex="-1" class="anchor" id="qps"></a>QPS<a class="hash-link" href="#qps" title="Direct link to heading">#</a></h4><p>The x-axis means the size of CPU core, and the y-axis is QPS.</p><p><img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/benchmark-1.jpg" alt="benchmark-1"></p><h4><a aria-hidden="true" tabindex="-1" class="anchor" id="latency"></a>Latency<a class="hash-link" href="#latency" tit [...]
-<img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/flamegraph-1.jpg" alt="flamegraph-1"></p><p>And if you want to run the benchmark test in your machine, you should run another Nginx to listen 80 port.</p><div class="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" st [...]
+<img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/flamegraph-1.jpg" alt="flamegraph-1"></p><p>And if you want to run the benchmark test in your machine, you should run another Nginx to listen 80 port.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="to [...]
 and the response size was 1KB.</p><h4><a aria-hidden="true" tabindex="-1" class="anchor" id="qps-1"></a>QPS<a class="hash-link" href="#qps-1" title="Direct link to heading">#</a></h4><p>The x-axis means the size of CPU core, and the y-axis is QPS.</p><p><img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/benchmark-2.jpg" alt="benchmark-2"></p><h4><a aria-hidden="true" tabindex="-1" class="anchor" id="latency-1"></a>Latency<a class="hash-link" href="#latenc [...]
-<img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/flamegraph-2.jpg" alt="flamegraph-2"></p><p>And if you want to run the benchmark test in your machine, you should run another Nginx to listen 80 port.</p><div class="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" st [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/5381c375.f7a3e4d4.js"></script>
+<img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/flamegraph-2.jpg" alt="flamegraph-2"></p><p>And if you want to run the benchmark test in your machine, you should run another Nginx to listen 80 port.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="to [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/control-api/index.html b/docs/apisix/control-api/index.html
index 6506833..9f58dcf 100644
--- a/docs/apisix/control-api/index.html
+++ b/docs/apisix/control-api/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,33 +14,19 @@
 <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">Control API | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/ff8d1795.6b1ff326.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Control API | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/control-api"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docu [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
-the <code>control</code> section under <code>apisix</code> in <code>conf/config.yaml</code>:</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">apisix</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span  [...]
-If a plugin adds such a control API, please refer to each plugin&#x27;s documentation for those APIs.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="plugin-independent-control-api"></a>Plugin independent Control API<a class="hash-link" href="#plugin-independent-control-api" title="Direct link to heading">#</a></h2><p>Here is the supported API:</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="get-v1schema"></a>GET /v1/schema<a class="hash-link" href="#get-v1sch [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+the <code>control</code> section under <code>apisix</code> in <code>conf/config.yaml</code>:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><div tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token key atrule">apisix</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</ [...]
+If a plugin adds such a control API, please refer to each plugin&#x27;s documentation for those APIs.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="plugin-independent-control-api"></a>Plugin independent Control API<a class="hash-link" href="#plugin-independent-control-api" title="Direct link to heading">#</a></h2><p>Here is the supported API:</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="get-v1schema"></a>GET /v1/schema<a class="hash-link" href="#get-v1sch [...]
 of fields like <code>consumer_schema</code> or <code>type</code>, it is depended on by the plugin&#x27;s
-definition.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="get-v1healthcheck"></a>GET /v1/healthcheck<a class="hash-link" href="#get-v1healthcheck" title="Direct link to heading">#</a></h3><p>Introduced since <code>v2.3</code>.</p><p>Return current <a href="/docs/apisix/health-check">health check</a> status in the format below:</p><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-json codeBlock_23N8 thin-scrollba [...]
-object with id 1 creates a health checker, the <code>src_type</code> is <code>upstreams</code> and the <code>src_id</code> is <code>1</code>.</li><li>name: the name of the health checker.</li><li>nodes: the target nodes of the health checker.</li><li>healthy_nodes: the healthy node known by the health checker.</li></ul><p>User can also use <code>/v1/healthcheck/$src_type/$src_id</code> can get the status of a health checker.</p><p>For example, <code>GET /v1/healthcheck/upstreams/1</code> [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/ff8d1795.6b1ff326.js"></script>
+definition.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="get-v1healthcheck"></a>GET /v1/healthcheck<a class="hash-link" href="#get-v1healthcheck" title="Direct link to heading">#</a></h3><p>Introduced since <code>v2.3</code>.</p><p>Return current <a href="/docs/apisix/health-check">health check</a> status in the format below:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly json"><div tabindex="0" class="prism-code language-json codeBlock_23N8 th [...]
+object with id 1 creates a health checker, the <code>src_type</code> is <code>upstreams</code> and the <code>src_id</code> is <code>1</code>.</li><li>name: the name of the health checker.</li><li>nodes: the target nodes of the health checker.</li><li>healthy_nodes: the healthy node known by the health checker.</li></ul><p>User can also use <code>/v1/healthcheck/$src_type/$src_id</code> can get the status of a health checker.</p><p>For example, <code>GET /v1/healthcheck/upstreams/1</code> [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/customize-nginx-configuration/index.html b/docs/apisix/customize-nginx-configuration/index.html
index 0c15790..c3a365c 100644
--- a/docs/apisix/customize-nginx-configuration/index.html
+++ b/docs/apisix/customize-nginx-configuration/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,31 +14,17 @@
 <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">Customize Nginx configuration | 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" [...]
-<link rel="preload" href="/assets/js/styles.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/0132ab2c.be02a700.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Customize Nginx configuration | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/customize-nginx-configuration"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-reac [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">            location /ysec_status </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">                req_status_show;</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">                allow 127.0.0.1;</span></div><div class="token-li [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">        chunked_transfer_encoding on;</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    </span><span class="token key atrule">http_server_configuration_snippet</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">|</span><span class="token scalar string" style="color:rgb(195, 232, 141)"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token  [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/0132ab2c.be02a700.js"></script>
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    </span><span class="token key atrule">http_server_configuration_snippet</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">|</span><span class="token scalar string" style="color:rgb(195, 232, 141)"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token  [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/debug-function/index.html b/docs/apisix/debug-function/index.html
index 6d3253d..b868fd9 100644
--- a/docs/apisix/debug-function/index.html
+++ b/docs/apisix/debug-function/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,29 +14,15 @@
 <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">Debug Function | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/11dba9b3.4a928104.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Debug Function | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/debug-function"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearc [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
-</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>It has a response header of <code>X-APISIX-Upstream-Status: 502</code>.</p><blockquote><p>Example 2: <code>502</code> response status code comes from <code>APISIX</code></p></blockquote><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLi [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/11dba9b3.4a928104.js"></script>
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>It has a response header of <code>X-APISIX-Upstream-Status: 502</code>.</p><blockquote><p>Example 2: <code>502</code> response status code comes from <code>APISIX</code></p></blockquote><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class= [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/discovery/consul_kv/index.html b/docs/apisix/discovery/consul_kv/index.html
index c52502c..61a681e 100644
--- a/docs/apisix/discovery/consul_kv/index.html
+++ b/docs/apisix/discovery/consul_kv/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,31 +14,17 @@
 <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">consul_kv | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/e461335b.06b4c2c5.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">consul_kv | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/discovery/consul_kv"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearc [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
-<img src="https://user-images.githubusercontent.com/548385/107141841-6ced3e00-6966-11eb-8aa4-bc790a4ad113.png"></p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="configuration-for-discovery-client"></a>Configuration for discovery client<a class="hash-link" href="#configuration-for-discovery-client" title="Direct link to heading">#</a></h2><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="configuration-for-consul-kv"></a>Configuration for Consul KV<a class="hash-link" [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+<img src="https://user-images.githubusercontent.com/548385/107141841-6ced3e00-6966-11eb-8aa4-bc790a4ad113.png"></p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="configuration-for-discovery-client"></a>Configuration for discovery client<a class="hash-link" href="#configuration-for-discovery-client" title="Direct link to heading">#</a></h2><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="configuration-for-consul-kv"></a>Configuration for Consul KV<a class="hash-link" [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">\</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    -X PUT </span><span class="token punctuation" style="color:rgb(199, 146, 234)">\</span><span class="token [...]
-To avoid confusion, use the full consul key url path as service name in practice.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="upstream-setting"></a>Upstream setting<a class="hash-link" href="#upstream-setting" title="Direct link to heading">#</a></h3><p>Here is an example of routing a request with a URL of &quot;/*&quot; to a service which named &quot;<a href="http://127.0.0.1:8500/v1/kv/upstreams/webpages/%22" target="_blank" rel="noopener noreferrer">http://127.0.0.1: [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/e461335b.06b4c2c5.js"></script>
+To avoid confusion, use the full consul key url path as service name in practice.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="upstream-setting"></a>Upstream setting<a class="hash-link" href="#upstream-setting" title="Direct link to heading">#</a></h3><p>Here is an example of routing a request with a URL of &quot;/*&quot; to a service which named &quot;<a href="http://127.0.0.1:8500/v1/kv/upstreams/webpages/%22" target="_blank" rel="noopener noreferrer">http://127.0.0.1: [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/discovery/dns/index.html b/docs/apisix/discovery/dns/index.html
index c6344a1..907a546 100644
--- a/docs/apisix/discovery/dns/index.html
+++ b/docs/apisix/discovery/dns/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,37 +14,23 @@
 <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">DNS | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/72ff46d3.1cb2e254.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">DNS | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/discovery/dns"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
-via DNS. Therefore we can use this way to discover service directly.</p><p>First of all, we need to configure the address of DNS servers:</p><div class="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 comment" style="color:rgb(105, 112, 152);font-style:italic" [...]
-DNS will return all records. For example, with upstream configuration:</p><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-json codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span></div><div class="token-line" style="co [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">; name  TTL         type    priority    weight  port</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">srv     86400 IN    SRV     10          60      1980 A</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">srv     86400 IN    SRV     20          20      1981 B</span></div></div></div><button type="button" aria-label="Copy code to clipb [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+via DNS. Therefore we can use this way to discover service directly.</p><p>First of all, we need to configure the address of DNS servers:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><div tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token comment" style="color:rgb(105, 112, 152);font-st [...]
+DNS will return all records. For example, with upstream configuration:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly json"><div tabindex="0" class="prism-code language-json codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span></div><div class="token-line [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">; name  TTL         type    priority    weight  port</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">srv     86400 IN    SRV     10          60      1980 A</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">srv     86400 IN    SRV     20          20      1981 B</span></div></div></div><button type="button" aria-label="Copy code to clipb [...]
 For SRV record, nodes with lower priority are chosen first, so the final priority is negative.</p><p>As for 0 weight SRV record, the <a href="https://www.ietf.org/rfc/rfc2782.txt" target="_blank" rel="noopener noreferrer">RFC 2782</a> says:</p><blockquote><p>Domain administrators SHOULD use Weight 0 when there isn&#x27;t any server
 selection to do, to make the RR easier to read for humans (less
 noisy).  In the presence of records containing weights greater
 than 0, records with weight 0 should have a very small chance of
 being selected.</p></blockquote><p>We treat weight 0 record has a weight of 1 so the node &quot;have a very small chance of
-being selected&quot;, which is also the common way to treat this type of record.</p></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/discovery/dns.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAspectRatio="xMidYMid meet" role="img" viewBox="0 0 40 40" class="iconEdit_2_ui" aria-label="Edit page"><g><path d="m34.5 11.7l-3 3.1-6.3- [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/72ff46d3.1cb2e254.js"></script>
+being selected&quot;, which is also the common way to treat this type of record.</p></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/discovery/dns.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAspectRatio="xMidYMid meet" role="img" viewBox="0 0 40 40" class="iconEdit_2_ui" aria-label="Edit page"><g><path d="m34.5 11.7l-3 3.1-6.3- [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/discovery/eureka/index.html b/docs/apisix/discovery/eureka/index.html
index 5839945..308106e 100644
--- a/docs/apisix/discovery/eureka/index.html
+++ b/docs/apisix/discovery/eureka/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,29 +14,15 @@
 <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">eureka | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/af4112e0.55110529.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">eureka | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/discovery/eureka"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docu [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
-reading from <a href="/docs/apisix/discovery#supported-discovery-registries">Supported discovery registries</a>.</p></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/discovery/eureka.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAspectRatio="xMidYMid meet" role="img" viewBox="0 0 40 40" class="iconEdit_2_ui" aria-label="Edit page" [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/af4112e0.55110529.js"></script>
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+reading from <a href="/docs/apisix/discovery#supported-discovery-registries">Supported discovery registries</a>.</p></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/discovery/eureka.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAspectRatio="xMidYMid meet" role="img" viewBox="0 0 40 40" class="iconEdit_2_ui" aria-label="Edit page" [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/discovery/index.html b/docs/apisix/discovery/index.html
index daff6f8..851c027 100644
--- a/docs/apisix/discovery/index.html
+++ b/docs/apisix/discovery/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,20 +14,13 @@
 <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">Integration service discovery registry | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/41a31a3f.3a596c6c.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Integration service discovery registry | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/discovery"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="t [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">function _M.nodes(service_name)</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    ... ...</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">end</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" style="display:inline-block">
@@ -35,18 +28,11 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">function _M.dump_data()</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    return {config = your_config, services = your_services, other = ... }</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">end</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" style="display:inline-block">
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">return _M</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><h4><a aria-hidden="true" tabindex="-1" class="anchor" id="how-convert-eurekas-instance-data-to-apisixs-node"></a>How convert Eureka&#x27;s instance data to APISIX&#x27;s node?<a class="hash-link" href="#how-convert-eurekas-instance-data-to-apisixs-node" title="Dire [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">return _M</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><h4><a aria-hidden="true" tabindex="-1" class="anchor" id="how-convert-eurekas-instance-data-to-apisixs-node"></a>How convert Eureka&#x27;s instance data to APISIX&#x27;s node?<a class="hash-link" href="#how-convert-eurekas-instance-data-to-apisixs-node" title="Dire [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:rgb(247, 140, 108)">201</span><span class="token plain"> Created</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Date: Sat, </span><span class="token number" style="color:rgb(247, 140, 108)">31</span><span class="token plain"> Aug </span><span class="token number" style="color:rgb(247, 140, 108)">2019</span><span  [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token string" style="color:rgb(195, 232, 141)">&quot;node&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token string" style="color:rgb(195, 232, 141)">&quot;value&quot;</span><span class="token plain">:</span><span class="token  [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/2 -H </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><span class="token plain"> -X PUT -i -d </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;</span></ [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/41a31a3f.3a596c6c.js"></script>
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token string" style="color:rgb(195, 232, 141)">&quot;node&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token string" style="color:rgb(195, 232, 141)">&quot;value&quot;</span><span class="token plain">:</span><span class="token  [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/2 -H </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><span class="token plain"> -X PUT -i -d </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;</span></ [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/discovery/nacos/index.html b/docs/apisix/discovery/nacos/index.html
index a5a8684..913534f 100644
--- a/docs/apisix/discovery/nacos/index.html
+++ b/docs/apisix/discovery/nacos/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,28 +14,14 @@
 <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">nacos | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/b3ea7b47.920ff128.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">nacos | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/discovery/nacos"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusa [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/b3ea7b47.920ff128.js"></script>
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/examples/plugins-hmac-auth-generate-signature/index.html b/docs/apisix/examples/plugins-hmac-auth-generate-signature/index.html
index f440ce2..c0970dc 100644
--- a/docs/apisix/examples/plugins-hmac-auth-generate-signature/index.html
+++ b/docs/apisix/examples/plugins-hmac-auth-generate-signature/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,62 +14,48 @@
 <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">HMAC Generate Signature Examples | 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_t [...]
-<link rel="preload" href="/assets/js/styles.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/27858f29.e6a5c3ae.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">HMAC Generate Signature Examples | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/examples/plugins-hmac-auth-generate-signature"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="curre [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">secret </span><span class="token operator" style="color:rgb(137, 221, 255)">=</span><span class="token plain"> </span><span class="token builtin" style="color:rgb(130, 170, 255)">bytes</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;the shared secret key here&#x27;</span><span class="token punctuation" style= [...]
 </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 builtin" style="color:rgb(130, 170, 255)">hash</span><span class="token plain"> </span><span class="token operator" style="color:rgb(137, 221, 255)">=</span><span class="token plain"> hmac</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">new</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><spa [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># to lowercase hexits</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token builtin" style="color:rgb(130, 170, 255)">hash</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">hexd [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># to lowercase base64</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">base64</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">b64encode</span><span class="token punctuation" style="color:rgb(199,  [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># to lowercase base64</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">base64</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">b64encode</span><span class="token punctuation" style="color:rgb(199,  [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token keyword" style="font-style:italic">class</span><span class="token plain"> </span><span class="token class-name" style="color:rgb(255, 203, 107)">Main</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  </spa [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     </span><span class="token class-name" style="color:rgb(255, 203, 107)">Mac</span><span class="token plain"> hasher </span><span class="token operator" style="color:rgb(137, 221, 255)">=</span><span class="token plain"> </span><span class="token class-name" style="color:rgb(255, 203, 107)">Mac</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token function"  [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     </span><span class="token keyword" style="font-style:italic">byte</span><span class="token punctuation" style="color:rgb(199, 146, 234)">[</span><span class="token punctuation" style="color:rgb(199, 146, 234)">]</span><span class="token plain"> hash </span><span class="token operator" style="color:rgb(137, 221, 255)">=</span><span class="token plain"> hasher</span><span class="token punctuation" sty [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     </span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic">// to lowercase hexits</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     </span><span class="token class-name" style="color:rgb(255, 203, 107)">DatatypeConverter</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><sp [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     </span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic">// to base64</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     </span><span class="token class-name" style="color:rgb(255, 203, 107)">DatatypeConverter</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class=" [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     </span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic">// to base64</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     </span><span class="token class-name" style="color:rgb(255, 203, 107)">DatatypeConverter</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class=" [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token keyword" style="font-style:italic">import</span><span class="token plain"> </span><span class="token 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;crypto/hmac&quot;</span><span class="t [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token keyword" style="font-style:italic">func</span><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">main</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    hash </span><span class="token operator" style="color:rgb(137, 221, 255)">:=</span><span class="token plain"> hmac</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token function" style="color:rgb(130, 170, 255)">New</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">sha256</span><span class="token punctu [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    </span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic">// to lowercase hexits</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    hex</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token function" style="color:rgb(130, 170, 255)">EncodeToString</span><span c [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    </span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic">// to base64</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    base64</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">StdEncoding</span><span class="token punctuation" style="color:rgb(199, [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    </span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic">// to base64</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    base64</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">StdEncoding</span><span class="token punctuation" style="color:rgb(199, [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">secret = &#x27;the shared secret key here&#x27;</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">message = &#x27;this is signature string&#x27;</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"># to lowercase hexits</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">OpenSSL::HMAC.hexdigest(&#x27;sha256&#x27;, secret, message)</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"># to base64</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Base64.encode64(OpenSSL::HMAC.digest(&#x27;sha256&#x27;, secret, message))</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="nodejs"></a>NodeJs<a class="hash-link" href="# [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"># to base64</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Base64.encode64(OpenSSL::HMAC.digest(&#x27;sha256&#x27;, secret, message))</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="nodejs"></a>NodeJs<a class="hash-link" href="# [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token keyword" style="font-style:italic">var</span><span class="token plain"> secret </span><span class="token operator" style="color:rgb(137, 221, 255)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;the shared secret key here&#x27;</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class=" [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token keyword" style="font-style:italic">var</span><span class="token plain"> hash </span><span class="token operator" style="color:rgb(137, 221, 255)">=</span><span class="token plain"> crypto</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token method function property-access" style="color:rgb(130, 170, 255)">createHmac</span><span class= [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic">// to lowercase hexits</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hash</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token method function property-access" style="color:rgb(130, 170, 255)">digest</span [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic">// to base64</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hash</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token method function property-access" style="color:rgb(130, 170, 255)">digest</span><span cla [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic">// to base64</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hash</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token method function property-access" style="color:rgb(130, 170, 255)">digest</span><span cla [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token keyword" style="font-style:italic">const</span><span class="token plain"> </span><span class="token function-variable function" style="color:rgb(130, 170, 255)">getUtf8Bytes</span><span class="token plain"> </span><span class="token operator" style="color:rgb(137, 221, 255)">=</span><span class="token plain"> </span><span class="token parameter">str</span><span class="token plai [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token keyword" style="font-style:italic">const</span><span class="token plain"> secretBytes </span><span class="token operator" style="color:rgb(137, 221, 255)">=</span><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">getUtf8Bytes</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">secr [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token keyword" style="font-style:italic">const</span><span class="token plain"> cryptoKey </span><span class="token operator" style="color:rgb(137, 221, 255)">=</span><span class="token plain"> </span><span class="token keyword" style="font-style:italic">await</span><span class="token plain"> crypto</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span c [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic">// to lowercase hexits</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">[</span><span class="token spread operator" style="color:rgb(137, 221, 255)">...</span><span class="token pla [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic">// to base64</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">btoa</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token known-class-name cl [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic">// to base64</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">btoa</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token known-class-name cl [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token variable" style="color:rgb(191, 199, 213)">$secret</span><span class="token plain"> </span><span class="token operator" style="color:rgb(137, 221, 255)">=</span><span class="token plain"> </span><span class="token single-quoted-string string" style="color:rgb(195, 232, 141)">&#x27;the shared secret key here&#x27;</span><span class="token punctuation" style="color:rgb(199, 146, 2 [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic">// to lowercase hexits</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">hash_hmac</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token sing [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic">// to base64</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">base64_encode</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token function"  [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic">// to base64</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">base64_encode</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token function"  [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">--to lowercase hexits</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">ngx.say(digest)</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">--to base64</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">ngx.say(ngx.encode_base64(digest))</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="shell"></a>Shell<a class="hash-link" href="#shell" title="Direct link to heading">#</a [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">--to base64</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">ngx.say(ngx.encode_base64(digest))</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="shell"></a>Shell<a class="hash-link" href="#shell" title="Direct link to heading">#</a [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># to lowercase hexits</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token builtin class-name" style="color:rgb(255, 203, 107)">echo</span><span class="token plain"> -e </span><span class="token variable" style="color:rgb(191, 199, [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># to base64</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token builtin class-name" style="color:rgb(255, 203, 107)">echo</span><span class="token plain"> -e </span><span class="token variable" style="color:rgb(191, 199, 213)">$ME [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/27858f29.e6a5c3ae.js"></script>
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># to base64</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token builtin class-name" style="color:rgb(255, 203, 107)">echo</span><span class="token plain"> -e </span><span class="token variable" style="color:rgb(191, 199, 213)">$ME [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/getting-started/index.html b/docs/apisix/getting-started/index.html
index d14290b..c12edc7 100644
--- a/docs/apisix/getting-started/index.html
+++ b/docs/apisix/getting-started/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,29 +14,15 @@
 <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">Getting Started | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/32e589c1.d01a6b37.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Getting Started | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/getting-started"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsea [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
-the proxy-rewrite plugin to do it.</p><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-bash codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> </span><span class="token string" style="color [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/32e589c1.d01a6b37.js"></script>
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+the proxy-rewrite plugin to do it.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly bash"><div tabindex="0" class="prism-code language-bash codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> </span><span class="token string" s [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/grpc-proxy/index.html b/docs/apisix/grpc-proxy/index.html
index a838e3e..8528e8e 100644
--- a/docs/apisix/grpc-proxy/index.html
+++ b/docs/apisix/grpc-proxy/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,29 +14,15 @@
 <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">gRPC Proxy | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/5b9020fd.d2bd3312.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">gRPC Proxy | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/grpc-proxy"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusa [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
-gRPC client -&gt; APISIX -&gt; gRPC/gRPCS server</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="parameters"></a>Parameters<a class="hash-link" href="#parameters" title="Direct link to heading">#</a></h2><ul><li><code>scheme</code>: the <code>scheme</code> of the route&#x27;s upstream must be <code>grpc</code> or <code>grpcs</code>.</li><li><code>uri</code>: format likes /service/method, Example:/helloworld.Greeter/SayHello</li></ul><h3><a aria-hidden="true" tabindex="-1" c [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/5b9020fd.d2bd3312.js"></script>
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+gRPC client -&gt; APISIX -&gt; gRPC/gRPCS server</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="parameters"></a>Parameters<a class="hash-link" href="#parameters" title="Direct link to heading">#</a></h2><ul><li><code>scheme</code>: the <code>scheme</code> of the route&#x27;s upstream must be <code>grpc</code> or <code>grpcs</code>.</li><li><code>uri</code>: format likes /service/method, Example:/helloworld.Greeter/SayHello</li></ul><h3><a aria-hidden="true" tabindex="-1" c [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/health-check/index.html b/docs/apisix/health-check/index.html
index a7fdec7..b707f5c 100644
--- a/docs/apisix/health-check/index.html
+++ b/docs/apisix/health-check/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,32 +14,18 @@
 <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">Health Check | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/8cdcb209.2c41a268.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Health Check | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/health-check"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:do [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 you can use it for upstream.</p><p>Note:</p><ul><li>We only start the health check when the upstream is hit by a request.
 There won&#x27;t be any health check if an upstream is configured but isn&#x27;t in used.</li><li>If there is no healthy node can be chosen, we will continue to access the upstream.</li><li>We won&#x27;t start the health check when the upstream only has one node, as we will access
-it whether this unique node is healthy or not.</li></ul><p>The following is an example of health check:</p><div class="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 function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127. [...]
-contains: <code>active</code> or <code>passive</code>.</p><ul><li><p><code>active</code>: To enable active health checks, you need to specify the configuration items under <code>checks.active</code> in the Upstream object configuration.</p><ul><li><p><code>active.timeout</code>: Socket timeout for active checks (in seconds), support decimals. For example <code>1.01</code> means <code>1010</code> milliseconds, <code>2</code> means <code>2000</code> milliseconds.</p></li><li><p><code>activ [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/8cdcb209.2c41a268.js"></script>
+it whether this unique node is healthy or not.</li></ul><p>The following is an example of health check:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> [...]
+contains: <code>active</code> or <code>passive</code>.</p><ul><li><p><code>active</code>: To enable active health checks, you need to specify the configuration items under <code>checks.active</code> in the Upstream object configuration.</p><ul><li><p><code>active.timeout</code>: Socket timeout for active checks (in seconds), support decimals. For example <code>1.01</code> means <code>1010</code> milliseconds, <code>2</code> means <code>2000</code> milliseconds.</p></li><li><p><code>activ [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/how-to-build/index.html b/docs/apisix/how-to-build/index.html
index 8ed6121..9041e63 100644
--- a/docs/apisix/how-to-build/index.html
+++ b/docs/apisix/how-to-build/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,39 +14,25 @@
 <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">How to build Apache APISIX | 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" co [...]
-<link rel="preload" href="/assets/js/styles.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/860d73b2.84cff8f3.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">How to build Apache APISIX | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/how-to-build"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
-or we can stop APISIX server by command <code>make stop</code>.</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 comment" style="color:rgb(105, 112, 152);font-style:italic"># init nginx config file and etcd</span><span class="token plain"></span [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+or we can stop APISIX server by command <code>make stop</code>.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># init nginx config file and etcd</span><span class="token p [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># start APISIX server</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">make</span><span class="token plain"> run</span></div><div class="token-line" style="color:#bfc7d5"><span class [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># stop APISIX server</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">make</span><span class="token plain"> stop</span></div><div class="token-line" style="color:#bfc7d5"><span class [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># more actions find by `help`</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">make</span><span class="token plain"> </span><span class="token builtin class-name" style="color:rgb(25 [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    help:             Show Makefile rules</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    deps:             Installation dependencies</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    utils:            Installation tools</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    lint:             Li [...]
 see how to do it.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="4-test"></a>4. Test<a class="hash-link" href="#4-test" title="Direct link to heading">#</a></h2><ol><li>Install perl&#x27;s package manager <code>cpanminus</code> first</li><li>Then install <code>test-nginx</code>&#x27;s dependencies via <code>cpanm</code>::<code>sudo cpanm --notest Test::Nginx IPC::Run &gt; build.log 2&gt;&amp;1 || (cat build.log &amp;&amp; exit 1)</code></li><li>Clone source code:<code>git  [...]
 make sure to set openresty as default nginx. And export the path as below.</li></ul><ul><li>export PATH=/usr/local/openresty/nginx/sbin:$PATH<ul><li>Linux default installation path:<ul><li>export PATH=/usr/local/openresty/nginx/sbin:$PATH</li></ul></li><li>OSx default installation path via homebrew:<ul><li>export PATH=/usr/local/opt/openresty/nginx/sbin:$PATH</li></ul></li></ul></li></ul><p><strong>Run Individual Test Cases</strong></p><ul><li>Use the following command to run test cases  [...]
-Here is an example:</p><div class="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">apisix</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></span></div><div class="token-line" style="color:#bf [...]
+Here is an example:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><div tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token key atrule">apisix</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></span></div><div class="token-line" style [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes?api_key</span><span class="token operator" style="color:rgb(137, 221, 255)">=</span><span class="token plain">abcdefghabcdefgh-invalid -i</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">HTTP/1.1 </span><span class="token [...]
 If you need those features, you can build OpenResty with
-<a href="https://raw.githubusercontent.com/api7/apisix-build-tools/master/build-apisix-openresty.sh" target="_blank" rel="noopener noreferrer">this build script</a>.</p></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/how-to-build.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAspectRatio="xMidYMid meet" role="img" viewBox="0 0 40 [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/860d73b2.84cff8f3.js"></script>
+<a href="https://raw.githubusercontent.com/api7/apisix-build-tools/master/build-apisix-openresty.sh" target="_blank" rel="noopener noreferrer">this build script</a>.</p></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/how-to-build.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAspectRatio="xMidYMid meet" role="img" viewBox="0 0 40 [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/https/index.html b/docs/apisix/https/index.html
index 7267f12..5d84840 100644
--- a/docs/apisix/https/index.html
+++ b/docs/apisix/https/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,43 +14,29 @@
 <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">HTTPS | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/e3d364e1.e73825b9.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">HTTPS | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/https"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag"  [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token keyword" style="font-style:italic">if</span><span class="token plain"> </span><span class="token builtin" style="color:rgb(130, 170, 255)">len</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">sys</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">argv</span><span class=" [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token keyword" style="font-style:italic">if</span><span class="token plain"> </span><span class="token builtin" style="color:rgb(130, 170, 255)">len</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">sys</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">argv</span><span class=" [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># create Router object</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1 -H </span><span class="token s [...]
 </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"># make a test</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"> --resolve </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;test.com:9443:127.0.0.1&#x27;</span><span class="token plain"> https://test.com:9443/hello  -vvv</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">* Added test.com:9443:127.0.0.1 to D [...]
-that means it can accept more than one domain, eg: <code>www.test.com</code> or <code>mail.test.com</code>.</p><p>Here is an example, note that the value we pass as <code>sni</code> is <code>*.test.com</code>.</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 [...]
+that means it can accept more than one domain, eg: <code>www.test.com</code> or <code>mail.test.com</code>.</p><p>Here is an example, note that the value we pass as <code>sni</code> is <code>*.test.com</code>.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#b [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1 -H </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><span class="token plain"> -X PUT -i -d </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;</span></di [...]
 </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"># make a test</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"> --resolve </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;www.test.com:9443:127.0.0.1&#x27;</span><span class="token plain"> https://www.test.com:9443/hello  -vvv</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">* Added test.com:9443:127.0. [...]
-and <code>mail.test.com</code>, then you can add them into the <code>snis</code> array. For example:</p><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-json codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span></div><di [...]
+and <code>mail.test.com</code>, then you can add them into the <code>snis</code> array. For example:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly json"><div tabindex="0" class="prism-code language-json codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></spa [...]
 instance, supporting both the
 <a href="https://en.wikipedia.org/wiki/Elliptic-curve_cryptography" target="_blank" rel="noopener noreferrer">ECC</a>
 and RSA key-exchange algorithm, then just configure the extra certificates (the
 first certificate and private key should be still put in <code>cert</code> and <code>key</code>) and
 private keys by <code>certs</code> and <code>keys</code>.</p><ul><li><code>certs</code>: PEM-encoded certificate array.</li><li><code>keys</code>: PEM-encoded private key array.</li></ul><p><code>APISIX</code> will pair certificate and private key with the same indice as a SSL key
-pair. So the length of <code>certs</code> and <code>keys</code> must be same.</p></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/https.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAspectRatio="xMidYMid meet" role="img" viewBox="0 0 40 40" class="iconEdit_2_ui" aria-label="Edit page"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0 [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/e3d364e1.e73825b9.js"></script>
+pair. So the length of <code>certs</code> and <code>keys</code> must be same.</p></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/https.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAspectRatio="xMidYMid meet" role="img" viewBox="0 0 40 40" class="iconEdit_2_ui" aria-label="Edit page"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0 [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/install-dependencies/index.html b/docs/apisix/install-dependencies/index.html
index 70f665b..8ac6d47 100644
--- a/docs/apisix/install-dependencies/index.html
+++ b/docs/apisix/install-dependencies/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,47 +14,33 @@
 <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">Install Dependencies | 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= [...]
-<link rel="preload" href="/assets/js/styles.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/a138bbe3.b1a1087f.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Install Dependencies | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/install-dependencies"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" na [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># add OpenResty source</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">sudo</span><span class="token plain"> yum </span><span class="token function" style="color:rgb(130, 170, 255)">i [...]
 </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"># install OpenResty and some compilation tools</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">sudo</span><span class="token plain"> yum </span><span class="token function" style="col [...]
 </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"># install LuaRocks</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> https://raw.githubusercontent.com/apache/apisix/master/utils/linux-install-lua [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># start etcd server</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">nohup</span><span class="token plain"> etcd </span><span class="token operator" style="color:rgb(137, 221, 255)">&a [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># start etcd server</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">nohup</span><span class="token plain"> etcd </span><span class="token operator" style="color:rgb(137, 221, 255)">&a [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># install etcd</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">wget</span><span class="token plain"> https://github.com/etcd-io/etcd/releases/download/v3.4.13/etcd-v3.4.13-linux-amd64 [...]
 </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"># install OpenResty and some compilation tools</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">sudo</span><span class="token plain"> yum </span><span class="token function" style="col [...]
 </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"># install LuaRocks</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> https://raw.githubusercontent.com/apache/apisix/master/utils/linux-install-lua [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># start etcd server</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">nohup</span><span class="token plain"> etcd </span><span class="token operator" style="color:rgb(137, 221, 255)">&a [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># start etcd server</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">nohup</span><span class="token plain"> etcd </span><span class="token operator" style="color:rgb(137, 221, 255)">&a [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># install etcd</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">wget</span><span class="token plain"> https://github.com/etcd-io/etcd/releases/download/v3.4.13/etcd-v3.4.13-linux-amd64 [...]
 </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"># install OpenResty and some compilation tools</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">sudo</span><span class="token plain"> </span><span class="token function" style="color:r [...]
 </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"># install LuaRocks</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> https://raw.githubusercontent.com/apache/apisix/master/utils/linux-install-lua [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># start etcd server</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">nohup</span><span class="token plain"> etcd </span><span class="token operator" style="color:rgb(137, 221, 255)">&a [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># start etcd server</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">nohup</span><span class="token plain"> etcd </span><span class="token operator" style="color:rgb(137, 221, 255)">&a [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># add OpenResty source</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">wget</span><span class="token plain"> -qO - https://openresty.org/package/pubkey.gpg </span><span class="token o [...]
 </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"># install etcd</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">wget</span><span class="token plain"> https://github.com/etcd-io/etcd/releases/download/v3.4.13/etcd-v3.4.13-linux-amd64 [...]
 </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"># install OpenResty and some compilation tools</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">sudo</span><span class="token plain"> </span><span class="token function" style="color:r [...]
 </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"># install LuaRocks</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> https://raw.githubusercontent.com/apache/apisix/master/utils/linux-install-lua [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># start etcd server</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">nohup</span><span class="token plain"> etcd </span><span class="token operator" style="color:rgb(137, 221, 255)">&a [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># start etcd server</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">nohup</span><span class="token plain"> etcd </span><span class="token operator" style="color:rgb(137, 221, 255)">&a [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># start etcd server</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">brew services start etcd</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># enable TLS for etcd server</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">etcd --cert-file</span><span class="token operator" style="color:rgb(137, 221, 255)">=</span><span class="token plain">/path/to/cert --key-file</span><span class="token operat [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/a138bbe3.b1a1087f.js"></script>
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># enable TLS for etcd server</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">etcd --cert-file</span><span class="token operator" style="color:rgb(137, 221, 255)">=</span><span class="token plain">/path/to/cert --key-file</span><span class="token operat [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/mtls/index.html b/docs/apisix/mtls/index.html
index 16b16ea..78292fc 100644
--- a/docs/apisix/mtls/index.html
+++ b/docs/apisix/mtls/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,29 +14,15 @@
 <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">Mutual TLS authentication for Admin API | 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:docus [...]
-<link rel="preload" href="/assets/js/styles.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/cf167ebd.d3a0fd48.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Mutual TLS authentication for Admin API | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/mtls"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  </span><span class="token key atrule">admin_api_mtls</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    </span><span class="token key atrule">admin_ssl_ca_cert</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plai [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/cf167ebd.d3a0fd48.js"></script>
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  </span><span class="token key atrule">admin_api_mtls</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    </span><span class="token key atrule">admin_ssl_ca_cert</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plai [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/plugin-develop/index.html b/docs/apisix/plugin-develop/index.html
index 29b3315..9102ebd 100644
--- a/docs/apisix/plugin-develop/index.html
+++ b/docs/apisix/plugin-develop/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,60 +14,46 @@
 <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">Plugin Develop | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/1ed156ee.16d0ddaa.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Plugin Develop | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/plugin-develop"><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="docsearc [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
-needs to declare via <a href="/docs/apisix/customize-nginx-configuration">customizing Nginx configuration</a>, for 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="color:#bfc7d5"><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># put this i [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+needs to declare via <a href="/docs/apisix/customize-nginx-configuration">customizing Nginx configuration</a>, for example :</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><div tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># [...]
 the plugin is loaded.</p><p>Note : if the dependency of some plugin needs to be initialized when Nginx start, you may need to add logic to the initialization
 method &quot;http_init&quot; in the file <strong>apisix/init.lua</strong>, and you may need to add some processing on generated part of Nginx
 configuration file in <strong>apisix/cli/ngx_tpl.lua</strong> file. But it is easy to have an impact on the overall situation according to the
 existing plugin mechanism, <strong>we do not recommend this unless you have a complete grasp of the code</strong>.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="name-and-config"></a>name and config<a class="hash-link" href="#name-and-config" title="Direct link to heading">#</a></h2><p>Determine the name and priority of the plugin, and add to conf/config-default.yaml. For example, for the example-plugin plugin,
 you need to specify the plugin name in the code (the name is the unique identifier of the plugin and cannot be
-duplicate), you can see the code in file &quot;<strong>apisix/plugins/example-plugin.lua</strong>&quot; :</p><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-lua 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">local plugin_name = &quot;example-plugin&quot;</span></div><div class="token-line" st [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">local _M = {</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    version = 0.1,</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    priority = 0,</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    name = plugin_name,</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plai [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token key atrule">plugins</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> </span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># copied from config-default.yaml</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  </span><span cla [...]
-configuration data:</p><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-json codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  </span><sp [...]
-verification.</p><p>In addition, if the plugin needs to use some metadata, we can define the plugin <code>metadata_schema</code>, and then we can dynamically manage these metadata through the <code>admin api</code>. Example:</p><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-lua codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:# [...]
+duplicate), you can see the code in file &quot;<strong>apisix/plugins/example-plugin.lua</strong>&quot; :</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly lua"><div tabindex="0" class="prism-code language-lua 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">local plugin_name = &quot;example-plugin&quot;</span></div><div class="toke [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">local _M = {</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    version = 0.1,</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    priority = 0,</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    name = plugin_name,</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plai [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token key atrule">plugins</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> </span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># copied from config-default.yaml</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  </span><span cla [...]
+configuration data:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly json"><div tabindex="0" class="prism-code language-json codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  [...]
+verification.</p><p>In addition, if the plugin needs to use some metadata, we can define the plugin <code>metadata_schema</code>, and then we can dynamically manage these metadata through the <code>admin api</code>. Example:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly lua"><div tabindex="0" class="prism-code language-lua codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" styl [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">local plugin_name = &quot;example-plugin&quot;</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">local _M = {</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    version = 0.1,</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    priority = 0,        -- TODO: add a type field, may be a good idea</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    name = plugin_name,</span></div><div class="toke [...]
-When we set the type of plugin to <code>auth</code>, it means that this plugin is an authentication plugin.</p><p>An authentication plugin needs to choose a consumer after execution. For example, in key-auth plugin, it calls the <code>consumer.attach_consumer</code> to attach a consumer, which is chosen via the <code>apikey</code> header.</p><p>To interact with the <code>consumer</code> resource, this type of plugin needs to provide a <code>consumer_schema</code> to check the <code>plugi [...]
+When we set the type of plugin to <code>auth</code>, it means that this plugin is an authentication plugin.</p><p>An authentication plugin needs to choose a consumer after execution. For example, in key-auth plugin, it calls the <code>consumer.attach_consumer</code> to attach a consumer, which is chosen via the <code>apikey</code> header.</p><p>To interact with the <code>consumer</code> resource, this type of plugin needs to provide a <code>consumer_schema</code> to check the <code>plugi [...]
 recommended to know it in advance. For example key-auth is an authentication plugin, thus the authentication should be completed
 before forwarding the request to any upstream service. Therefore, the plugin must be executed in the rewrite phases.
-In APISIX, only the authentication logic can be run in the rewrite phase. Other logic needs to run before proxy should be in access phase.</p><p>The following code snippet shows how to implement any logic relevant to the plugin in the OpenResty log phase.</p><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-lua codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div cl [...]
+In APISIX, only the authentication logic can be run in the rewrite phase. Other logic needs to run before proxy should be in access phase.</p><p>The following code snippet shows how to implement any logic relevant to the plugin in the OpenResty log phase.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly lua"><div tabindex="0" class="prism-code language-lua codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3 [...]
 test cases of plugins are all in the &quot;<strong>t/plugin</strong>&quot; directory. You can go ahead to find out. APISIX uses
 <a href="https://github.com/openresty/test-nginx" target="_blank" rel="noopener noreferrer">*<strong>*test-nginx**</strong></a> as the test framework. A test case (.t file) is usually
 divided into prologue and data parts by __data__. Here we will briefly introduce the data part, that is, the part
-of the real test case. For example, the key-auth plugin:</p><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-perl 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">=== TEST 1: sanity</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">--- config</span></div><div cl [...]
+of the real test case. For example, the key-auth plugin:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly perl"><div tabindex="0" class="prism-code language-perl 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">=== TEST 1: sanity</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">--- config</span></ [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">            ngx.say(&quot;done&quot;)</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">        }</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    }</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">--- request</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">GET / [...]
 complete the Lua script, and finally return. The assertion of the use case is response_body return &quot;done&quot;,
 &quot;<strong>no_error_log</strong>&quot; means to check the &quot;<strong>error.log</strong>&quot; of Nginx. There must be no ERROR level record. The log files for the unit test
 are located in the following folder: &#x27;t/servroot/logs&#x27;.</p><p>The above test case represents a simple scenario. Most scenarios will require multiple steps to validate. To do this, create multiple tests <code>=== TEST 1</code>, <code>=== TEST 2</code>, and so on. These tests will be executed sequentially, allowing you to break down scenarios into a sequence of atomic steps.</p><p>Additionally, there are some convenience testing endpoints which can be found <a href="https://githu [...]
 framework will assemble into a complete nginx.conf file. &quot;<strong>t/servroot</strong>&quot; is the working directory of Nginx and start the
 Nginx instance. according to the information provided by the test case, initiate the http request and check that the
-return items of HTTP include HTTP status, HTTP response header, HTTP response body and so on.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="register-public-api"></a>Register public API<a class="hash-link" href="#register-public-api" title="Direct link to heading">#</a></h3><p>A plugin can register API which exposes to the public. Take jwt-auth plugin as an example, this plugin registers <code>GET /apisix/plugin/jwt/sign</code> to allow client to sign its key:</p><div clas [...]
+return items of HTTP include HTTP status, HTTP response header, HTTP response body and so on.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="register-public-api"></a>Register public API<a class="hash-link" href="#register-public-api" title="Direct link to heading">#</a></h3><p>A plugin can register API which exposes to the public. Take jwt-auth plugin as an example, this plugin registers <code>GET /apisix/plugin/jwt/sign</code> to allow client to sign its key:</p><div clas [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">function _M.api()</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    return {</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">        {</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">            methods = {&quot;GET&quot;},</span></div><div class="token-line" style="color:#bfc7d5"><span class="to [...]
-You may need to use <a href="/docs/apisix/plugin-interceptors">interceptors</a> to protect it.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="register-control-api"></a>Register control API<a class="hash-link" href="#register-control-api" title="Direct link to heading">#</a></h3><p>If you only want to expose the API to the localhost or intranet, you can expose it via <a href="/docs/apisix/control-api">Control API</a>.</p><p>Take a look at example-plugin plugin:</p><div clas [...]
+You may need to use <a href="/docs/apisix/plugin-interceptors">interceptors</a> to protect it.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="register-control-api"></a>Register control API<a class="hash-link" href="#register-control-api" title="Direct link to heading">#</a></h3><p>If you only want to expose the API to the localhost or intranet, you can expose it via <a href="/docs/apisix/control-api">Control API</a>.</p><p>Take a look at example-plugin plugin:</p><div clas [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">function _M.control_api()</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    return {</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">        {</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">            methods = {&quot;GET&quot;},</span></div><div class="token-line" style="color:#bfc7d5"><span c [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/1ed156ee.16d0ddaa.js"></script>
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">function _M.control_api()</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    return {</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">        {</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">            methods = {&quot;GET&quot;},</span></div><div class="token-line" style="color:#bfc7d5"><span c [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/plugin-interceptors/index.html b/docs/apisix/plugin-interceptors/index.html
index ba92379..34f5c33 100644
--- a/docs/apisix/plugin-interceptors/index.html
+++ b/docs/apisix/plugin-interceptors/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,33 +14,19 @@
 <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">Plugin interceptors | 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=" [...]
-<link rel="preload" href="/assets/js/styles.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/5c21e7f7.0899fed0.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Plugin interceptors | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/plugin-interceptors"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 plugins to protect them. To solve the problem, we add a new concept called &#x27;interceptors&#x27;
 to run rules to protect them.</p><p>Here is an example to limit the access of <code>/apisix/prometheus/metrics</code> (a route introduced via plugin prometheus)
-to clients in <code>10.0.0.0/24</code>:</p><div class="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">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/plugi [...]
+to clients in <code>10.0.0.0/24</code>:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix [...]
 the name of plugin which you want to run and the <code>conf</code> is the configuration of the
-plugin.</p><p>Currently we only support a subset of plugins which can be run as interceptors.</p><p>Supported interceptors:</p><ul><li><a href="/docs/apisix/plugins/ip-restriction">ip-restriction</a></li></ul></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/plugin-interceptors.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAspectR [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/5c21e7f7.0899fed0.js"></script>
+plugin.</p><p>Currently we only support a subset of plugins which can be run as interceptors.</p><p>Supported interceptors:</p><ul><li><a href="/docs/apisix/plugins/ip-restriction">ip-restriction</a></li></ul></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/plugin-interceptors.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAspectR [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/plugins/api-breaker/index.html b/docs/apisix/plugins/api-breaker/index.html
index 52a90be..ab431ed 100644
--- a/docs/apisix/plugins/api-breaker/index.html
+++ b/docs/apisix/plugins/api-breaker/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,29 +14,15 @@
 <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">api-breaker | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/579f31ee.08159244.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">api-breaker | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/plugins/api-breaker"><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="docsea [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">..</span><span class="token plain">. </span><span class="token punctuation" style="color:rgb(199, 146, 234)">..</span><span class="token plain">.</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><h2><a aria-hidden="true" tabindex="-1" class="anchor" id= [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/579f31ee.08159244.js"></script>
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">..</span><span class="token plain">. </span><span class="token punctuation" style="color:rgb(199, 146, 234)">..</span><span class="token plain">.</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><h2><a aria-hidden="true" tabindex="-1" class="anchor" id= [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/plugins/authz-keycloak/index.html b/docs/apisix/plugins/authz-keycloak/index.html
index a3a7640..63a71b8 100644
--- a/docs/apisix/plugins/authz-keycloak/index.html
+++ b/docs/apisix/plugins/authz-keycloak/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,20 +14,13 @@
 <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">authz-keycloak | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/746acb87.81a6ccb1.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">authz-keycloak | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/plugins/authz-keycloak"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name=" [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 UMA compliant Identity Server. Although, it&#x27;s developed working in conjunction with Keycloak it should work with any
 OAuth/OIDC and UMA compliant identity providers as well.</p><p>For more information on Keycloak, refer to <a href="https://www.keycloak.org/docs/latest/authorization_services" target="_blank" rel="noopener noreferrer">Keycloak Authorization Docs</a> for more information.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="attributes"></a>Attributes<a class="hash-link" href="#attributes" title="Direct link to heading">#</a></h2><table><thead><tr><th>Name</th><th>Type</th><th>Req [...]
 Keycloak&#x27;s discovery document for Authorization Services for the respective realm. This is the recommended
@@ -49,19 +42,12 @@ Therefore, in the respective client settings in Keycloak, make sure to set the <
 option. Also make sure that the issued access token contains the <code>resource_access</code> claim with the
 <code>uma_protection</code> role. Otherwise, plugin may be unable to query resources through the Protection API.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="automatic-mapping-of-http-method-to-scope"></a>Automatic Mapping of HTTP Method to Scope<a class="hash-link" href="#automatic-mapping-of-http-method-to-scope" title="Direct link to heading">#</a></h3><p>This option is often used together with <code>lazy_load_paths</code>, but can also be used with a static permissio [...]
 of the same name. The scope is then added to every permission to check.</p><p>If <code>lazy_load_paths</code> is <code>false</code>, the plugin adds the mapped scope to any of the static permissions configured
-in the <code>permissions</code> attribute, even if they contain one or more scopes already.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="how-to-enable"></a>How To Enable<a class="hash-link" href="#how-to-enable" title="Direct link to heading">#</a></h2><p>Create a <code>route</code> and enable the <code>authz-keycloak</code> plugin on the route:</p><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-shell codeBlo [...]
-APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</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 function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/5 - [...]
-API workflows. Run the following docker image and visit <code>http://localhost:8090</code> to view the associated policies for the unit tests.</p><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-bash codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">docker run -e </span><span class="token assign- [...]
+in the <code>permissions</code> attribute, even if they contain one or more scopes already.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="how-to-enable"></a>How To Enable<a class="hash-link" href="#how-to-enable" title="Direct link to heading">#</a></h2><p>Create a <code>route</code> and enable the <code>authz-keycloak</code> plugin on the route:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-s [...]
+APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admi [...]
+API workflows. Run the following docker image and visit <code>http://localhost:8090</code> to view the associated policies for the unit tests.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly bash"><div tabindex="0" class="prism-code language-bash codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">docker run -e </span><span class="to [...]
 However, Keycloak&#x27;s official adapters (Java, JS) also provides path matching by querying Keycloak paths dynamically, and
-lazy loading the paths to identity resources. Future version on authz-plugin will support this functionality.</p></li><li><p>Support to read scope and configurations from the Keycloak JSON File</p></li></ul></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/plugins/authz-keycloak.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAspect [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/746acb87.81a6ccb1.js"></script>
+lazy loading the paths to identity resources. Future version on authz-plugin will support this functionality.</p></li><li><p>Support to read scope and configurations from the Keycloak JSON File</p></li></ul></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/plugins/authz-keycloak.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAspect [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/plugins/basic-auth/index.html b/docs/apisix/plugins/basic-auth/index.html
index 389d67f..46f585d 100644
--- a/docs/apisix/plugins/basic-auth/index.html
+++ b/docs/apisix/plugins/basic-auth/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,30 +14,16 @@
 <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">basic-auth | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/dd639a99.07a99646.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">basic-auth | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/plugins/basic-auth"><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="docsearc [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 you can delete the corresponding json configuration in the plugin configuration,
-no need to restart the service, it will take effect immediately:</p><div class="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">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0. [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/dd639a99.07a99646.js"></script>
+no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> htt [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/plugins/batch-requests/index.html b/docs/apisix/plugins/batch-requests/index.html
index 63db493..c1d1e46 100644
--- a/docs/apisix/plugins/batch-requests/index.html
+++ b/docs/apisix/plugins/batch-requests/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,30 +14,16 @@
 <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">batch-requests | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/b3ea87e1.c4cd04d1.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">batch-requests | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/plugins/batch-requests"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name=" [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 You may need to use <a href="/docs/apisix/plugin-interceptors">interceptors</a> to protect it.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="how-to-enable"></a>How To Enable<a class="hash-link" href="#how-to-enable" title="Direct link to heading">#</a></h2><p>Default enabled</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="how-to-configure"></a>How To Configure<a class="hash-link" href="#how-to-configure" title="Direct link to heading">#</a></h2><p>By default [...]
-You can configure it via <code>apisix/admin/plugin_metadata/batch-requests</code>:</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 function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/adm [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/b3ea87e1.c4cd04d1.js"></script>
+You can configure it via <code>apisix/admin/plugin_metadata/batch-requests</code>:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:908 [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/plugins/consumer-restriction/index.html b/docs/apisix/plugins/consumer-restriction/index.html
index e921ffe..f7ddedf 100644
--- a/docs/apisix/plugins/consumer-restriction/index.html
+++ b/docs/apisix/plugins/consumer-restriction/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,33 +14,19 @@
 <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">consumer-restriction | 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= [...]
-<link rel="preload" href="/assets/js/styles.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/1fb562de.c34a8b98.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">consumer-restriction | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/plugins/consumer-restriction"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet=" [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/consumers -H </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><span class="token plain"> -X PUT -i -d </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;</span></d [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1 -H </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><span class="token plain"> -X PUT -d </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;</span></div>< [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/services/2 -H </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><span class="token plain"> -X PUT -d </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;</span></div [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1 -H </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><span class="token plain"> -X PUT -d </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;</span></div>< [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/services/2 -H </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><span class="token plain"> -X PUT -d </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;</span></div [...]
 you can delete the corresponding json configuration in the plugin configuration,
-no need to restart the service, it will take effect immediately:</p><div class="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 function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1 -H </s [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/1fb562de.c34a8b98.js"></script>
+no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/rou [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/plugins/cors/index.html b/docs/apisix/plugins/cors/index.html
index c8b773c..6901998 100644
--- a/docs/apisix/plugins/cors/index.html
+++ b/docs/apisix/plugins/cors/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,29 +14,15 @@
 <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">cors | 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-apisi [...]
-<link rel="preload" href="/assets/js/styles.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/00ee19e9.997f2155.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">cors | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/plugins/cors"><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 [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
-When using <code>**</code>, you must fully understand that it introduces some security risks, such as CSRF, so make sure that this security level meets your expectations before using it。</p></blockquote><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="how-to-enable"></a>How To Enable<a class="hash-link" href="#how-to-enable" title="Direct link to heading">#</a></h2><p>Create a <code>Route</code> or <code>Service</code> object and configure <code>cors</code> plugin.</p><div clas [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/00ee19e9.997f2155.js"></script>
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+When using <code>**</code>, you must fully understand that it introduces some security risks, such as CSRF, so make sure that this security level meets your expectations before using it。</p></blockquote><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="how-to-enable"></a>How To Enable<a class="hash-link" href="#how-to-enable" title="Direct link to heading">#</a></h2><p>Create a <code>Route</code> or <code>Service</code> object and configure <code>cors</code> plugin.</p><div clas [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/plugins/dubbo-proxy/index.html b/docs/apisix/plugins/dubbo-proxy/index.html
index 04fa73e..ce7948d 100644
--- a/docs/apisix/plugins/dubbo-proxy/index.html
+++ b/docs/apisix/plugins/dubbo-proxy/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,34 +14,20 @@
 <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">dubbo-proxy | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/601cd3be.705d88a9.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">dubbo-proxy | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/plugins/dubbo-proxy"><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="docsea [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1  -H </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27;</span><span class="token plain"> -X PUT -d </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;</span></div> [...]
-They should provide the same result.</p><p>The returned data from upstream dubbo service must be a <code>Map&lt;String, String&gt;</code>.</p><p>If the returned data is</p><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-json codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token punctuation" style="color:rg [...]
+They should provide the same result.</p><p>The returned data from upstream dubbo service must be a <code>Map&lt;String, String&gt;</code>.</p><p>If the returned data is</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly json"><div tabindex="0" class="prism-code language-json codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token punctuation" styl [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">blahblah # &quot;body&quot; will be the body</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="disable-plugin"></a>Disable Plugin<a class="hash-link" href="#disable-plugin" title="Direct link to heading">#</a></h2><p>When you want to disable the dubbo-proxy plugin on [...]
 you can delete the corresponding json configuration in the plugin configuration,
-no need to restart the service, it will take effect immediately:</p><div class="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">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0. [...]
-you need to comment out in the <code>config.yaml</code>:</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">plugins</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></span></div><d [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/601cd3be.705d88a9.js"></script>
+no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> htt [...]
+you need to comment out in the <code>config.yaml</code>:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><div tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token key atrule">plugins</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></sp [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/plugins/echo/index.html b/docs/apisix/plugins/echo/index.html
index 33936e5..dbd687d 100644
--- a/docs/apisix/plugins/echo/index.html
+++ b/docs/apisix/plugins/echo/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,29 +14,15 @@
 <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">echo | 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-apisi [...]
-<link rel="preload" href="/assets/js/styles.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/c888429e.95c6e915.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">echo | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/plugins/echo"><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 [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
-APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</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">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127 [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/c888429e.95c6e915.js"></script>
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain" [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/plugins/error-log-logger/index.html b/docs/apisix/plugins/error-log-logger/index.html
index 1687a11..6dffa5f 100644
--- a/docs/apisix/plugins/error-log-logger/index.html
+++ b/docs/apisix/plugins/error-log-logger/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,30 +14,16 @@
 <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">error-log-logger | 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="doc [...]
-<link rel="preload" href="/assets/js/styles.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/70fb06d4.7b35c299.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">error-log-logger | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/plugins/error-log-logger"><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" na [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 <a href="/docs/apisix/batch-processor">Batch-Processor</a></p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="attributes"></a>Attributes<a class="hash-link" href="#attributes" title="Direct link to heading">#</a></h2><table><thead><tr><th>Name</th><th>Type</th><th>Requirement</th><th>Default</th><th>Valid</th><th>Description</th></tr></thead><tbody><tr><td>host</td><td>string</td><td>required</td><td></td><td></td><td>IP address or the Hostname of the TCP server.</td></tr><tr> [...]
-It does not need to be bound in any route or service.</p><p>Here is an example of <code>conf/config.yaml</code>:</p><div class="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">plugins</span><span class="token punctuation" style="color:rgb(199, 146, [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/70fb06d4.7b35c299.js"></script>
+It does not need to be bound in any route or service.</p><p>Here is an example of <code>conf/config.yaml</code>:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><div tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token key atrule">plugins</span><span class="token punctuation" style="color:rg [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/plugins/fault-injection/index.html b/docs/apisix/plugins/fault-injection/index.html
index 76e6d33..912325b 100644
--- a/docs/apisix/plugins/fault-injection/index.html
+++ b/docs/apisix/plugins/fault-injection/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,48 +14,34 @@
 <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">fault-injection | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/6d5713a9.6101fafe.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">fault-injection | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/plugins/fault-injection"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Fault Injection</span><span class="token operator" style="color:rgb(137, 221, 255)">!</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><blockquote><p>http status is 200 and the response body is &quot;Fault Injection! &quot; indicate that the plugin is enabled.</p></blockquote><p>2: Enable the <code>fault-injection</code> pl [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Fault Injection</span><span class="token operator" style="color:rgb(137, 221, 255)">!</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><blockquote><p>http status is 200 and the response body is &quot;Fault Injection! &quot; indicate that the plugin is enabled.</p></blockquote><p>2: Enable the <code>fault-injection</code> pl [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello</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">real    0m3.034s</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">user    0m0.007s</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">sys     0m0.010s</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>Example 3: Enable the <code>fault-injection</code> plu [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><ol start="2"><li>The vars rule is successfully matched and fault injection is performed:</li></ol><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLi [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Fault Injection</span><span class="token operator" style="color:rgb(137, 221, 255)">!</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>Example 4: Enable the <code>fault-injection</code> plugin for a specific route and specify the vars rule for the delay parameter.</p><div class="mdxCodeBlock_3lFL"><div class="codeBlockCo [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">real    0m3.034s</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">user    0m0.007s</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">sys     0m0.010s</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>Example 3: Enable the <code>fault-injection</code> plu [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><ol start="2"><li>The vars rule is successfully matched and fault injection is performed:</li></ol><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class= [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Fault Injection</span><span class="token operator" style="color:rgb(137, 221, 255)">!</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>Example 4: Enable the <code>fault-injection</code> plugin for a specific route and specify the vars rule for the delay parameter.</p><div class="codeBlockContainer_K1bP"><div class="codeB [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello</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">real    0m0.007s</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">user    0m0.003s</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">sys     0m0.003s</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><ol start="2"><li>The vars rule is successfully matched,  [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">real    0m0.007s</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">user    0m0.003s</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">sys     0m0.003s</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><ol start="2"><li>The vars rule is successfully matched,  [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello</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">real    0m2.009s</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">user    0m0.004s</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">sys     0m0.004s</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>Example 5: Enable the <code>fault-injection</code> plu [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">real    0m2.009s</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">user    0m0.004s</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">sys     0m0.004s</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>Example 5: Enable the <code>fault-injection</code> plu [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello</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">real    0m0.007s</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">user    0m0.003s</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">sys     0m0.003s</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><ol start="2"><li>The abort vars rule fails to match, no  [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">real    0m0.007s</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">user    0m0.003s</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">sys     0m0.003s</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><ol start="2"><li>The abort vars rule fails to match, no  [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello</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">real    0m2.009s</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">user    0m0.001s</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">sys     0m0.006s</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><ol start="3"><li>The vars rule of delay fails to match,  [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">real    0m2.009s</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">user    0m0.001s</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">sys     0m0.006s</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><ol start="3"><li>The vars rule of delay fails to match,  [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Fault Injection</span><span class="token operator" style="color:rgb(137, 221, 255)">!</span><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">real    0m0.007s</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">user    0m0.002s</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">sys     0m0.004s</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><ol start="4"><li>The vars rules of abort and delay param [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">real    0m0.007s</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">user    0m0.002s</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">sys     0m0.004s</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><ol start="4"><li>The vars rules of abort and delay param [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Fault Injection</span><span class="token operator" style="color:rgb(137, 221, 255)">!</span><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">real    0m2.006s</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">user    0m0.001s</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">sys     0m0.005s</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>Example 6: Enable the <code>fault-injection</code> plu [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Fault Injection</span><span class="token operator" style="color:rgb(137, 221, 255)">!</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><ol start="2"><li>The request header <code>apikey</code> is successfully matched, and the request parameters are missing, and fault injection is performed:</li></ol><div class="mdxCodeBlock_ [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Fault Injection</span><span class="token operator" style="color:rgb(137, 221, 255)">!</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><ol start="3"><li>Both request parameters and request headers fail to match, and fault injection is not performed:</li></ol><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"> [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="disable-plugin"></a>Disable Plugin<a class="hash-link" href="#disable-plugin" title="Direct link to heading">#</a></h2><p>Remove the corresponding JSON in the plugin configuration to disable the plugin immediate [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/6d5713a9.6101fafe.js"></script>
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">real    0m2.006s</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">user    0m0.001s</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">sys     0m0.005s</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>Example 6: Enable the <code>fault-injection</code> plu [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Fault Injection</span><span class="token operator" style="color:rgb(137, 221, 255)">!</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><ol start="2"><li>The request header <code>apikey</code> is successfully matched, and the request parameters are missing, and fault injection is performed:</li></ol><div class="codeBlockCont [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Fault Injection</span><span class="token operator" style="color:rgb(137, 221, 255)">!</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><ol start="3"><li>Both request parameters and request headers fail to match, and fault injection is not performed:</li></ol><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_ [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="disable-plugin"></a>Disable Plugin<a class="hash-link" href="#disable-plugin" title="Direct link to heading">#</a></h2><p>Remove the corresponding JSON in the plugin configuration to disable the plugin immediate [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/plugins/grpc-transcode/index.html b/docs/apisix/plugins/grpc-transcode/index.html
index 3aa68e8..5f993c7 100644
--- a/docs/apisix/plugins/grpc-transcode/index.html
+++ b/docs/apisix/plugins/grpc-transcode/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,31 +14,17 @@
 <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">grpc-transcode | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/e278666a.8d5549f8.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">grpc-transcode | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/plugins/grpc-transcode"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name=" [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token string" style="color:rgb(195, 232, 141)">&quot;message&quot;</span><span class="token builtin class-name" style="color:rgb(255, 203, 107)">:</span><span class="token string" style="color:rgb(195, 232, 141)">&quot;Hello world&quot;</span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</spa [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token string" style="color:rgb(195, 232, 141)">&quot;message&quot;</span><span class="token builtin class-name" style="color:rgb(255, 203, 107)">:</span><span class="token string" style="color:rgb(195, 232, 141)">&quot;Hello world&quot;</span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</spa [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token string" style="color:rgb(195, 232, 141)">&quot;workflowKey&quot;</span><span class="token builtin class-name" style="color:rgb(255, 203, 107)">:</span><span class="token string" style="color:rgb(195, 232, 141)">&quot;#2251799813685260&quot;</span><span class="token plain">,</span><span class="token string"  [...]
-APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="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 function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/111 [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/e278666a.8d5549f8.js"></script>
+APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admi [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/plugins/hmac-auth/index.html b/docs/apisix/plugins/hmac-auth/index.html
index d9b0917..75fe7ba 100644
--- a/docs/apisix/plugins/hmac-auth/index.html
+++ b/docs/apisix/plugins/hmac-auth/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,40 +14,26 @@
 <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">hmac-auth | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/59472992.fbaee69e.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">hmac-auth | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/plugins/hmac-auth"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch: [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/hmac-auth-1.png"></p><p>Then add the hmac-auth plugin to the consumer page:
-<img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/hmac-auth-2.png"></p><ol start="2"><li>add a Route or add a Service, and enable the <code>hmac-auth</code> plugin</li></ol><div class="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"><spa [...]
+<img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/hmac-auth-2.png"></p><ol start="2"><li>add a Route or add a Service, and enable the <code>hmac-auth</code> plugin</li></ol><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:# [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">secret </span><span class="token operator" style="color:rgb(137, 221, 255)">=</span><span class="token plain"> </span><span class="token builtin" style="color:rgb(130, 170, 255)">bytes</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;my-secret-key&#x27;</span><span class="token punctuation" style="color:rgb(19 [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token builtin" style="color:rgb(130, 170, 255)">hash</span><span class="token plain"> </span><span class="token operator" style="color:rgb(137, 221, 255)">=</span><span class="token plain"> hmac</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">new</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><spa [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># to lowercase base64</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token keyword" style="font-style:italic">print</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">base64</sp [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:rgb(247, 140, 108)">200</span><span class="token plain"> OK</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Content-Type: text/html</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"> </span><span class="token assign-left variable" style="color:rgb(191, 199, 21 [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token operator" style="color:rgb(137, 221, 255)">!</span><span class="token plain">DOCTYPE html</span><span class="token operator" style="color:rgb(137, 221, 255)">&gt;</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token op [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token operator" style="color:rgb(137, 221, 255)">!</span><span class="token plain">DOCTYPE html</span><span class="token operator" style="color:rgb(137, 221, 255)">&gt;</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token op [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"># to lowercase base64</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token keyword" style="font-style:italic">print</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">base64</sp [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:rgb(247, 140, 108)">200</span><span class="token plain"> OK</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Content-Type: text/html</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"> </span><span class="token assign-left variable" style="color:rgb(191, 199, 21 [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token operator" style="color:rgb(137, 221, 255)">!</span><span class="token plain">DOCTYPE html</span><span class="token operator" style="color:rgb(137, 221, 255)">&gt;</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token op [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token operator" style="color:rgb(137, 221, 255)">!</span><span class="token plain">DOCTYPE html</span><span class="token operator" style="color:rgb(137, 221, 255)">&gt;</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token op [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token operator" style="color:rgb(137, 221, 255)">!</span><span class="token plain">DOCTYPE html</span><span class="token operator" style="color:rgb(137, 221, 255)">&gt;</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token op [...]
 you can delete the corresponding json configuration in the plugin configuration,
-no need to restart the service, it will take effect immediately:</p><div class="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">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0. [...]
-Need to pay attention to the handling of newline characters in signature strings in various languages, which can easily lead to the problem of <code>{&quot;message&quot;:&quot;Invalid signature&quot;}</code>.</p><p>Example inputs:</p><table><thead><tr><th>Variable</th><th>Value</th></tr></thead><tbody><tr><td>secret</td><td>this is secret key</td></tr><tr><td>message</td><td>this is signature string</td></tr></tbody></table><p>Example outputs:</p><table><thead><tr><th>Type</th><th>Hash</ [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/59472992.fbaee69e.js"></script>
+no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> htt [...]
+Need to pay attention to the handling of newline characters in signature strings in various languages, which can easily lead to the problem of <code>{&quot;message&quot;:&quot;Invalid signature&quot;}</code>.</p><p>Example inputs:</p><table><thead><tr><th>Variable</th><th>Value</th></tr></thead><tbody><tr><td>secret</td><td>this is secret key</td></tr><tr><td>message</td><td>this is signature string</td></tr></tbody></table><p>Example outputs:</p><table><thead><tr><th>Type</th><th>Hash</ [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/plugins/http-logger/index.html b/docs/apisix/plugins/http-logger/index.html
index 748f07a..5ed09f4 100644
--- a/docs/apisix/plugins/http-logger/index.html
+++ b/docs/apisix/plugins/http-logger/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,29 +14,15 @@
 <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">http-logger | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/2a2f078e.5702dd48.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">http-logger | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/plugins/http-logger"><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="docsea [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
-APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</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">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127 [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/2a2f078e.5702dd48.js"></script>
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain" [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/plugins/index.html b/docs/apisix/plugins/index.html
index e41b360..998d66f 100644
--- a/docs/apisix/plugins/index.html
+++ b/docs/apisix/plugins/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,29 +14,15 @@
 <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">Plugins | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/d0f73e13.da45fea6.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Plugins | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/plugins"><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_t [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
-the its execution will be skipped.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="hot-reload-in-stand-alone-mode"></a>Hot reload in stand-alone mode<a class="hash-link" href="#hot-reload-in-stand-alone-mode" title="Direct link to heading">#</a></h3><p>For stand-alone mode, see plugin related section in <a href="/docs/apisix/stand-alone">stand alone mode</a>.</p></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/d0f73e13.da45fea6.js"></script>
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+the its execution will be skipped.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="hot-reload-in-stand-alone-mode"></a>Hot reload in stand-alone mode<a class="hash-link" href="#hot-reload-in-stand-alone-mode" title="Direct link to heading">#</a></h3><p>For stand-alone mode, see plugin related section in <a href="/docs/apisix/stand-alone">stand alone mode</a>.</p></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/plugins/ip-restriction/index.html b/docs/apisix/plugins/ip-restriction/index.html
index 94d133b..6bf91cb 100644
--- a/docs/apisix/plugins/ip-restriction/index.html
+++ b/docs/apisix/plugins/ip-restriction/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,35 +14,21 @@
 <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">ip-restriction | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/746d4aad.77a73c8c.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">ip-restriction | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/plugins/ip-restriction"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name=" [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 whitelisting or blacklisting IP addresses. Single IPs, multiple IPs or ranges
 in CIDR notation like 10.10.10.0/24 can be used.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="attributes"></a>Attributes<a class="hash-link" href="#attributes" title="Direct link to heading">#</a></h2><table><thead><tr><th>Name</th><th>Type</th><th>Requirement</th><th>Default</th><th>Valid</th><th>Description</th></tr></thead><tbody><tr><td>whitelist</td><td>array[string]</td><td>optional</td><td></td><td></td><td>List of IPs or CIDR ranges to whitelist.</td></tr><tr><td [...]
-together.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="how-to-enable"></a>How To Enable<a class="hash-link" href="#how-to-enable" title="Direct link to heading">#</a></h2><p>Creates a route or service object, and enable plugin <code>ip-restriction</code>.</p><div class="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-col [...]
+together.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="how-to-enable"></a>How To Enable<a class="hash-link" href="#how-to-enable" title="Direct link to heading">#</a></h2><p>Creates a route or service object, and enable plugin <code>ip-restriction</code>.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;ba [...]
 you can send the corresponding json configuration in the plugin configuration,
-no need to restart the service, it will take effect immediately:</p><div class="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 function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1 -H </s [...]
+no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/rou [...]
 you can delete the corresponding json configuration in the plugin configuration,
-no need to restart the service, it will take effect immediately:</p><div class="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">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0. [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/746d4aad.77a73c8c.js"></script>
+no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> htt [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/plugins/jwt-auth/index.html b/docs/apisix/plugins/jwt-auth/index.html
index d719901..43a64e9 100644
--- a/docs/apisix/plugins/jwt-auth/index.html
+++ b/docs/apisix/plugins/jwt-auth/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,37 +14,23 @@
 <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">jwt-auth | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/cf554819.e5228e79.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">jwt-auth | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/plugins/jwt-auth"><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:do [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
-You may need to use <a href="/docs/apisix/plugin-interceptors">interceptors</a> to protect it.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="how-to-enable"></a>How To Enable<a class="hash-link" href="#how-to-enable" title="Direct link to heading">#</a></h2><ol><li>set a consumer and config the value of the <code>jwt-auth</code> option</li></ol><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-shell codeBlock_23N [...]
-<img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/jwt-auth-2.png"></p><ol start="2"><li>Create a Route or Service object and enable the jwt-auth plugin:</li></ol><p><img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/jwt-auth-3.png"></p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="test-plugin"></a>Test Plugin<a class="hash-link" href="#test-plugin" title="Direct link to heading">#</a></h2><h4><a [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ1c2VyLWtleSIsImV4cCI6MTU2NDA1MDgxMX0.Us8zh_4VjJXF-TmR5f8cif8mBU7SuefPlpxhH0jbPVI</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><ul><li>with extension payload:</li></ul><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code lang [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1bmFtZSI6InRlc3QiLCJ1aWQiOjEwMDAwLCJrZXkiOiJ1c2VyLWtleSIsImV4cCI6MTYxOTA3MzgzOX0.jI9-Rpz1gc3u8Y6lZy8I43RXyCu0nSHANCvfn0YZUCY</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><h4><a aria-hidden="true" tabindex="-1" class="anchor" id="try-request-with-token"></a>try request with token<a [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token operator" style="color:rgb(137, 221, 255)">!</span><span class="token plain">DOCTYPE html</span><span class="token operator" style="color:rgb(137, 221, 255)">&gt;</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token op [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token operator" style="color:rgb(137, 221, 255)">!</span><span class="token plain">DOCTYPE html</span><span class="token operator" style="color:rgb(137, 221, 255)">&gt;</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token op [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+You may need to use <a href="/docs/apisix/plugin-interceptors">interceptors</a> to protect it.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="how-to-enable"></a>How To Enable<a class="hash-link" href="#how-to-enable" title="Direct link to heading">#</a></h2><ol><li>set a consumer and config the value of the <code>jwt-auth</code> option</li></ol><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell c [...]
+<img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/jwt-auth-2.png"></p><ol start="2"><li>Create a Route or Service object and enable the jwt-auth plugin:</li></ol><p><img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/jwt-auth-3.png"></p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="test-plugin"></a>Test Plugin<a class="hash-link" href="#test-plugin" title="Direct link to heading">#</a></h2><h4><a [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ1c2VyLWtleSIsImV4cCI6MTU2NDA1MDgxMX0.Us8zh_4VjJXF-TmR5f8cif8mBU7SuefPlpxhH0jbPVI</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><ul><li>with extension payload:</li></ul><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="pri [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1bmFtZSI6InRlc3QiLCJ1aWQiOjEwMDAwLCJrZXkiOiJ1c2VyLWtleSIsImV4cCI6MTYxOTA3MzgzOX0.jI9-Rpz1gc3u8Y6lZy8I43RXyCu0nSHANCvfn0YZUCY</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><h4><a aria-hidden="true" tabindex="-1" class="anchor" id="try-request-with-token"></a>try request with token<a [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token operator" style="color:rgb(137, 221, 255)">!</span><span class="token plain">DOCTYPE html</span><span class="token operator" style="color:rgb(137, 221, 255)">&gt;</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token op [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token operator" style="color:rgb(137, 221, 255)">!</span><span class="token plain">DOCTYPE html</span><span class="token operator" style="color:rgb(137, 221, 255)">&gt;</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token op [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token operator" style="color:rgb(137, 221, 255)">!</span><span class="token plain">DOCTYPE html</span><span class="token operator" style="color:rgb(137, 221, 255)">&gt;</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token op [...]
 you can delete the corresponding json configuration in the plugin configuration,
-no need to restart the service, it will take effect immediately:</p><div class="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">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0. [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/cf554819.e5228e79.js"></script>
+no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> htt [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/plugins/kafka-logger/index.html b/docs/apisix/plugins/kafka-logger/index.html
index b4e7347..23ff7f0 100644
--- a/docs/apisix/plugins/kafka-logger/index.html
+++ b/docs/apisix/plugins/kafka-logger/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,35 +14,21 @@
 <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">kafka-logger | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/d9418bf0.adcc4b7d.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">kafka-logger | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/plugins/kafka-logger"><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="docs [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
-<a href="/docs/apisix/batch-processor">Batch-Processor</a></p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="attributes"></a>Attributes<a class="hash-link" href="#attributes" title="Direct link to heading">#</a></h2><table><thead><tr><th>Name</th><th>Type</th><th>Requirement</th><th>Default</th><th>Valid</th><th>Description</th></tr></thead><tbody><tr><td>broker_list</td><td>object</td><td>required</td><td></td><td></td><td>An array of Kafka brokers.</td></tr><tr><td>kafka_to [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+<a href="/docs/apisix/batch-processor">Batch-Processor</a></p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="attributes"></a>Attributes<a class="hash-link" href="#attributes" title="Direct link to heading">#</a></h2><table><thead><tr><th>Name</th><th>Type</th><th>Requirement</th><th>Default</th><th>Valid</th><th>Description</th></tr></thead><tbody><tr><td>broker_list</td><td>object</td><td>required</td><td></td><td></td><td>An array of Kafka brokers.</td></tr><tr><td>kafka_to [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">abcdef</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div></li></ul><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="info"></a>Info<a class="hash-link" href="#info" title="Direct link to heading">#</a></h2><p>The <code>message</code> will write to the buffer first.
 It will send to the kafka server when the buffer exceed the <code>batch_max_size</code>,
 or every <code>buffer_duration</code> flush the buffer.</p><p>In case of success, returns <code>true</code>.
 In case of errors, returns <code>nil</code> with a string describing the error (<code>buffer overflow</code>).</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="sample-broker-list"></a>Sample broker list<a class="hash-link" href="#sample-broker-list" title="Direct link to heading">#</a></h3><p>This plugin supports to push in to more than one broker at a time. Specify the brokers of the external kafka servers as below
-sample to take effect of this functionality.</p><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-json codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class=" [...]
-APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</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">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127 [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/d9418bf0.adcc4b7d.js"></script>
+sample to take effect of this functionality.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly json"><div tabindex="0" class="prism-code language-json codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><s [...]
+APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain" [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/plugins/key-auth/index.html b/docs/apisix/plugins/key-auth/index.html
index 09554ac..2fed8be 100644
--- a/docs/apisix/plugins/key-auth/index.html
+++ b/docs/apisix/plugins/key-auth/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,33 +14,19 @@
 <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">key-auth | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/c44a0953.08ca2806.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">key-auth | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/plugins/key-auth"><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:do [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/key-auth-1.png"></p><p>Then add key-auth plugin:
-<img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/key-auth-2.png"></p><ol start="2"><li>creates a route or service object, and enable plugin <code>key-auth</code>.</li></ol><div class="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"><spa [...]
+<img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/key-auth-2.png"></p><ol start="2"><li>creates a route or service object, and enable plugin <code>key-auth</code>.</li></ol><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:# [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.2:9080/index.html -H </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;apikey: abcabcabc&#x27;</span><span class="token plain"> -i</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">HTTP/1.1 </span><span class="token number" st [...]
 you can delete the corresponding json configuration in the plugin configuration,
-no need to restart the service, it will take effect immediately:</p><div class="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">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0. [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/c44a0953.08ca2806.js"></script>
+no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> htt [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/plugins/limit-conn/index.html b/docs/apisix/plugins/limit-conn/index.html
index 49d054a..500468a 100644
--- a/docs/apisix/plugins/limit-conn/index.html
+++ b/docs/apisix/plugins/limit-conn/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,33 +14,19 @@
 <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">limit-conn | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/042f2dd8.00e6fb6a.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">limit-conn | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/plugins/limit-conn"><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="docsearc [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/limit-conn-1.png"></p><p>Then add limit-conn plugin:
-<img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/limit-conn-2.png"></p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="test-plugin"></a>Test Plugin<a class="hash-link" href="#test-plugin" title="Direct link to heading">#</a></h2><p>The parameters of the plugin enabled above indicate that only one concurrent request is allowed. When more than one concurrent request is received, will return <code>503</code> directly.</p><div class="mdxCo [...]
+<img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/limit-conn-2.png"></p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="test-plugin"></a>Test Plugin<a class="hash-link" href="#test-plugin" title="Direct link to heading">#</a></h2><p>The parameters of the plugin enabled above indicate that only one concurrent request is allowed. When more than one concurrent request is received, will return <code>503</code> directly.</p><div class="codeB [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> -i http://127.0.0.1:9080/index.html?sleep</span><span class="token operator" style="color:rgb(137, 221, 255)">=</span><span class="token number" style="color:rgb(247, 140, 108)">20</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></ [...]
 you can delete the corresponding json configuration in the plugin configuration,
-no need to restart the service, it will take effect immediately:</p><div class="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 function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1 -H </s [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/042f2dd8.00e6fb6a.js"></script>
+no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/rou [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/plugins/limit-count/index.html b/docs/apisix/plugins/limit-count/index.html
index 1565504..fe0351f 100644
--- a/docs/apisix/plugins/limit-count/index.html
+++ b/docs/apisix/plugins/limit-count/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,34 +14,20 @@
 <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">limit-count | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/b28b7341.ad440845.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">limit-count | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/plugins/limit-count"><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="docsea [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/limit-count-1.png" alt="Add a router."></p><p>Then add limit-count plugin:
-<img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/limit-count-2.png" alt="Add limit-count plugin."></p><p>If you need a cluster-level precision traffic limit, then we can do it with the redis server. The rate limit of the traffic will be shared between different APISIX nodes to limit the rate of cluster traffic.</p><p>Here is the example if we use single <code>redis</code> policy:</p><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly [...]
-which mean the total number of requests and the remaining number of requests that can be sent:</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">HTTP/1.1 </span><span class="token number" style="color:rgb(247, 140, 108)">200</span><span cl [...]
+<img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/limit-count-2.png" alt="Add limit-count plugin."></p><p>If you need a cluster-level precision traffic limit, then we can do it with the redis server. The rate limit of the traffic will be shared between different APISIX nodes to limit the rate of cluster traffic.</p><p>Here is the example if we use single <code>redis</code> policy:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockConten [...]
+which mean the total number of requests and the remaining number of requests that can be sent:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:rgb(247, 140, 108)">200</s [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token plain">html</span><span class="token operator" style="color:rgb(137, 221, 255)">&gt;</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token plain"> [...]
 you can delete the corresponding json configuration in the plugin configuration,
-no need to restart the service, it will take effect immediately:</p><div class="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 function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1 -H </s [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/b28b7341.ad440845.js"></script>
+no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/rou [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/plugins/limit-req/index.html b/docs/apisix/plugins/limit-req/index.html
index 30ce757..1a1de3c 100644
--- a/docs/apisix/plugins/limit-req/index.html
+++ b/docs/apisix/plugins/limit-req/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,31 +14,17 @@
 <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">limit-req | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/25fbf809.353e8ea1.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">limit-req | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/plugins/limit-req"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch: [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag" style="color:rgb(255, 85, 114)">html</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token tag punctuation" style="color:rgb(19 [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag" style="color:rgb(255, 85, 114)">html</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token tag punctuation" style="color:rgb(19 [...]
 you can delete the corresponding json configuration in the plugin configuration,
-no need to restart the service, it will take effect immediately:</p><div class="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 function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1 -H </s [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/25fbf809.353e8ea1.js"></script>
+no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/rou [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/plugins/log-rotate/index.html b/docs/apisix/plugins/log-rotate/index.html
index cb28dff..8ace385 100644
--- a/docs/apisix/plugins/log-rotate/index.html
+++ b/docs/apisix/plugins/log-rotate/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,32 +14,18 @@
 <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">log-rotate | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/ed20433f.55cb902d.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">log-rotate | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/plugins/log-rotate"><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="docsearc [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 When the number of log files exceeds the remaining number, the old files are automatically deleted.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="attributes"></a>Attributes<a class="hash-link" href="#attributes" title="Direct link to heading">#</a></h2><table><thead><tr><th>Name</th><th>Type</th><th>Requirement</th><th>Default</th><th>Valid</th><th>Description</th></tr></thead><tbody><tr><td>interval</td><td>integer</td><td>required</td><td>60 * 60</td><td></td><td>How of [...]
-For example, the following example is a sample based on <code>interval: 10</code> and <code>max_kept: 10</code>.</p><div class="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">$ ll logs</span></div><div class="token-line" style="color:#bfc7d5"><span cl [...]
-It does not need to be bound in any route or service.</p><p>Here is an example of <code>conf/config.yaml</code>:</p><div class="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">plugins</span><span class="token punctuation" style="color:rgb(199, 146, [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token key atrule">plugin_attr</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    </span><span class="token key atrule">log-rotate</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></span></ [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/ed20433f.55cb902d.js"></script>
+For example, the following example is a sample based on <code>interval: 10</code> and <code>max_kept: 10</code>.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ ll logs</span></div><div class="token-line" style="color:#bfc7 [...]
+It does not need to be bound in any route or service.</p><p>Here is an example of <code>conf/config.yaml</code>:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><div tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token key atrule">plugins</span><span class="token punctuation" style="color:rg [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token key atrule">plugin_attr</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    </span><span class="token key atrule">log-rotate</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></span></ [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/plugins/mqtt-proxy/index.html b/docs/apisix/plugins/mqtt-proxy/index.html
index 71f0b04..9d51cfd 100644
--- a/docs/apisix/plugins/mqtt-proxy/index.html
+++ b/docs/apisix/plugins/mqtt-proxy/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,30 +14,16 @@
 <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">mqtt-proxy | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/2f7e5bad.e6021b10.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">mqtt-proxy | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/plugins/mqtt-proxy"><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="docsearc [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 balance by <code>client_id</code> of MQTT.</p><p>And this plugin both support MQTT protocol <a href="http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html" target="_blank" rel="noopener noreferrer">3.1.*</a> and <a href="https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html" target="_blank" rel="noopener noreferrer">5.0</a>.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="attributes"></a>Attributes<a class="hash-link" href="#attributes" title="Direct link t [...]
-For example, the following configuration represents listening on the 9100 TCP port.</p><div class="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 plain">    </span><span class="token punctuation" style="color:rgb(199, 146, 234)">...</span><span class="token p [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/2f7e5bad.e6021b10.js"></script>
+For example, the following configuration represents listening on the 9100 TCP port.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><div tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(199, 146, 234)">...</span><span cla [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/plugins/node-status/index.html b/docs/apisix/plugins/node-status/index.html
index 08bf622..262015c 100644
--- a/docs/apisix/plugins/node-status/index.html
+++ b/docs/apisix/plugins/node-status/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,35 +14,21 @@
 <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">node-status | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/31fa6cf3.344a13de.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">node-status | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/plugins/node-status"><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="docsea [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 You may need to use <a href="/docs/apisix/plugin-interceptors">interceptors</a> to protect it.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="how-to-enable"></a>How To Enable<a class="hash-link" href="#how-to-enable" title="Direct link to heading">#</a></h2><ol><li>Configure <code>node-status</code> in the plugin list of the configuration file <code>conf/config.yaml</code>,
-then you can add this plugin in any route.</li></ol><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-undefined codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">plugins:                          # plugin list</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  -  [...]
-And this plugin will not make any difference in future requests, so usually we don&#x27;t set this plugin when creating routes.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="test-plugin"></a>Test Plugin<a class="hash-link" href="#test-plugin" title="Direct link to heading">#</a></h2><ol><li>Request with uri <code>/apisix/status</code></li></ol><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-sh codeBlock_23N8 t [...]
+then you can add this plugin in any route.</li></ol><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-undefined codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">plugins:                          # plugin list</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain [...]
+And this plugin will not make any difference in future requests, so usually we don&#x27;t set this plugin when creating routes.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="test-plugin"></a>Test Plugin<a class="hash-link" href="#test-plugin" title="Direct link to heading">#</a></h2><ol><li>Request with uri <code>/apisix/status</code></li></ol><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly sh"><div tabindex="0" class="prism-code language-sh codeBlo [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">{&quot;status&quot;:{&quot;total&quot;:&quot;23&quot;,&quot;waiting&quot;:&quot;0&quot;,&quot;accepted&quot;:&quot;22&quot;,&quot;writing&quot;:&quot;1&quot;,&quot;handled&quot;:&quot;22&quot;,&quot;active&quot;:&quot;1&quot;,&quot;reading&quot;:&quot;0&quot;},&quot;id&quot;:&quot;6790a064-8f61-44ba-a6d3-5df42f2b1bb3&quot;}</span></div></div></div><button type="button" aria-label="Copy code to clipboard" [...]
-then you can not add this plugin in any route.</li></ol><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-undefined codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">plugins:                          # plugin list</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"> [...]
+then you can not add this plugin in any route.</li></ol><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-undefined codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">plugins:                          # plugin list</span></div><div class="token-line" style="color:#bfc7d5"><span class="token p [...]
 you can delete the corresponding json configuration in the plugin configuration,
-no need to restart the service, it will take effect immediately.</li></ol><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-sh codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ curl http://127.0.0.1:9080/apisix/admin/routes/1 -H &#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27; -X PUT -i - [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/31fa6cf3.344a13de.js"></script>
+no need to restart the service, it will take effect immediately.</li></ol><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly sh"><div tabindex="0" class="prism-code language-sh codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ curl http://127.0.0.1:9080/apisix/admin/routes/1 -H &#x27;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#x27; -X [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/plugins/openid-connect/index.html b/docs/apisix/plugins/openid-connect/index.html
index 4e2f8d5..6eec11e 100644
--- a/docs/apisix/plugins/openid-connect/index.html
+++ b/docs/apisix/plugins/openid-connect/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,20 +14,13 @@
 <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">openid-connect | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/098c8b15.1c2acc5c.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">openid-connect | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/plugins/openid-connect"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name=" [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 In this case, requests without a token or where the token is invalid are always rejected. This requires
 <code>bearer_only</code> be set to <code>true</code> and that either an introspection endpoint has been configured through
 <code>introspection_endpoint</code>, or that a public key has been configured through <code>public_key</code>. See the relevant
@@ -45,24 +38,17 @@ will be rejected without redirecting to the ID provider to obtain a valid token.
 sending it to upstream. The headers that can be enforced are mentioned below in each relevant section.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="token-introspection"></a>Token Introspection<a class="hash-link" href="#token-introspection" title="Direct link to heading">#</a></h3><p>Token introspection helps to validate a request by verifying the token against an Oauth 2 authorization server.
 As prerequisite, you should create a trusted client in the identity server and generate a valid token(JWT) for introspection.
 The following image shows an example(successful) flow of the token introspection via the gateway.</p><p><img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/oauth-1.png" alt="token introspection"></p><p>The following is the curl command to enable the plugin to an external service.
-This route will protect <code>https://httpbin.org/get</code>(echo service) by introspecting the token provided in the header of the request.</p><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-bash codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><s [...]
+This route will protect <code>https://httpbin.org/get</code>(echo service) by introspecting the token provided in the header of the request.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly bash"><div tabindex="0" class="prism-code language-bash codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">cu [...]
 For more details, please read:</p><ol><li><a href="https://github.com/zmartzone/lua-resty-openidc" target="_blank" rel="noopener noreferrer">lua-resty-openidc</a>&#x27;s doc and source code.</li><li><code>exp</code> field in the RFC&#x27;s <a href="https://tools.ietf.org/html/rfc7662#section-2.2" target="_blank" rel="noopener noreferrer">Introspection Response</a> section.</li></ol><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="introspecting-with-public-key"></a>Introspecting [...]
 a token introspection endpoint, the public key workflow will be executed instead of verifying with the identity server.
-This method can be used if you want to reduce additional network calls and to speedup the process.</p><p>The following configurations shows how to add a public key introspection to a route.</p><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-bash codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token functio [...]
+This method can be used if you want to reduce additional network calls and to speedup the process.</p><p>The following configurations shows how to add a public key introspection to a route.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly bash"><div tabindex="0" class="prism-code language-bash codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="to [...]
 the plugin can act as an OIDC Relying Party and redirect to the authorization endpoint of the identity provider
 to go through the OIDC Authorization Code flow; see <a href="https://openid.net/specs/openid-connect-core-1_0.html#CodeFlowAuth" target="_blank" rel="noopener noreferrer">https://openid.net/specs/openid-connect-core-1_0.html#CodeFlowAuth</a>.
 Once the user has authenticated against the identity provider, the plugin will obtain and manage an access token
 and further information from the identity provider on behalf of the user. The information is currently stored
 in a session cookie that the user agent can submit on subsequent requests. The plugin will recognize the cookie
-and use the information therein to avoid having to go through the flow again.</p><p>The following command adds this mode of operation to a route.</p><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-bash codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</sp [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/098c8b15.1c2acc5c.js"></script>
+and use the information therein to avoid having to go through the flow again.</p><p>The following command adds this mode of operation to a route.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly bash"><div tabindex="0" class="prism-code language-bash codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255 [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/plugins/prometheus/index.html b/docs/apisix/plugins/prometheus/index.html
index f476bcd..388796f 100644
--- a/docs/apisix/plugins/prometheus/index.html
+++ b/docs/apisix/plugins/prometheus/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,33 +14,19 @@
 <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">prometheus | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/3ace1223.cf9f1639.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">prometheus | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/plugins/prometheus"><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="docsearc [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
-By default, the address is <code>127.0.0.1:9091</code>. You can change it in the <code>conf/config.yaml</code>, for example:</p><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-undefined codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">plugin_attr:</span></div><div class="token-line" style="colo [...]
-you may need to use <a href="/docs/apisix/plugin-interceptors">interceptors</a> to protect it.</strong></p><p>If you still want this behavior, you can configure it like this:</p><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-undefined codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">plugin_att [...]
-Notice, <code>name</code> could be duplicated for multiple routes/services, so when set <code>prefer_name</code> to <code>true</code>, take care of naming format or it could be misleading.</p><p>For example:</p><div class="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 c [...]
-these metric data.</p><p>For example like this:</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">scrape_configs</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></span></div><div [...]
-APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</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 function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1   [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/3ace1223.cf9f1639.js"></script>
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+By default, the address is <code>127.0.0.1:9091</code>. You can change it in the <code>conf/config.yaml</code>, for example:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-undefined codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">plugin_attr:</span></div><div class="token-line" style [...]
+you may need to use <a href="/docs/apisix/plugin-interceptors">interceptors</a> to protect it.</strong></p><p>If you still want this behavior, you can configure it like this:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-undefined codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">plug [...]
+Notice, <code>name</code> could be duplicated for multiple routes/services, so when set <code>prefer_name</code> to <code>true</code>, take care of naming format or it could be misleading.</p><p>For example:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc [...]
+these metric data.</p><p>For example like this:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><div tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token key atrule">scrape_configs</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></span [...]
+APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admi [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/plugins/proxy-cache/index.html b/docs/apisix/plugins/proxy-cache/index.html
index 116f473..2a012e7 100644
--- a/docs/apisix/plugins/proxy-cache/index.html
+++ b/docs/apisix/plugins/proxy-cache/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,33 +14,19 @@
 <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-cache | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/d3e633ff.818f794a.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">proxy-cache | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/plugins/proxy-cache"><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="docsea [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><blockquote><p>http status is &#x27;200&#x27; and the response header contains &#x27;Apisix-Cache-Status&#x27; to indicate that the plugin is enabled.</p></blockquote><p>2: Verify that the data is cached, request the address above again:</p><div class="mdxCodeBlock_3lFL [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>Example 2: Customize the cache_zone parameter to <code>disk_cache_two</code></p><ol><li>Specify the cache area and other information in the <code>conf/config.yaml</code> file:</li></ol><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"><div tabindex="0 [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><blockquote><p>http status is &#x27;200&#x27; and the response header contains &#x27;Apisix-Cache-Status&#x27; to indicate that the plug-in is enabled.</p></blockquote><ol start="3"><li>Verify that the data is cached and request the above address again:</li></ol><div cl [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><blockquote><p>The response header <code>Apisix-Cache-Status</code> value has changed to HIT, indicating that the data has been cached</p></blockquote><p>Example 3: Specifying cache_zone as <code>invalid_disk_cache</code> is inconsistent with the cache area <code>disk_c [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token plain">html</span><span class="token operator" style="color:rgb(137, 221, 255)">&gt;</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token plain"> [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/d3e633ff.818f794a.js"></script>
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><blockquote><p>http status is &#x27;200&#x27; and the response header contains &#x27;Apisix-Cache-Status&#x27; to indicate that the plugin is enabled.</p></blockquote><p>2: Verify that the data is cached, request the address above again:</p><div class="codeBlockContaine [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>Example 2: Customize the cache_zone parameter to <code>disk_cache_two</code></p><ol><li>Specify the cache area and other information in the <code>conf/config.yaml</code> file:</li></ol><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><div  [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><blockquote><p>http status is &#x27;200&#x27; and the response header contains &#x27;Apisix-Cache-Status&#x27; to indicate that the plug-in is enabled.</p></blockquote><ol start="3"><li>Verify that the data is cached and request the above address again:</li></ol><div cl [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><blockquote><p>The response header <code>Apisix-Cache-Status</code> value has changed to HIT, indicating that the data has been cached</p></blockquote><p>Example 3: Specifying cache_zone as <code>invalid_disk_cache</code> is inconsistent with the cache area <code>disk_c [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token plain">html</span><span class="token operator" style="color:rgb(137, 221, 255)">&gt;</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token plain"> [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/plugins/proxy-mirror/index.html b/docs/apisix/plugins/proxy-mirror/index.html
index d4101b7..a81f4fe 100644
--- a/docs/apisix/plugins/proxy-mirror/index.html
+++ b/docs/apisix/plugins/proxy-mirror/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,30 +14,16 @@
 <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-mirror | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/84a8b022.32040ebc.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">proxy-mirror | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/plugins/proxy-mirror"><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="docs [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello world</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><blockquote><p>Since the specified mirror address is 127.0.0.1:9797, so to verify whether this plugin is in effect, we need to confirm on the service with port 9797.
-For example, we can start a simple server:  python -m SimpleHTTPServer 9797</p></blockquote><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="disable-plugin"></a>Disable Plugin<a class="hash-link" href="#disable-plugin" title="Direct link to heading">#</a></h2><p>Remove the corresponding JSON in the plugin configuration to disable the plugin immediately without restarting the service:</p><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"><div tabindex="0" class="p [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/84a8b022.32040ebc.js"></script>
+For example, we can start a simple server:  python -m SimpleHTTPServer 9797</p></blockquote><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="disable-plugin"></a>Disable Plugin<a class="hash-link" href="#disable-plugin" title="Direct link to heading">#</a></h2><p>Remove the corresponding JSON in the plugin configuration to disable the plugin immediately without restarting the service:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex= [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/plugins/proxy-rewrite/index.html b/docs/apisix/plugins/proxy-rewrite/index.html
index 0a2524c..58ae44f 100644
--- a/docs/apisix/plugins/proxy-rewrite/index.html
+++ b/docs/apisix/plugins/proxy-rewrite/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,30 +14,16 @@
 <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-rewrite | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/383740fd.20e1d317.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">proxy-rewrite | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/plugins/proxy-rewrite"><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="do [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 you can delete the corresponding json configuration in the plugin configuration,
-no need to restart the service, it will take effect immediately :</p><div class="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 function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1  -H < [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/383740fd.20e1d317.js"></script>
+no need to restart the service, it will take effect immediately :</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/ro [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/plugins/redirect/index.html b/docs/apisix/plugins/redirect/index.html
index 0996add..ae2da4e 100644
--- a/docs/apisix/plugins/redirect/index.html
+++ b/docs/apisix/plugins/redirect/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,31 +14,17 @@
 <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">redirect | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/7193710f.ea510280.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">redirect | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/plugins/redirect"><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:do [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">..</span><span class="token plain">.</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>We can check the response code and the response header <code>Location</code>.</p><p>It shows that the <code>redirect</code> plugin is in effect.</p><p> Here is an e [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">..</span><span class="token plain">.</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>We can check the response code and the response header <code>Location</code>.</p><p>It shows that the <code>redirect</code> plugin is in effect.</p><p> Here is an e [...]
 you can delete the corresponding json configuration in the plugin configuration,
-no need to restart the service, it will take effect immediately :</p><div class="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 function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1  -H < [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/7193710f.ea510280.js"></script>
+no need to restart the service, it will take effect immediately :</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/ro [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/plugins/referer-restriction/index.html b/docs/apisix/plugins/referer-restriction/index.html
index b76aa12..48a4211 100644
--- a/docs/apisix/plugins/referer-restriction/index.html
+++ b/docs/apisix/plugins/referer-restriction/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,31 +14,17 @@
 <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">referer-restriction | 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=" [...]
-<link rel="preload" href="/assets/js/styles.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/3a136aea.84bb341d.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">referer-restriction | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/plugins/referer-restriction"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="tr [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
-whitelisting request header Referrers.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="attributes"></a>Attributes<a class="hash-link" href="#attributes" title="Direct link to heading">#</a></h2><table><thead><tr><th>Name</th><th>Type</th><th>Requirement</th><th>Default</th><th>Valid</th><th>Description</th></tr></thead><tbody><tr><td>whitelist</td><td>array[string]</td><td>required</td><td></td><td></td><td>List of hostname to whitelist. The hostname can be started with <co [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+whitelisting request header Referrers.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="attributes"></a>Attributes<a class="hash-link" href="#attributes" title="Direct link to heading">#</a></h2><table><thead><tr><th>Name</th><th>Type</th><th>Requirement</th><th>Default</th><th>Valid</th><th>Description</th></tr></thead><tbody><tr><td>whitelist</td><td>array[string]</td><td>required</td><td></td><td></td><td>List of hostname to whitelist. The hostname can be started with <co [...]
 you can delete the corresponding json configuration in the plugin configuration,
-no need to restart the service, it will take effect immediately:</p><div class="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">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0. [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/3a136aea.84bb341d.js"></script>
+no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> htt [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/plugins/request-id/index.html b/docs/apisix/plugins/request-id/index.html
index c3d3a95..e7064d0 100644
--- a/docs/apisix/plugins/request-id/index.html
+++ b/docs/apisix/plugins/request-id/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,30 +14,16 @@
 <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">request-id | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/63468b30.3ef9d276.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">request-id | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/plugins/request-id"><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="docsearc [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
-API request. The plugin will not add a request id if the <code>header_name</code> is already present in the request.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="attributes"></a>Attributes<a class="hash-link" href="#attributes" title="Direct link to heading">#</a></h2><table><thead><tr><th>Name</th><th>Type</th><th>Requirement</th><th>Default</th><th>Valid</th><th>Description</th></tr></thead><tbody><tr><td>header_name</td><td>string</td><td>optional</td><td>&quot;X-Requ [...]
-APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="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 function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/5 - [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/63468b30.3ef9d276.js"></script>
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+API request. The plugin will not add a request id if the <code>header_name</code> is already present in the request.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="attributes"></a>Attributes<a class="hash-link" href="#attributes" title="Direct link to heading">#</a></h2><table><thead><tr><th>Name</th><th>Type</th><th>Requirement</th><th>Default</th><th>Valid</th><th>Description</th></tr></thead><tbody><tr><td>header_name</td><td>string</td><td>optional</td><td>&quot;X-Requ [...]
+APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admi [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/plugins/request-validation/index.html b/docs/apisix/plugins/request-validation/index.html
index b543e20..e34f597 100644
--- a/docs/apisix/plugins/request-validation/index.html
+++ b/docs/apisix/plugins/request-validation/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,30 +14,16 @@
 <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">request-validation | 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="d [...]
-<link rel="preload" href="/assets/js/styles.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/645be848.092af5be.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">request-validation | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/plugins/request-validation"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
-json-schema to validate the schema. The plugin can be used to validate the headers and body data.</p><p>For more information on schema, refer to <a href="https://github.com/api7/jsonschema" target="_blank" rel="noopener noreferrer">JSON schema</a> for more information.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="attributes"></a>Attributes<a class="hash-link" href="#attributes" title="Direct link to heading">#</a></h2><table><thead><tr><th>Name</th><th>Type</th><th>Requi [...]
-APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="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 function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/5 - [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/645be848.092af5be.js"></script>
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+json-schema to validate the schema. The plugin can be used to validate the headers and body data.</p><p>For more information on schema, refer to <a href="https://github.com/api7/jsonschema" target="_blank" rel="noopener noreferrer">JSON schema</a> for more information.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="attributes"></a>Attributes<a class="hash-link" href="#attributes" title="Direct link to heading">#</a></h2><table><thead><tr><th>Name</th><th>Type</th><th>Requi [...]
+APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admi [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/plugins/response-rewrite/index.html b/docs/apisix/plugins/response-rewrite/index.html
index 5d25590..af78e9a 100644
--- a/docs/apisix/plugins/response-rewrite/index.html
+++ b/docs/apisix/plugins/response-rewrite/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,32 +14,18 @@
 <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">response-rewrite | 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="doc [...]
-<link rel="preload" href="/assets/js/styles.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/0484cea7.568579fc.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">response-rewrite | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/plugins/response-rewrite"><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" na [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">HTTP/1.1 200 OK</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Date: Sat, 16 Nov 2019 09:15:12 GMT</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Transfer-Encoding: chunked</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Connection: keep-alive</span></div><div class="token-line" style="color:#bfc [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">{&quot;code&quot;:&quot;ok&quot;,&quot;message&quot;:&quot;new json body&quot;}</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>This means that the <code>response rewrite</code> plugin is in effect.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="disable-plugin"></a>Disable Plugin<a class="hash-link" href= [...]
 you can delete the corresponding json configuration in the plugin configuration,
-no need to restart the service, it will take effect immediately:</p><div class="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 function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1  -H </ [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/0484cea7.568579fc.js"></script>
+no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/rou [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/plugins/server-info/index.html b/docs/apisix/plugins/server-info/index.html
index 7f85d9e..ef6b76e 100644
--- a/docs/apisix/plugins/server-info/index.html
+++ b/docs/apisix/plugins/server-info/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,28 +14,14 @@
 <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">server-info | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/ad461966.4267cf56.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">server-info | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/plugins/server-info"><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="docsea [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/ad461966.4267cf56.js"></script>
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/plugins/serverless/index.html b/docs/apisix/plugins/serverless/index.html
index d19c218..4846475 100644
--- a/docs/apisix/plugins/serverless/index.html
+++ b/docs/apisix/plugins/serverless/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,31 +14,17 @@
 <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">serverless | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/1741c35c.e447e333.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">serverless | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/plugins/serverless"><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="docsearc [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 which indicates that the specified function is in effect.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="disable-plugin"></a>Disable Plugin<a class="hash-link" href="#disable-plugin" title="Direct link to heading">#</a></h2><p>When you want to disable the serverless plugin, it is very simple,
 you can delete the corresponding json configuration in the plugin configuration,
-no need to restart the service, it will take effect immediately:</p><div class="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 function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1  -H </ [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/1741c35c.e447e333.js"></script>
+no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/rou [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/plugins/skywalking/index.html b/docs/apisix/plugins/skywalking/index.html
index a9cd8ac..3a8581c 100644
--- a/docs/apisix/plugins/skywalking/index.html
+++ b/docs/apisix/plugins/skywalking/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,43 +14,29 @@
 <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">skywalking | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/b5a39df0.87f08745.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">skywalking | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/plugins/skywalking"><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="docsearc [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
-The skywalking server can supports both http and grpc protocols. The APISIX client only support http protocols.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="attributes"></a>Attributes<a class="hash-link" href="#attributes" title="Direct link to heading">#</a></h2><table><thead><tr><th>Name</th><th>Type</th><th>Requirement</th><th>Default</th><th>Valid</th><th>Description</th></tr></thead><tbody><tr><td>sample_ratio</td><td>number</td><td>required</td><td>1</td><td>[0.000 [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+The skywalking server can supports both http and grpc protocols. The APISIX client only support http protocols.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="attributes"></a>Attributes<a class="hash-link" href="#attributes" title="Direct link to heading">#</a></h2><table><thead><tr><th>Name</th><th>Type</th><th>Requirement</th><th>Default</th><th>Valid</th><th>Description</th></tr></thead><tbody><tr><td>sample_ratio</td><td>number</td><td>required</td><td>1</td><td>[0.000 [...]
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/skywalking-1.png" alt=" ">\
 Then add skywalking plugin:\
-<img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/skywalking-2.png" alt=" "></p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="how-to-set-endpoint"></a>How to set endpoint<a class="hash-link" href="#how-to-set-endpoint" title="Direct link to heading">#</a></h2><p>We can set the endpoint by specified the configuration in <code>conf/config.yaml</code>.</p><table><thead><tr><th>Name</th><th>Type</th><th>Default</th><th>Description</th></t [...]
+<img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/skywalking-2.png" alt=" "></p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="how-to-set-endpoint"></a>How to set endpoint<a class="hash-link" href="#how-to-set-endpoint" title="Direct link to heading">#</a></h2><p>We can set the endpoint by specified the configuration in <code>conf/config.yaml</code>.</p><table><thead><tr><th>Name</th><th>Type</th><th>Default</th><th>Description</th></t [...]
 You can open dashboard with a browser: <a href="http://10.110.149.175:8080" target="_blank" rel="noopener noreferrer">http://10.110.149.175:8080</a>. It will be a successful install as follow:
-<img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/skywalking-3.png" alt=" "></p></li></ol></li><li><p>Test:</p><ul><li><p>Access to upstream services through access apisix:</p><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-bash codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><s [...]
+<img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/skywalking-3.png" alt=" "></p></li></ol></li><li><p>Test:</p><ul><li><p>Access to upstream services through access apisix:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly bash"><div tabindex="0" class="prism-code language-bash codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color: [...]
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/skywalking-4.png" alt=" ">\
 You can also see the tracer of all service\
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/skywalking-5.png" alt=" "></p></li></ul></li></ol><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="disable-plugin"></a>Disable Plugin<a class="hash-link" href="#disable-plugin" title="Direct link to heading">#</a></h2><p>When you want to disable the skyWalking plugin on a route/service, it is very simple,
 you can delete the corresponding json configuration in the plugin configuration,
-no need to restart the service, it will take effect immediately:</p><div class="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">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0. [...]
-you need to comment out in the <code>config.yaml</code>:</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">plugins</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></span></div><d [...]
+no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> htt [...]
+you need to comment out in the <code>config.yaml</code>:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly yaml"><div tabindex="0" class="prism-code language-yaml codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token key atrule">plugins</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></sp [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token keyword" style="font-style:italic">import</span><span class="token plain"> </span><span class="token namespace" style="color:rgb(178, 204, 214)">org</span><span class="token namespace punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token namespace" style="color:rgb(178, 204, 214)">springframework</span><span class="token namespace punctuation" style="color:rgb [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic">/**</span></div><div class="token-line" style="color:#bfc7d5"><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"> * @author cyxinda</span></div><div class="token-line" style="color:#bfc7d5"><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic"> * @create 2020-05-29 14 [...]
-update the file of agent/config/agent.config</p><div class="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">agent.service_name</span><span class="token operator" style="color:rgb(137, 221, 255)">=</span><span class="token plain">yourservername</span></ [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/b5a39df0.87f08745.js"></script>
+update the file of agent/config/agent.config</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">agent.service_name</span><span class="token operator" style="color:rgb(137, 221, 255)">=</span><span class="token plain">yourservern [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/plugins/sls-logger/index.html b/docs/apisix/plugins/sls-logger/index.html
index 8e50977..9cf4dd7 100644
--- a/docs/apisix/plugins/sls-logger/index.html
+++ b/docs/apisix/plugins/sls-logger/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,31 +14,17 @@
 <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">sls-logger | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/0654f374.1bfe693c.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">sls-logger | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/plugins/sls-logger"><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="docsearc [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
-<a href="/docs/apisix/batch-processor">Batch-Processor</a></p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="attributes"></a>Attributes<a class="hash-link" href="#attributes" title="Direct link to heading">#</a></h2><table><thead><tr><th>Name</th><th>Requirement</th><th>Description</th></tr></thead><tbody><tr><td>host</td><td>required</td><td>IP address or the Hostname of the TCP server, please reference ali cloud log <a href="https://help.aliyun.com/document_detail/29008.htm [...]
-</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="test-plugin"></a>Test Plugin<a class="hash-link" href="#test-plugin" title="Direct link to heading">#</a></h2><ul><li>success:</li></ul><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeB [...]
-APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</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">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127 [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/0654f374.1bfe693c.js"></script>
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+<a href="/docs/apisix/batch-processor">Batch-Processor</a></p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="attributes"></a>Attributes<a class="hash-link" href="#attributes" title="Direct link to heading">#</a></h2><table><thead><tr><th>Name</th><th>Requirement</th><th>Description</th></tr></thead><tbody><tr><td>host</td><td>required</td><td>IP address or the Hostname of the TCP server, please reference ali cloud log <a href="https://help.aliyun.com/document_detail/29008.htm [...]
+</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="test-plugin"></a>Test Plugin<a class="hash-link" href="#test-plugin" title="Direct link to heading">#</a></h2><ul><li>success:</li></ul><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div  [...]
+APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain" [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/plugins/syslog/index.html b/docs/apisix/plugins/syslog/index.html
index 217dc31..9270841 100644
--- a/docs/apisix/plugins/syslog/index.html
+++ b/docs/apisix/plugins/syslog/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,29 +14,15 @@
 <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">syslog | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/e7ebab94.ecae67f7.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">syslog | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/plugins/syslog"><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/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
-APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</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">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127 [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/e7ebab94.ecae67f7.js"></script>
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain" [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/plugins/tcp-logger/index.html b/docs/apisix/plugins/tcp-logger/index.html
index eb917ab..4f509d1 100644
--- a/docs/apisix/plugins/tcp-logger/index.html
+++ b/docs/apisix/plugins/tcp-logger/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,30 +14,16 @@
 <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">tcp-logger | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/b436937a.95a41d13.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">tcp-logger | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/plugins/tcp-logger"><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="docsearc [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
-<a href="/docs/apisix/batch-processor">Batch-Processor</a></p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="attributes"></a>Attributes<a class="hash-link" href="#attributes" title="Direct link to heading">#</a></h2><table><thead><tr><th>Name</th><th>Type</th><th>Requirement</th><th>Default</th><th>Valid</th><th>Description</th></tr></thead><tbody><tr><td>host</td><td>string</td><td>required</td><td></td><td></td><td>IP address or the Hostname of the TCP server.</td></tr><tr> [...]
-APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</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">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127 [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/b436937a.95a41d13.js"></script>
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+<a href="/docs/apisix/batch-processor">Batch-Processor</a></p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="attributes"></a>Attributes<a class="hash-link" href="#attributes" title="Direct link to heading">#</a></h2><table><thead><tr><th>Name</th><th>Type</th><th>Requirement</th><th>Default</th><th>Valid</th><th>Description</th></tr></thead><tbody><tr><td>host</td><td>string</td><td>required</td><td></td><td></td><td>IP address or the Hostname of the TCP server.</td></tr><tr> [...]
+APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain" [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/plugins/traffic-split/index.html b/docs/apisix/plugins/traffic-split/index.html
index f2bc6c8..7264037 100644
--- a/docs/apisix/plugins/traffic-split/index.html
+++ b/docs/apisix/plugins/traffic-split/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,42 +14,28 @@
 <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">traffic-split | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/4842b438.e2c730d5.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">traffic-split | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/plugins/traffic-split"><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="do [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
-service_name, discovery_type, checks, retries, desc, scheme, labels, create_time and update_time. But you can use <code>weighted_upstreams.upstream_id</code> to bind the <code>upstream</code> object to achieve their functions.</p><p>The traffic-split plugin is mainly composed of two parts: <code>match</code> and <code>weighted_upstreams</code>. <code>match</code> is a custom conditional rule, and <code>weighted_upstreams</code> is upstream configuration information. If you configure <cod [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+service_name, discovery_type, checks, retries, desc, scheme, labels, create_time and update_time. But you can use <code>weighted_upstreams.upstream_id</code> to bind the <code>upstream</code> object to achieve their functions.</p><p>The traffic-split plugin is mainly composed of two parts: <code>match</code> and <code>weighted_upstreams</code>. <code>match</code> is a custom conditional rule, and <code>weighted_upstreams</code> is upstream configuration information. If you configure <cod [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello </span><span class="token number" style="color:rgb(247, 140, 108)">1980</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"> http://127.0.0.1:9080/index.html -i</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:rgb(247, 140, 108)">200</span><span class="token plain"> OK</span></div><div class="token-line" style="color:#bfc7d5"><spa [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">world </span><span class="token number" style="color:rgb(247, 140, 108)">1981</span><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 punctuation" style="color:rgb(199, 146, 234)">..</span><span class="token punctuation" style="color:rgb(199, 146, 234)">..</span><span class="token punctuation" style="color:rgb(199, 146, 234)">..</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 [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">world </span><span class="token number" style="color:rgb(247, 140, 108)">1981</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>The <code>match</code> rule fails to match, and all requests hit the 1980 port upstream configured on the <code>route</code>:</p><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"> [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello </span><span class="token number" style="color:rgb(247, 140, 108)">1980</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="custom-release"></a>Custom Release<a class="hash-link" href="#custom-release" title="Direct link to heading">#</a></h3><p>Multiple <code>va [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">world </span><span class="token number" style="color:rgb(247, 140, 108)">1981</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>The match rule fails to verify, and it hits the upstream of the default port of <code>1980</code>.</p><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"><div tabindex="0" class="pr [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello </span><span class="token number" style="color:rgb(247, 140, 108)">1980</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>After 5 requests, the service of port <code>1981</code> was hit 3 times, and the service of port <code>1980</code> was hit 2 times.</p><p><strong>Example 2: Configure multiple <code>vars</code> r [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">world </span><span class="token number" style="color:rgb(247, 140, 108)">1981</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello </span><span class="token number" style="color:rgb(247, 140, 108)">1980</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>After 5 requests, the service of port <code>1981</code> was hit 3 times, and the service of port <code>1980</code> was hit 2 times.</p><blockquote><ol start="2"><li>The second expression of <code [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">world </span><span class="token number" style="color:rgb(247, 140, 108)">1981</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello </span><span class="token number" style="color:rgb(247, 140, 108)">1980</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>After 5 requests, the service of port <code>1981</code> was hit 3 times, and the service of port <code>1980</code> was hit 2 times.</p><blockquote><ol start="3"><li>The expression verification of [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello </span><span class="token number" style="color:rgb(247, 140, 108)">1980</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="matching-rules-correspond-to-upstream"></a>Matching rules correspond to upstream<a class="hash-link" href="#matching-rules-correspond-to-up [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/4842b438.e2c730d5.js"></script>
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">..</span><span class="token punctuation" style="color:rgb(199, 146, 234)">..</span><span class="token punctuation" style="color:rgb(199, 146, 234)">..</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 [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">world </span><span class="token number" style="color:rgb(247, 140, 108)">1981</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>The <code>match</code> rule fails to match, and all requests hit the 1980 port upstream configured on the <code>route</code>:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_ [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello </span><span class="token number" style="color:rgb(247, 140, 108)">1980</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="custom-release"></a>Custom Release<a class="hash-link" href="#custom-release" title="Direct link to heading">#</a></h3><p>Multiple <code>va [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">world </span><span class="token number" style="color:rgb(247, 140, 108)">1981</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>The match rule fails to verify, and it hits the upstream of the default port of <code>1980</code>.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex=" [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello </span><span class="token number" style="color:rgb(247, 140, 108)">1980</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>After 5 requests, the service of port <code>1981</code> was hit 3 times, and the service of port <code>1980</code> was hit 2 times.</p><p><strong>Example 2: Configure multiple <code>vars</code> r [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">world </span><span class="token number" style="color:rgb(247, 140, 108)">1981</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello </span><span class="token number" style="color:rgb(247, 140, 108)">1980</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>After 5 requests, the service of port <code>1981</code> was hit 3 times, and the service of port <code>1980</code> was hit 2 times.</p><blockquote><ol start="2"><li>The second expression of <code [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">world </span><span class="token number" style="color:rgb(247, 140, 108)">1981</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello </span><span class="token number" style="color:rgb(247, 140, 108)">1980</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><p>After 5 requests, the service of port <code>1981</code> was hit 3 times, and the service of port <code>1980</code> was hit 2 times.</p><blockquote><ol start="3"><li>The expression verification of [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">hello </span><span class="token number" style="color:rgb(247, 140, 108)">1980</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><h3><a aria-hidden="true" tabindex="-1" class="anchor" id="matching-rules-correspond-to-upstream"></a>Matching rules correspond to upstream<a class="hash-link" href="#matching-rules-correspond-to-up [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/plugins/udp-logger/index.html b/docs/apisix/plugins/udp-logger/index.html
index 05fc9b1..56ff6b8 100644
--- a/docs/apisix/plugins/udp-logger/index.html
+++ b/docs/apisix/plugins/udp-logger/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,30 +14,16 @@
 <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">udp-logger | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/84ebf226.98b23c2d.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">udp-logger | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/plugins/udp-logger"><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="docsearc [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
-<a href="/docs/apisix/batch-processor">Batch-Processor</a></p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="attributes"></a>Attributes<a class="hash-link" href="#attributes" title="Direct link to heading">#</a></h2><table><thead><tr><th>Name</th><th>Type</th><th>Requirement</th><th>Default</th><th>Valid</th><th>Description</th></tr></thead><tbody><tr><td>host</td><td>string</td><td>required</td><td></td><td></td><td>IP address or the Hostname of the UDP server.</td></tr><tr> [...]
-APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</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">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127 [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/84ebf226.98b23c2d.js"></script>
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+<a href="/docs/apisix/batch-processor">Batch-Processor</a></p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="attributes"></a>Attributes<a class="hash-link" href="#attributes" title="Direct link to heading">#</a></h2><table><thead><tr><th>Name</th><th>Type</th><th>Requirement</th><th>Default</th><th>Valid</th><th>Description</th></tr></thead><tbody><tr><td>host</td><td>string</td><td>required</td><td></td><td></td><td>IP address or the Hostname of the UDP server.</td></tr><tr> [...]
+APISIX plugins are hot-reloaded, therefore no need to restart APISIX.</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain" [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/plugins/uri-blocker/index.html b/docs/apisix/plugins/uri-blocker/index.html
index 93ce4bd..6cc190c 100644
--- a/docs/apisix/plugins/uri-blocker/index.html
+++ b/docs/apisix/plugins/uri-blocker/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,29 +14,15 @@
 <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">uri-blocker | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/17d3fec9.ec0ba0c8.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">uri-blocker | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/plugins/uri-blocker"><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="docsea [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">..</span><span class="token plain">. </span><span class="token punctuation" style="color:rgb(199, 146, 234)">..</span><span class="token plain">.</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><h2><a aria-hidden="true" tabindex="-1" class="anchor" id= [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/17d3fec9.ec0ba0c8.js"></script>
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">..</span><span class="token plain">. </span><span class="token punctuation" style="color:rgb(199, 146, 234)">..</span><span class="token plain">.</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><h2><a aria-hidden="true" tabindex="-1" class="anchor" id= [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/plugins/wolf-rbac/index.html b/docs/apisix/plugins/wolf-rbac/index.html
index 72d2823..97a5b03 100644
--- a/docs/apisix/plugins/wolf-rbac/index.html
+++ b/docs/apisix/plugins/wolf-rbac/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,50 +14,36 @@
 <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">wolf-rbac | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/6e5db0c1.967ba44a.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">wolf-rbac | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/plugins/wolf-rbac"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch: [...]
+<link rel="preload" href="/assets/js/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
-The rbac feature is provided by <a href="https://github.com/iGeeky/wolf" target="_blank" rel="noopener noreferrer">wolf</a>. For more information about <code>wolf</code>, please refer to <a href="https://github.com/iGeeky/wolf" target="_blank" rel="noopener noreferrer">wolf documentation</a>.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="attributes"></a>Attributes<a class="hash-link" href="#attributes" title="Direct link to heading">#</a></h2><table><thead><tr><th>Name</t [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
+The rbac feature is provided by <a href="https://github.com/iGeeky/wolf" target="_blank" rel="noopener noreferrer">wolf</a>. For more information about <code>wolf</code>, please refer to <a href="https://github.com/iGeeky/wolf" target="_blank" rel="noopener noreferrer">wolf documentation</a>.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="attributes"></a>Attributes<a class="hash-link" href="#attributes" title="Direct link to heading">#</a></h2><table><thead><tr><th>Name</t [...]
 <img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/wolf-rbac-1.png"></p><p>Then add the wolf-rbac plugin to the consumer page:
-<img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/wolf-rbac-2.png"></p><p>Notes: The <code>appid</code> filled in above needs to already exist in the wolf system.</p><ol><li>Add a <code>Route</code> or <code>Service</code> and enable the wolf-rbac plugin.</li></ol><div class="mdxCodeBlock_3lFL"><div class="codeBlockContent_hGly"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:rgb(247, 140, 108)">200</span><span class="token plain"> OK</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Date: Wed, </span><span class="token number" style="color:rgb(247, 140, 108)">24</span><span class="token plain"> Jul </span><span class="token number" style="color:rgb(247, 140, 108)">2019</span><span class [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:rgb(247, 140, 108)">401</span><span class="token plain"> Unauthorized</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"></sp [...]
+<img src="https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/plugin/wolf-rbac-2.png"></p><p>Notes: The <code>appid</code> filled in above needs to already exist in the wolf system.</p><ol><li>Add a <code>Route</code> or <code>Service</code> and enable the wolf-rbac plugin.</li></ol><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:rgb(247, 140, 108)">200</span><span class="token plain"> OK</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Date: Wed, </span><span class="token number" style="color:rgb(247, 140, 108)">24</span><span class="token plain"> Jul </span><span class="token number" style="color:rgb(247, 140, 108)">2019</span><span class [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:rgb(247, 140, 108)">401</span><span class="token plain"> Unauthorized</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"></sp [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:rgb(247, 140, 108)">200</span><span class="token plain"> OK</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token operator" style="color:rgb(137, 221, 255)">!</span><span class="token plain">DOCTYPE html</span><span class="token operator" style="color:rgb(137, 221, 255)">&gt;</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><ul><li>reques [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token operator" style="color:rgb(137, 221, 255)">!</span><span class="token plain">DOCTYPE html</span><span class="token operator" style="color:rgb(137, 221, 255)">&gt;</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><ul><li>reques [...]
 </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">HTTP/1.1 </span><span class="token number" style="color:rgb(247, 140, 108)">200</span><span class="token plain"> OK</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token operator" style="color:rgb(137, 221, 255)">!</span><span class="token plain">DOCTYPE html</span><span class="token operator" style="color:rgb(137, 221, 255)">&gt;</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><ul><li>reques [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token operator" style="color:rgb(137, 221, 255)">!</span><span class="token plain">DOCTYPE html</span><span class="token operator" style="color:rgb(137, 221, 255)">&gt;</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><ul><li>reques [...]
 </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">HTTP/1.1 </span><span class="token number" style="color:rgb(247, 140, 108)">200</span><span class="token plain"> OK</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token operator" style="color:rgb(137, 221, 255)">!</span><span class="token plain">DOCTYPE html</span><span class="token operator" style="color:rgb(137, 221, 255)">&gt;</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><ul><li>reques [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token operator" style="color:rgb(137, 221, 255)">!</span><span class="token plain">DOCTYPE html</span><span class="token operator" style="color:rgb(137, 221, 255)">&gt;</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><ul><li>reques [...]
 </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">HTTP/1.1 </span><span class="token number" style="color:rgb(247, 140, 108)">200</span><span class="token plain"> OK</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token operator" style="color:rgb(137, 221, 255)">!</span><span class="token plain">DOCTYPE html</span><span class="token operator" style="color:rgb(137, 221, 255)">&gt;</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><h4><a aria-hi [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token operator" style="color:rgb(137, 221, 255)">&lt;</span><span class="token operator" style="color:rgb(137, 221, 255)">!</span><span class="token plain">DOCTYPE html</span><span class="token operator" style="color:rgb(137, 221, 255)">&gt;</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div><h4><a aria-hi [...]
 </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">HTTP/1.1 </span><span class="token number" style="color:rgb(247, 140, 108)">200</span><span class="token plain"> OK</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    </span><span [...]
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">HTTP/1.1 </span><span class="token number" style="color:rgb(247, 140, 108)">200</span><span class="token plain"> OK</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    </span><span [...]
 </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">HTTP/1.1 </span><span class="token number" style="color:rgb(247, 140, 108)">200</span><span class="token plain"> OK</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token string" style="color:rgb(195, 232, 141)">&quot;message&quot;</span><span class="token builtin class-name" st [...]
 you can delete the corresponding json configuration in the plugin configuration,
-no need to restart the service, it will take effect immediately:</p><div class="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 function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/routes/1  -H </ [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/6e5db0c1.967ba44a.js"></script>
+no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0.1:9080/apisix/admin/rou [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/apisix/plugins/zipkin/index.html b/docs/apisix/plugins/zipkin/index.html
index 5727b38..54402a6 100644
--- a/docs/apisix/plugins/zipkin/index.html
+++ b/docs/apisix/plugins/zipkin/index.html
@@ -1,9 +1,9 @@
 <!doctype html>
-<html lang="en">
+<html lang="en" dir="ltr">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
-<meta name="generator" content="Docusaurus v2.0.0-alpha.fd17476c3">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.75">
 <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">
@@ -14,36 +14,22 @@
 <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">Zipkin | 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.915eeed2.js" as="script">
-<link rel="preload" href="/assets/js/runtime~main.c0371017.js" as="script">
-<link rel="preload" href="/assets/js/main.690fe4bb.js" as="script">
-<link rel="preload" href="/assets/js/1.8ab37bf2.js" as="script">
-<link rel="preload" href="/assets/js/2.f6d304f2.js" as="script">
-<link rel="preload" href="/assets/js/1be78505.29634db6.js" as="script">
-<link rel="preload" href="/assets/js/d73fca9b.6c49c622.js" as="script">
-<link rel="preload" href="/assets/js/17896441.00051d18.js" as="script">
-<link rel="preload" href="/assets/js/ab6cb272.040e9836.js" as="script">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"><title data-react-helmet="true">Zipkin | Apache APISIX™</title><meta data-react-helmet="true" property="og:url" content="https://apisix.apache.org//docs/apisix/plugins/zipkin"><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/runtime~main.9e570764.js" as="script">
+<link rel="preload" href="/assets/js/main.b9a04668.js" as="script">
 </head>
 <body>
 <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,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 navbarHideable_2qcr navbarHidden_3yey"><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="current [...]
+<div><a href="#main" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_2qcr"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle" type="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M [...]
 you can delete the corresponding json configuration in the plugin configuration,
-no need to restart the service, it will take effect immediately:</p><div class="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">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> http://127.0.0. [...]
+no need to restart the service, it will take effect immediately:</p><div class="codeBlockContainer_K1bP"><div class="codeBlockContent_hGly shell"><div tabindex="0" class="prism-code language-shell codeBlock_23N8 thin-scrollbar"><div class="codeBlockLines_39YC" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ </span><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> htt [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    thisip, _ := GetLocalIP()</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">    host := fmt.Sprintf(&quot;%s:%d&quot;, thisip, port)</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    endpoint, _ := zipkin.NewEndpoint(serviceName, host)</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    // set-up our sampling strategy</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    s [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">func main(){</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    r := gin.Default()</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">    tracer := GetTracer(...)</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    // use middleware to extract parentID from http header that injected by APISIX</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    r.Use(func(c *gin.Context) {</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">        span := this.Tracer.Extract(b3.ExtractHTTP(c.Request))</span></div><div class="token-line" style="color:#bfc7d5"><s [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">}</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/plugins/zipkin.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAsp [...]
-<script src="/assets/js/styles.915eeed2.js"></script>
-<script src="/assets/js/runtime~main.c0371017.js"></script>
-<script src="/assets/js/main.690fe4bb.js"></script>
-<script src="/assets/js/1.8ab37bf2.js"></script>
-<script src="/assets/js/2.f6d304f2.js"></script>
-<script src="/assets/js/1be78505.29634db6.js"></script>
-<script src="/assets/js/d73fca9b.6c49c622.js"></script>
-<script src="/assets/js/17896441.00051d18.js"></script>
-<script src="/assets/js/ab6cb272.040e9836.js"></script>
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">}</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_Ue-o">Copy</button></div></div></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix/edit/master/docs/en/latest/plugins/zipkin.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAsp [...]
+<script src="/assets/js/runtime~main.9e570764.js"></script>
+<script src="/assets/js/main.b9a04668.js"></script>
 </body>
... 16662 lines suppressed ...