You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@apisix.apache.org by gi...@apache.org on 2021/02/08 10:16:05 UTC

[apisix-website] branch asf-site updated: deploy: 8eae2d9ffa78f7e644cb5c245d2fa8bbf123f9cb

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 c5419a4  deploy: 8eae2d9ffa78f7e644cb5c245d2fa8bbf123f9cb
c5419a4 is described below

commit c5419a41641c8a8a7db4ac1cb1bcda865777437f
Author: juzhiyuan <ju...@users.noreply.github.com>
AuthorDate: Mon Feb 8 10:15:55 2021 +0000

    deploy: 8eae2d9ffa78f7e644cb5c245d2fa8bbf123f9cb
---
 0b71e11c.a0c47693.js                               |  1 +
 0b71e11c.dc027663.js                               |  1 -
 1.c35d2c6d.js                                      |  1 +
 17896441.5f37a45d.js                               |  1 -
 17896441.a4d7c2ff.js                               |  1 +
 1c89ab3b.79ecc6c6.js                               |  1 -
 1c89ab3b.da3f678d.js                               |  1 +
 1dba9094.931ac078.js => 1dba9094.5a8a453a.js       |  2 +-
 2.54f5630c.js => 2.a27a3490.js                     |  4 +-
 ...30c.js.LICENSE.txt => 2.a27a3490.js.LICENSE.txt |  0
 2275ea3b.347e70b8.js                               |  1 -
 2275ea3b.56b9f8c9.js                               |  1 +
 29.64851b6d.js                                     |  1 -
 2d8fe9ee.30394a0b.js                               |  1 -
 2d8fe9ee.93b6439b.js                               |  1 +
 2da51850.2a146107.js                               |  1 +
 2da51850.51e1ace6.js                               |  1 -
 2fa/index.html                                     | 42 ++++++++---------
 3.278c6dda.js                                      |  1 +
 30.163c5ee4.js                                     |  1 -
 31.c3e6fc2a.js                                     |  1 -
 28.556d035e.js => 33.04527ba4.js                   |  4 +-
 ...5e.js.LICENSE.txt => 33.04527ba4.js.LICENSE.txt |  0
 33.d4f803a5.js                                     |  1 -
 34.4500fb77.js                                     |  1 +
 32.88b4984f.js => 35.5326e96e.js                   |  2 +-
 36.b72da796.js                                     |  1 +
 34.f92ba19b.js => 37.b77cb21b.js                   |  2 +-
 37e3b3ea.10fab840.js                               |  1 +
 37e3b3ea.f669081a.js                               |  1 -
 404.html                                           | 32 ++++++-------
 47e0bf55.464b2b52.js                               |  1 +
 514de2af.539501a7.js                               |  1 -
 514de2af.c71b6f56.js                               |  1 +
 5bb67ffc.2fa3b45c.js                               |  1 -
 5bb67ffc.da9c8f37.js                               |  1 +
 638581dc.84292407.js                               |  1 -
 638581dc.b9d02b31.js                               |  1 +
 749ed826.1f01f50a.js                               |  1 +
 749ed826.914caae4.js                               |  1 -
 7e37206e.1dcb01fa.js => 7e37206e.349c8511.js       |  2 +-
 812d7c14.1601244b.js                               |  1 -
 812d7c14.eb81701f.js                               |  1 +
 935f2afb.578e6540.js => 935f2afb.cf4d5fdd.js       |  2 +-
 a4a2cefa.03eff292.js                               |  1 -
 a4a2cefa.1c9bfc96.js                               |  1 +
 a6641250.7c404dbb.js                               |  1 -
 a6641250.f9de2796.js                               |  1 +
 a6aa9e1f.34ce0e2d.js                               |  1 +
 b2b675dd.42a652db.js                               |  1 -
 b2b675dd.a0165438.js                               |  1 +
 blog/2020/08/22/new-website/index.html             | 36 ++++++++-------
 .../index.html                                     | 36 ++++++++-------
 .../index.html                                     | 36 ++++++++-------
 .../21/run-ingress-apisix-on-amazon-eks/index.html | 38 +++++++--------
 .../index.html                                     | 34 ++++++++++++++
 blog/atom.xml                                      |  9 +++-
 blog/index.html                                    | 54 ++++++++++++----------
 blog/rss.xml                                       |  9 +++-
 c4f5d8e4.d23d83fd.js => c4f5d8e4.7343a23e.js       |  2 +-
 ccc49370.45b5b4a2.js                               |  1 +
 committer-guide/index.html                         | 42 ++++++++---------
 common.2d967526.js                                 |  1 -
 contributor-guide/index.html                       | 42 ++++++++---------
 dcd70f61.42403978.js                               |  1 -
 dcd70f61.57ede241.js                               |  1 +
 docs/index.html                                    | 42 ++++++++---------
 downloads/index.html                               | 42 ++++++++---------
 e02da2c5.0f2eca6c.js                               |  1 -
 e02da2c5.fd8e2260.js                               |  1 +
 e451ae2c.d86c7846.js                               |  1 +
 f9e23376.7272dd5a.js                               |  1 -
 f9e23376.7d1336b7.js                               |  1 +
 fdbbc319.2145785f.js                               |  1 -
 fdbbc319.f9c339c1.js                               |  1 +
 help/index.html                                    | 24 +++++-----
 index.html                                         | 24 +++++-----
 main.c672b8f9.js                                   |  2 -
 main.cb4a05c3.js                                   |  2 +
 ....js.LICENSE.txt => main.cb4a05c3.js.LICENSE.txt |  0
 release-guide/index.html                           | 42 ++++++++---------
 runtime~main.4ef57bf5.js                           |  1 +
 runtime~main.56f460b8.js                           |  1 -
 search/index.html                                  | 24 +++++-----
 security/index.html                                | 42 ++++++++---------
 sitemap.xml                                        |  2 +-
 styles.741c9ebc.js                                 |  1 +
 styles.992e9cec.js                                 |  1 -
 team/index.html                                    | 42 ++++++++---------
 users/index.html                                   | 24 +++++-----
 90 files changed, 430 insertions(+), 367 deletions(-)

diff --git a/0b71e11c.a0c47693.js b/0b71e11c.a0c47693.js
new file mode 100644
index 0000000..cf8297d
--- /dev/null
+++ b/0b71e11c.a0c47693.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[4],{106:function(e,t,n){"use strict";n.d(t,"a",(function(){return p})),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/0b71e11c.dc027663.js b/0b71e11c.dc027663.js
deleted file mode 100644
index 11462ea..0000000
--- a/0b71e11c.dc027663.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{72:function(e,t,o){"use strict";o.r(t),o.d(t,"frontMatter",(function(){return r})),o.d(t,"metadata",(function(){return s})),o.d(t,"toc",(function(){return c})),o.d(t,"default",(function(){return d}));var n=o(3),a=o(7),i=(o(0),o(106)),r={id:"2fa",title:"2FA"},s={unversionedId:"2fa",id:"2fa",isDocsHomePage:!1,title:"2FA",description:"Two-factor authentication(2FA)",source:"@site/docs/2fa.md",slug:"/2fa",permalink:"/2fa",editUrl:"http [...]
\ No newline at end of file
diff --git a/1.c35d2c6d.js b/1.c35d2c6d.js
new file mode 100644
index 0000000..e758b58
--- /dev/null
+++ b/1.c35d2c6d.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{107:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(130);Object.defineProperty(t,"useThemeConfig",{enumerable:!0,get:function(){return r.useThemeConfig}});var o=n(153);Object.defineProperty(t,"docVersionSearchTag",{enumerable:!0,get:function(){return o.docVersionSearchTag}}),Object.defineProperty(t,"DEFAULT_SEARCH_TAG",{enumerable:!0,get:function(){return o.DEFAULT_SEARCH_TAG}});var i=n(131);Ob [...]
\ No newline at end of file
diff --git a/17896441.5f37a45d.js b/17896441.5f37a45d.js
deleted file mode 100644
index 58a3e30..0000000
--- a/17896441.5f37a45d.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[4],{122:function(e,t,a){"use strict";var n=a(3),l=a(7),r=a(0),c=a.n(r),i=a(105),o=a(60),m=a.n(o);t.a=function(e){var t=e.className,a=Object(l.a)(e,["className"]);return c.a.createElement("svg",Object(n.a)({fill:"currentColor",height:"1.2em",width:"1.2em",preserveAspectRatio:"xMidYMid meet",role:"img",viewBox:"0 0 40 40",className:Object(i.a)(m.a.iconEdit,t)},a),c.a.createElement("g",null,c.a.createElement("path",{d:"m34.5 11.7l-3 3.1-6 [...]
\ No newline at end of file
diff --git a/17896441.a4d7c2ff.js b/17896441.a4d7c2ff.js
new file mode 100644
index 0000000..a0ed409
--- /dev/null
+++ b/17896441.a4d7c2ff.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[5],{101:function(e,t,a){"use strict";a.r(t);var n=a(0),l=a.n(n),r=a(24),c=a(107),i=a(22),o=a(111),m=a(109);var s=function(e){var t=e.metadata;return l.a.createElement("nav",{className:"pagination-nav","aria-label":"Blog list page navigation"},l.a.createElement("div",{className:"pagination-nav__item"},t.previous&&l.a.createElement(m.a,{className:"pagination-nav__link",to:t.previous.permalink},l.a.createElement("div",{className:"paginati [...]
\ No newline at end of file
diff --git a/1c89ab3b.79ecc6c6.js b/1c89ab3b.79ecc6c6.js
deleted file mode 100644
index b2a3bbe..0000000
--- a/1c89ab3b.79ecc6c6.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[5],{76:function(e,t,a){"use strict";a.r(t),a.d(t,"frontMatter",(function(){return r})),a.d(t,"metadata",(function(){return o})),a.d(t,"toc",(function(){return l})),a.d(t,"default",(function(){return p}));var n=a(3),s=a(7),i=(a(0),a(106)),r={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"},o={permalink:"/blog/20 [...]
\ No newline at end of file
diff --git a/1c89ab3b.da3f678d.js b/1c89ab3b.da3f678d.js
new file mode 100644
index 0000000..975add2
--- /dev/null
+++ b/1c89ab3b.da3f678d.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{106: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/1dba9094.931ac078.js b/1dba9094.5a8a453a.js
similarity index 86%
rename from 1dba9094.931ac078.js
rename to 1dba9094.5a8a453a.js
index 3a11c78..93d60c4 100644
--- a/1dba9094.931ac078.js
+++ b/1dba9094.5a8a453a.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{77:function(e,t,n){"use strict";n.r(t);var a=n(22),l=n(110),r=n(107),s=n(0);t.default=function(){var e=Object(a.default)().siteConfig;if(0===(e.customFields.users||[]).length)return null;var t=e.customFields.users.filter((function(e){return e.pinned})).map((function(e){return s.createElement("a",{href:e.infoLink,key:e.infoLink},s.createElement("img",{className:"logo",src:e.image,alt:e.caption,title:e.caption}))}));return s.createEl [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{75:function(e,t,n){"use strict";n.r(t);var a=n(22),l=n(112),r=n(109),s=n(0);t.default=function(){var e=Object(a.default)().siteConfig;if(0===(e.customFields.users||[]).length)return null;var t=e.customFields.users.filter((function(e){return e.pinned})).map((function(e){return s.createElement("a",{href:e.infoLink,key:e.infoLink},s.createElement("img",{className:"logo",src:e.image,alt:e.caption,title:e.caption}))}));return s.createEl [...]
\ No newline at end of file
diff --git a/2.54f5630c.js b/2.a27a3490.js
similarity index 83%
rename from 2.54f5630c.js
rename to 2.a27a3490.js
index b3fe5fd..632ee95 100644
--- a/2.54f5630c.js
+++ b/2.a27a3490.js
@@ -1,2 +1,2 @@
-/*! For license information please see 2.54f5630c.js.LICENSE.txt */
-(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{110:function(e,t,a){"use strict";var n=a(0),r=a.n(n),c=a(105),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(104),u=a(13 [...]
\ No newline at end of file
+/*! For license information please see 2.a27a3490.js.LICENSE.txt */
+(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{112:function(e,t,a){"use strict";var n=a(0),r=a.n(n),c=a(108),o=a(62),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(107),u=a(13 [...]
\ No newline at end of file
diff --git a/2.54f5630c.js.LICENSE.txt b/2.a27a3490.js.LICENSE.txt
similarity index 100%
rename from 2.54f5630c.js.LICENSE.txt
rename to 2.a27a3490.js.LICENSE.txt
diff --git a/2275ea3b.347e70b8.js b/2275ea3b.347e70b8.js
deleted file mode 100644
index d86ddd7..0000000
--- a/2275ea3b.347e70b8.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{78:function(t,e,a){"use strict";a.r(e),a.d(e,"frontMatter",(function(){return l})),a.d(e,"metadata",(function(){return i})),a.d(e,"toc",(function(){return m})),a.d(e,"default",(function(){return p}));var r=a(3),n=a(7),b=(a(0),a(106)),l={id:"team",title:"Team"},i={unversionedId:"team",id:"team",isDocsHomePage:!1,title:"Team",description:"Members",source:"@site/docs/team.md",slug:"/team",permalink:"/team",editUrl:"https://github.com/ [...]
\ No newline at end of file
diff --git a/2275ea3b.56b9f8c9.js b/2275ea3b.56b9f8c9.js
new file mode 100644
index 0000000..0ea2534
--- /dev/null
+++ b/2275ea3b.56b9f8c9.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{106:function(t,e,a){"use strict";a.d(e,"a",(function(){return p})),a.d(e,"b",(function(){return h}));var r=a(0),n=a.n(r);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 i(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))) [...]
\ No newline at end of file
diff --git a/29.64851b6d.js b/29.64851b6d.js
deleted file mode 100644
index 4eac77f..0000000
--- a/29.64851b6d.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[29],{102:function(e,t,a){"use strict";a.r(t);var n=a(0),r=a.n(n),l=a(110),o=a(123),c=a(107);var s=function(e){var t=e.nextItem,a=e.prevItem;return r.a.createElement("nav",{className:"pagination-nav","aria-label":"Blog post page navigation"},r.a.createElement("div",{className:"pagination-nav__item"},a&&r.a.createElement(c.a,{className:"pagination-nav__link",to:a.permalink},r.a.createElement("div",{className:"pagination-nav__sublabel"}," [...]
\ No newline at end of file
diff --git a/2d8fe9ee.30394a0b.js b/2d8fe9ee.30394a0b.js
deleted file mode 100644
index b5e4b60..0000000
--- a/2d8fe9ee.30394a0b.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{79:function(e){e.exports=JSON.parse('{"title":"Recent posts","items":[{"title":"Run Ingress APISIX on Amazon EKS","permalink":"/blog/2021/01/21/run-ingress-apisix-on-amazon-eks"},{"title":"\u521d\u63a2 Kubernetes Service APIs","permalink":"/blog/2020/12/18/a-first-look-at-kubernetes-service-api"},{"title":"Envoy and Apache APISIX: Another way to implement the Envoy filter","permalink":"/blog/2020/12/16/another-way-to-implement-envo [...]
\ No newline at end of file
diff --git a/2d8fe9ee.93b6439b.js b/2d8fe9ee.93b6439b.js
new file mode 100644
index 0000000..9914f6a
--- /dev/null
+++ b/2d8fe9ee.93b6439b.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[9],{77:function(e){e.exports=JSON.parse('{"title":"Recent posts","items":[{"title":"Stable Product Delivery with Cypress","permalink":"/blog/2021/02/08/stable-product-delivery-with-cypress"},{"title":"Run Ingress APISIX on Amazon EKS","permalink":"/blog/2021/01/21/run-ingress-apisix-on-amazon-eks"},{"title":"\u521d\u63a2 Kubernetes Service APIs","permalink":"/blog/2020/12/18/a-first-look-at-kubernetes-service-api"},{"title":"Envoy and  [...]
\ No newline at end of file
diff --git a/2da51850.2a146107.js b/2da51850.2a146107.js
new file mode 100644
index 0000000..433b991
--- /dev/null
+++ b/2da51850.2a146107.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[10],{106:function(e,t,r){"use strict";r.d(t,"a",(function(){return u})),r.d(t,"b",(function(){return d}));var n=r(0),i=r.n(n);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})) [...]
\ No newline at end of file
diff --git a/2da51850.51e1ace6.js b/2da51850.51e1ace6.js
deleted file mode 100644
index 9a709d1..0000000
--- a/2da51850.51e1ace6.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[9],{80:function(e,i,t){"use strict";t.r(i),t.d(i,"frontMatter",(function(){return o})),t.d(i,"metadata",(function(){return r})),t.d(i,"toc",(function(){return c})),t.d(i,"default",(function(){return p}));var a=t(3),s=t(7),n=(t(0),t(106)),o={id:"subscribe-guide",slug:"/docs",title:"Subscribe Guide"},r={unversionedId:"subscribe-guide",id:"subscribe-guide",isDocsHomePage:!1,title:"Subscribe Guide",description:"During the process of using  [...]
\ No newline at end of file
diff --git a/2fa/index.html b/2fa/index.html
index c2c2a21..da544dd 100644
--- a/2fa/index.html
+++ b/2fa/index.html
@@ -8,29 +8,29 @@
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX™" href="/opensearch.xml">
 <script src="https://buttons.github.io/buttons.js"></script><title data-react-helmet="true">2FA | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-react-helmet="true" property="og:title" co [...]
-<link rel="preload" href="/styles.992e9cec.js" as="script">
-<link rel="preload" href="/runtime~main.56f460b8.js" as="script">
-<link rel="preload" href="/main.c672b8f9.js" as="script">
-<link rel="preload" href="/common.2d967526.js" as="script">
-<link rel="preload" href="/2.54f5630c.js" as="script">
-<link rel="preload" href="/31.c3e6fc2a.js" as="script">
-<link rel="preload" href="/34.f92ba19b.js" as="script">
-<link rel="preload" href="/935f2afb.578e6540.js" as="script">
-<link rel="preload" href="/17896441.5f37a45d.js" as="script">
-<link rel="preload" href="/0b71e11c.dc027663.js" as="script">
+<link rel="preload" href="/styles.741c9ebc.js" as="script">
+<link rel="preload" href="/runtime~main.4ef57bf5.js" as="script">
+<link rel="preload" href="/main.cb4a05c3.js" as="script">
+<link rel="preload" href="/1.c35d2c6d.js" as="script">
+<link rel="preload" href="/2.a27a3490.js" as="script">
+<link rel="preload" href="/34.4500fb77.js" as="script">
+<link rel="preload" href="/37.b77cb21b.js" as="script">
+<link rel="preload" href="/935f2afb.cf4d5fdd.js" as="script">
+<link rel="preload" href="/17896441.a4d7c2ff.js" as="script">
+<link rel="preload" href="/0b71e11c.a0c47693.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_11B0">Skip to main content</button></nav><nav class="navbar navbar--fixed-top navbar--primary"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap= [...]
-<script src="/styles.992e9cec.js"></script>
-<script src="/runtime~main.56f460b8.js"></script>
-<script src="/main.c672b8f9.js"></script>
-<script src="/common.2d967526.js"></script>
-<script src="/2.54f5630c.js"></script>
-<script src="/31.c3e6fc2a.js"></script>
-<script src="/34.f92ba19b.js"></script>
-<script src="/935f2afb.578e6540.js"></script>
-<script src="/17896441.5f37a45d.js"></script>
-<script src="/0b71e11c.dc027663.js"></script>
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_11B0">Skip to main content</button></nav><nav class="navbar navbar--fixed-top navbar--primary"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap= [...]
+<script src="/styles.741c9ebc.js"></script>
+<script src="/runtime~main.4ef57bf5.js"></script>
+<script src="/main.cb4a05c3.js"></script>
+<script src="/1.c35d2c6d.js"></script>
+<script src="/2.a27a3490.js"></script>
+<script src="/34.4500fb77.js"></script>
+<script src="/37.b77cb21b.js"></script>
+<script src="/935f2afb.cf4d5fdd.js"></script>
+<script src="/17896441.a4d7c2ff.js"></script>
+<script src="/0b71e11c.a0c47693.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/3.278c6dda.js b/3.278c6dda.js
new file mode 100644
index 0000000..5bf0417
--- /dev/null
+++ b/3.278c6dda.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{106: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/30.163c5ee4.js b/30.163c5ee4.js
deleted file mode 100644
index b07ae4b..0000000
--- a/30.163c5ee4.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[30],{101:function(e,t,a){"use strict";a.r(t);var n=a(0),r=a.n(n),l=a(22),o=a(110),s=a(123),c=a(107);var i=function(e){var t=e.metadata,a=t.previousPage,n=t.nextPage;return r.a.createElement("nav",{className:"pagination-nav","aria-label":"Blog list page navigation"},r.a.createElement("div",{className:"pagination-nav__item"},a&&r.a.createElement(c.a,{className:"pagination-nav__link",to:a},r.a.createElement("div",{className:"pagination-na [...]
\ No newline at end of file
diff --git a/31.c3e6fc2a.js b/31.c3e6fc2a.js
deleted file mode 100644
index 90e27be..0000000
--- a/31.c3e6fc2a.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[31,34],{100:function(e,t,a){"use strict";a.r(t);var n=a(0),r=a.n(n),l=a(106),c=a(22),o=a(26),i=a(110),s=a(3),u=a(7),m=a(105),p=a(104),d=a(133),h=a(139),b=a(140),y=a(138),f=a(107),g=a(119),v=a(150),k=function(e){return r.a.createElement("svg",Object(s.a)({width:"20",height:"20",role:"img"},e),r.a.createElement("g",{fill:"#7a7a7a"},r.a.createElement("path",{d:"M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.5 [...]
\ No newline at end of file
diff --git a/28.556d035e.js b/33.04527ba4.js
similarity index 96%
rename from 28.556d035e.js
rename to 33.04527ba4.js
index 661cc0c..ef72075 100644
--- a/28.556d035e.js
+++ b/33.04527ba4.js
@@ -1,2 +1,2 @@
-/*! For license information please see 28.556d035e.js.LICENSE.txt */
-(window.webpackJsonp=window.webpackJsonp||[]).push([[28],{120:function(e,t,n){"use strict";e.exports=function(e,t){if(Array.isArray(e))for(var n=0;n<e.length;n++)if(t(e[n]))return e[n]}},125:function(e,t,n){"use strict";function r(e){return"function"==typeof e||Array.isArray(e)||"[object Object]"===Object.prototype.toString.call(e)}function i(e,t){if(e===t)return e;for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){var a=t[n],s=e[n];void 0!==s&&void 0===a||(r(s)&&r(a)?e[n]=i(s, [...]
\ No newline at end of file
+/*! For license information please see 33.04527ba4.js.LICENSE.txt */
+(window.webpackJsonp=window.webpackJsonp||[]).push([[33],{119:function(e,t,n){"use strict";e.exports=function(e,t){if(Array.isArray(e))for(var n=0;n<e.length;n++)if(t(e[n]))return e[n]}},124:function(e,t,n){"use strict";function r(e){return"function"==typeof e||Array.isArray(e)||"[object Object]"===Object.prototype.toString.call(e)}function i(e,t){if(e===t)return e;for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){var a=t[n],s=e[n];void 0!==s&&void 0===a||(r(s)&&r(a)?e[n]=i(s, [...]
\ No newline at end of file
diff --git a/28.556d035e.js.LICENSE.txt b/33.04527ba4.js.LICENSE.txt
similarity index 100%
rename from 28.556d035e.js.LICENSE.txt
rename to 33.04527ba4.js.LICENSE.txt
diff --git a/33.d4f803a5.js b/33.d4f803a5.js
deleted file mode 100644
index c043b4f..0000000
--- a/33.d4f803a5.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[33],{185: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/34.4500fb77.js b/34.4500fb77.js
new file mode 100644
index 0000000..f911fb2
--- /dev/null
+++ b/34.4500fb77.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[34,37],{102:function(e,t,n){"use strict";n.r(t);var a=n(0),r=n.n(a),o=n(106),c=n(22),l=n(26),i=n(112),s=n(3),u=n(7),p=n(108),m=n(107),d=n(133),b=n(139),f=n(140),y=n(138),h=n(109),g=n(117),v=n(152),j=function(e){return r.a.createElement("svg",Object(s.a)({width:"20",height:"20",role:"img"},e),r.a.createElement("g",{fill:"#7a7a7a"},r.a.createElement("path",{d:"M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.5 [...]
\ No newline at end of file
diff --git a/32.88b4984f.js b/35.5326e96e.js
similarity index 99%
rename from 32.88b4984f.js
rename to 35.5326e96e.js
index be49ae0..689c288 100644
--- a/32.88b4984f.js
+++ b/35.5326e96e.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[32],{186:function(e,t,r){"use strict";function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t,r){var a=t.initialState;return{getState:func [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[35],{188:function(e,t,r){"use strict";function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t,r){var a=t.initialState;return{getState:func [...]
\ No newline at end of file
diff --git a/36.b72da796.js b/36.b72da796.js
new file mode 100644
index 0000000..319b6d2
--- /dev/null
+++ b/36.b72da796.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[36],{187:function(n,i,o){"use strict";o.r(i);var r=o(61);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/34.f92ba19b.js b/37.b77cb21b.js
similarity index 76%
rename from 34.f92ba19b.js
rename to 37.b77cb21b.js
index b0b605c..86c77a9 100644
--- a/34.f92ba19b.js
+++ b/37.b77cb21b.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[34],{129:function(e,t,a){"use strict";a.r(t);var n=a(0),o=a.n(n),l=a(110);t.default=function(){return o.a.createElement(l.a,{title:"Page Not Found"},o.a.createElement("main",{className:"container margin-vert--xl"},o.a.createElement("div",{className:"row"},o.a.createElement("div",{className:"col col--6 col--offset-3"},o.a.createElement("h1",{className:"hero__title"},"Page Not Found"),o.a.createElement("p",null,"We could not find what yo [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[37],{129:function(e,t,a){"use strict";a.r(t);var n=a(0),o=a.n(n),l=a(112);t.default=function(){return o.a.createElement(l.a,{title:"Page Not Found"},o.a.createElement("main",{className:"container margin-vert--xl"},o.a.createElement("div",{className:"row"},o.a.createElement("div",{className:"col col--6 col--offset-3"},o.a.createElement("h1",{className:"hero__title"},"Page Not Found"),o.a.createElement("p",null,"We could not find what yo [...]
\ No newline at end of file
diff --git a/37e3b3ea.10fab840.js b/37e3b3ea.10fab840.js
new file mode 100644
index 0000000..f00c768
--- /dev/null
+++ b/37e3b3ea.10fab840.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[11],{106:function(e,t,r){"use strict";r.d(t,"a",(function(){return l})),r.d(t,"b",(function(){return m}));var n=r(0),o=r.n(n);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})) [...]
\ No newline at end of file
diff --git a/37e3b3ea.f669081a.js b/37e3b3ea.f669081a.js
deleted file mode 100644
index 39f21b1..0000000
--- a/37e3b3ea.f669081a.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[10],{81:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return u})),n.d(t,"metadata",(function(){return c})),n.d(t,"toc",(function(){return i})),n.d(t,"default",(function(){return p}));var o=n(3),r=n(7),a=(n(0),n(106)),u={title:"New website for Apache APISIX",author:"juzhiyuan",authorURL:"https://github.com/juzhiyuan",authorImageURL:"https://avatars3.githubusercontent.com/u/2106987?s=460&u=f92e880ce95fe1fee18becd0a8 [...]
\ No newline at end of file
diff --git a/404.html b/404.html
index de566d8..e745d34 100644
--- a/404.html
+++ b/404.html
@@ -8,25 +8,25 @@
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX™" href="/opensearch.xml">
 <script src="https://buttons.github.io/buttons.js"></script><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" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="default"><link data-react-helmet="true" rel=" [...]
-<link rel="preload" href="/styles.992e9cec.js" as="script">
-<link rel="preload" href="/runtime~main.56f460b8.js" as="script">
-<link rel="preload" href="/main.c672b8f9.js" as="script">
-<link rel="preload" href="/common.2d967526.js" as="script">
-<link rel="preload" href="/2.54f5630c.js" as="script">
-<link rel="preload" href="/31.c3e6fc2a.js" as="script">
-<link rel="preload" href="/34.f92ba19b.js" as="script">
-<link rel="preload" href="/935f2afb.578e6540.js" as="script">
+<link rel="preload" href="/styles.741c9ebc.js" as="script">
+<link rel="preload" href="/runtime~main.4ef57bf5.js" as="script">
+<link rel="preload" href="/main.cb4a05c3.js" as="script">
+<link rel="preload" href="/1.c35d2c6d.js" as="script">
+<link rel="preload" href="/2.a27a3490.js" as="script">
+<link rel="preload" href="/34.4500fb77.js" as="script">
+<link rel="preload" href="/37.b77cb21b.js" as="script">
+<link rel="preload" href="/935f2afb.cf4d5fdd.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_11B0">Skip to main content</button></nav><nav class="navbar navbar--fixed-top navbar--primary"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap= [...]
-<script src="/styles.992e9cec.js"></script>
-<script src="/runtime~main.56f460b8.js"></script>
-<script src="/main.c672b8f9.js"></script>
-<script src="/common.2d967526.js"></script>
-<script src="/2.54f5630c.js"></script>
-<script src="/31.c3e6fc2a.js"></script>
-<script src="/34.f92ba19b.js"></script>
-<script src="/935f2afb.578e6540.js"></script>
+<script src="/styles.741c9ebc.js"></script>
+<script src="/runtime~main.4ef57bf5.js"></script>
+<script src="/main.cb4a05c3.js"></script>
+<script src="/1.c35d2c6d.js"></script>
+<script src="/2.a27a3490.js"></script>
+<script src="/34.4500fb77.js"></script>
+<script src="/37.b77cb21b.js"></script>
+<script src="/935f2afb.cf4d5fdd.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/47e0bf55.464b2b52.js b/47e0bf55.464b2b52.js
new file mode 100644
index 0000000..54039be
--- /dev/null
+++ b/47e0bf55.464b2b52.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[12],{106:function(e,t,n){"use strict";n.d(t,"a",(function(){return p})),n.d(t,"b",(function(){return d}));var a=n(0),r=n.n(a);function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})) [...]
\ No newline at end of file
diff --git a/514de2af.539501a7.js b/514de2af.539501a7.js
deleted file mode 100644
index b5c2a0c..0000000
--- a/514de2af.539501a7.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[11],{82:function(e,t,a){"use strict";a.r(t),a.d(t,"frontMatter",(function(){return r})),a.d(t,"metadata",(function(){return o})),a.d(t,"toc",(function(){return l})),a.d(t,"default",(function(){return p}));var n=a(3),s=a(7),i=(a(0),a(106)),r={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"},o={permalink:"/blog/2 [...]
\ No newline at end of file
diff --git a/514de2af.c71b6f56.js b/514de2af.c71b6f56.js
new file mode 100644
index 0000000..e120fa4
--- /dev/null
+++ b/514de2af.c71b6f56.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[13],{106: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/5bb67ffc.2fa3b45c.js b/5bb67ffc.2fa3b45c.js
deleted file mode 100644
index 45fb953..0000000
--- a/5bb67ffc.2fa3b45c.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[12],{83:function(e,t,a){"use strict";a.r(t),a.d(t,"frontMatter",(function(){return l})),a.d(t,"metadata",(function(){return s})),a.d(t,"toc",(function(){return i})),a.d(t,"default",(function(){return p}));var r=a(3),b=a(7),n=(a(0),a(106)),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=e140a6d2bf19c426da6498b8 [...]
\ No newline at end of file
diff --git a/5bb67ffc.da9c8f37.js b/5bb67ffc.da9c8f37.js
new file mode 100644
index 0000000..7f6528c
--- /dev/null
+++ b/5bb67ffc.da9c8f37.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[14],{106:function(e,t,r){"use strict";r.d(t,"a",(function(){return u})),r.d(t,"b",(function(){return m}));var n=r(0),a=r.n(n);function b(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var 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/638581dc.84292407.js b/638581dc.84292407.js
deleted file mode 100644
index ed2b66a..0000000
--- a/638581dc.84292407.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[13],{84:function(e,t,i){"use strict";i.r(t),i.d(t,"frontMatter",(function(){return n})),i.d(t,"metadata",(function(){return o})),i.d(t,"toc",(function(){return c})),i.d(t,"default",(function(){return d}));var a=i(3),s=i(7),r=(i(0),i(106)),n={id:"security",title:"Security"},o={unversionedId:"security",id:"security",isDocsHomePage:!1,title:"Security",description:"The Apache Software Foundation takes a rigorous stance on eliminating secur [...]
\ No newline at end of file
diff --git a/638581dc.b9d02b31.js b/638581dc.b9d02b31.js
new file mode 100644
index 0000000..d532bec
--- /dev/null
+++ b/638581dc.b9d02b31.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[15],{106:function(e,t,r){"use strict";r.d(t,"a",(function(){return l})),r.d(t,"b",(function(){return f}));var n=r(0),a=r.n(n);function 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})) [...]
\ No newline at end of file
diff --git a/749ed826.1f01f50a.js b/749ed826.1f01f50a.js
new file mode 100644
index 0000000..d92414f
--- /dev/null
+++ b/749ed826.1f01f50a.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[16],{106:function(e,t,n){"use strict";n.d(t,"a",(function(){return b})),n.d(t,"b",(function(){return m}));var a=n(0),r=n.n(a);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})) [...]
\ No newline at end of file
diff --git a/749ed826.914caae4.js b/749ed826.914caae4.js
deleted file mode 100644
index 9ca8630..0000000
--- a/749ed826.914caae4.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[14],{85:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return r})),n.d(t,"metadata",(function(){return l})),n.d(t,"toc",(function(){return c})),n.d(t,"default",(function(){return p}));var a=n(3),i=n(7),o=(n(0),n(106)),r={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/3300066 [...]
\ No newline at end of file
diff --git a/7e37206e.1dcb01fa.js b/7e37206e.349c8511.js
similarity index 89%
rename from 7e37206e.1dcb01fa.js
rename to 7e37206e.349c8511.js
index d31564c..7876574 100644
--- a/7e37206e.1dcb01fa.js
+++ b/7e37206e.349c8511.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[15],{86:function(e,t,a){"use strict";a.r(t);var l=a(110),n=a(0);function c(e){var t=e.config;e.language,t.baseUrl,t.docsUrl;return n.createElement("div",{className:"container"},n.createElement("div",{className:"row"},n.createElement("div",{className:"postHeader"},n.createElement("h1",null,"Need help?"))),n.createElement("div",{className:"row"},"This project is maintained by a dedicated group of people."),n.createElement("div",{classNam [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[17],{85:function(e,t,a){"use strict";a.r(t);var l=a(112),n=a(0);function c(e){var t=e.config;e.language,t.baseUrl,t.docsUrl;return n.createElement("div",{className:"container"},n.createElement("div",{className:"row"},n.createElement("div",{className:"postHeader"},n.createElement("h1",null,"Need help?"))),n.createElement("div",{className:"row"},"This project is maintained by a dedicated group of people."),n.createElement("div",{classNam [...]
\ No newline at end of file
diff --git a/812d7c14.1601244b.js b/812d7c14.1601244b.js
deleted file mode 100644
index 40e57a4..0000000
--- a/812d7c14.1601244b.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[16],{168:function(e,a,t){"use strict";t.r(a),a.default=t.p+"assets/images/release_flow-1dca59df2fab6c847f3fd02596ca6651.png"},87:function(e,a,t){"use strict";t.r(a),t.d(a,"frontMatter",(function(){return s})),t.d(a,"metadata",(function(){return l})),t.d(a,"toc",(function(){return o})),t.d(a,"default",(function(){return d}));var n=t(3),i=t(7),r=(t(0),t(106)),s={id:"release-guide",title:"Release Guide"},l={unversionedId:"release-guide",i [...]
\ No newline at end of file
diff --git a/812d7c14.eb81701f.js b/812d7c14.eb81701f.js
new file mode 100644
index 0000000..7832fab
--- /dev/null
+++ b/812d7c14.eb81701f.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[18],{106:function(e,a,t){"use strict";t.d(a,"a",(function(){return d})),t.d(a,"b",(function(){return u}));var n=t(0),r=t.n(n);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 s(e,a){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);a&&(n=n.filter((function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})) [...]
\ No newline at end of file
diff --git a/935f2afb.578e6540.js b/935f2afb.cf4d5fdd.js
similarity index 90%
rename from 935f2afb.578e6540.js
rename to 935f2afb.cf4d5fdd.js
index 06c7aba..dc1f1da 100644
--- a/935f2afb.578e6540.js
+++ b/935f2afb.cf4d5fdd.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[17],{88:function(e){e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","isLast":true,"docsSidebars":{"docs":[{"collapsed":true,"type":"category","label":"Get Involved","items":[{"type":"link","label":"Security","href":"/security"},{"type":"link","label":"Subscribe Guide","href":"/docs"},{"type":"link","label":"Contributor Guide","href":"/contributor-guide"},{"type":"link","label":"Committer Guide","href":"/c [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[19],{87:function(e){e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","isLast":true,"docsSidebars":{"docs":[{"collapsed":true,"type":"category","label":"Get Involved","items":[{"type":"link","label":"Security","href":"/security"},{"type":"link","label":"Subscribe Guide","href":"/docs"},{"type":"link","label":"Contributor Guide","href":"/contributor-guide"},{"type":"link","label":"Committer Guide","href":"/c [...]
\ No newline at end of file
diff --git a/a4a2cefa.03eff292.js b/a4a2cefa.03eff292.js
deleted file mode 100644
index 1518e41..0000000
--- a/a4a2cefa.03eff292.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[18],{89:function(e,t,a){"use strict";a.r(t),a.d(t,"frontMatter",(function(){return l})),a.d(t,"metadata",(function(){return s})),a.d(t,"toc",(function(){return i})),a.d(t,"default",(function(){return p}));var r=a(3),b=a(7),n=(a(0),a(106)),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=e140a6d2bf19c426da6498b8 [...]
\ No newline at end of file
diff --git a/a4a2cefa.1c9bfc96.js b/a4a2cefa.1c9bfc96.js
new file mode 100644
index 0000000..50f7de3
--- /dev/null
+++ b/a4a2cefa.1c9bfc96.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[20],{106:function(e,t,r){"use strict";r.d(t,"a",(function(){return u})),r.d(t,"b",(function(){return m}));var n=r(0),a=r.n(n);function b(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var 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/a6641250.7c404dbb.js b/a6641250.7c404dbb.js
deleted file mode 100644
index 79e6e44..0000000
--- a/a6641250.7c404dbb.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[19],{90:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return u})),n.d(t,"metadata",(function(){return i})),n.d(t,"toc",(function(){return c})),n.d(t,"default",(function(){return p}));var o=n(3),a=n(7),r=(n(0),n(106)),u={title:"New website for Apache APISIX",author:"juzhiyuan",authorURL:"https://github.com/juzhiyuan",authorImageURL:"https://avatars3.githubusercontent.com/u/2106987?s=460&u=f92e880ce95fe1fee18becd0a8 [...]
\ No newline at end of file
diff --git a/a6641250.f9de2796.js b/a6641250.f9de2796.js
new file mode 100644
index 0000000..495261f
--- /dev/null
+++ b/a6641250.f9de2796.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[21],{106:function(e,t,r){"use strict";r.d(t,"a",(function(){return f})),r.d(t,"b",(function(){return m}));var n=r(0),o=r.n(n);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})) [...]
\ No newline at end of file
diff --git a/a6aa9e1f.34ce0e2d.js b/a6aa9e1f.34ce0e2d.js
new file mode 100644
index 0000000..3527bdc
--- /dev/null
+++ b/a6aa9e1f.34ce0e2d.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[22],{103:function(a,e,t){"use strict";t.r(e);var n=t(0),i=t.n(n),l=t(22),r=t(112),c=t(142),m=t(109);var s=function(a){var e=a.metadata,t=e.previousPage,n=e.nextPage;return i.a.createElement("nav",{className:"pagination-nav","aria-label":"Blog list page navigation"},i.a.createElement("div",{className:"pagination-nav__item"},t&&i.a.createElement(m.a,{className:"pagination-nav__link",to:t},i.a.createElement("div",{className:"pagination-na [...]
\ No newline at end of file
diff --git a/b2b675dd.42a652db.js b/b2b675dd.42a652db.js
deleted file mode 100644
index c875358..0000000
--- a/b2b675dd.42a652db.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[20],{91:function(o){o.exports=JSON.parse('{"permalink":"/blog","page":1,"postsPerPage":10,"totalPages":1,"totalCount":4,"previousPage":null,"nextPage":null,"blogDescription":"Blog","blogTitle":"Blog"}')}}]);
\ No newline at end of file
diff --git a/b2b675dd.a0165438.js b/b2b675dd.a0165438.js
new file mode 100644
index 0000000..6075a89
--- /dev/null
+++ b/b2b675dd.a0165438.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[23],{92:function(o){o.exports=JSON.parse('{"permalink":"/blog","page":1,"postsPerPage":10,"totalPages":1,"totalCount":5,"previousPage":null,"nextPage":null,"blogDescription":"Blog","blogTitle":"Blog"}')}}]);
\ No newline at end of file
diff --git a/blog/2020/08/22/new-website/index.html b/blog/2020/08/22/new-website/index.html
index b8f3260..7a55ef0 100644
--- a/blog/2020/08/22/new-website/index.html
+++ b/blog/2020/08/22/new-website/index.html
@@ -8,25 +8,27 @@
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX™" href="/opensearch.xml">
 <script src="https://buttons.github.io/buttons.js"></script><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" name="description" content="We are just refactored out website for Apache APISIX by using docusaurus."><meta data-react-helmet="true" property="og:description" content="We are just refactored out website for [...]
-<link rel="preload" href="/styles.992e9cec.js" as="script">
-<link rel="preload" href="/runtime~main.56f460b8.js" as="script">
-<link rel="preload" href="/main.c672b8f9.js" as="script">
-<link rel="preload" href="/common.2d967526.js" as="script">
-<link rel="preload" href="/2.54f5630c.js" as="script">
-<link rel="preload" href="/29.64851b6d.js" as="script">
-<link rel="preload" href="/2d8fe9ee.30394a0b.js" as="script">
-<link rel="preload" href="/a6641250.7c404dbb.js" as="script">
+<link rel="preload" href="/styles.741c9ebc.js" as="script">
+<link rel="preload" href="/runtime~main.4ef57bf5.js" as="script">
+<link rel="preload" href="/main.cb4a05c3.js" as="script">
+<link rel="preload" href="/1.c35d2c6d.js" as="script">
+<link rel="preload" href="/2.a27a3490.js" as="script">
+<link rel="preload" href="/3.278c6dda.js" as="script">
+<link rel="preload" href="/ccc49370.45b5b4a2.js" as="script">
+<link rel="preload" href="/2d8fe9ee.93b6439b.js" as="script">
+<link rel="preload" href="/a6641250.f9de2796.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_11B0">Skip to main content</button></nav><nav class="navbar navbar--fixed-top navbar--primary"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap= [...]
-<script src="/styles.992e9cec.js"></script>
-<script src="/runtime~main.56f460b8.js"></script>
-<script src="/main.c672b8f9.js"></script>
-<script src="/common.2d967526.js"></script>
-<script src="/2.54f5630c.js"></script>
-<script src="/29.64851b6d.js"></script>
-<script src="/2d8fe9ee.30394a0b.js"></script>
-<script src="/a6641250.7c404dbb.js"></script>
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_11B0">Skip to main content</button></nav><nav class="navbar navbar--fixed-top navbar--primary"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap= [...]
+<script src="/styles.741c9ebc.js"></script>
+<script src="/runtime~main.4ef57bf5.js"></script>
+<script src="/main.cb4a05c3.js"></script>
+<script src="/1.c35d2c6d.js"></script>
+<script src="/2.a27a3490.js"></script>
+<script src="/3.278c6dda.js"></script>
+<script src="/ccc49370.45b5b4a2.js"></script>
+<script src="/2d8fe9ee.93b6439b.js"></script>
+<script src="/a6641250.f9de2796.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 e19a7e5..897ef1d 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
@@ -8,27 +8,29 @@
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX™" href="/opensearch.xml">
 <script src="https://buttons.github.io/buttons.js"></script><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" name="description" content="@nic-chen, Apache APISIX PMC from Shenzhen Zhiliu Technology Co."><meta data-react-helmet="true" property [...]
-<link rel="preload" href="/styles.992e9cec.js" as="script">
-<link rel="preload" href="/runtime~main.56f460b8.js" as="script">
-<link rel="preload" href="/main.c672b8f9.js" as="script">
-<link rel="preload" href="/common.2d967526.js" as="script">
-<link rel="preload" href="/2.54f5630c.js" as="script">
-<link rel="preload" href="/29.64851b6d.js" as="script">
-<link rel="preload" href="/2d8fe9ee.30394a0b.js" as="script">
-<link rel="preload" href="/749ed826.914caae4.js" as="script">
+<link rel="preload" href="/styles.741c9ebc.js" as="script">
+<link rel="preload" href="/runtime~main.4ef57bf5.js" as="script">
+<link rel="preload" href="/main.cb4a05c3.js" as="script">
+<link rel="preload" href="/1.c35d2c6d.js" as="script">
+<link rel="preload" href="/2.a27a3490.js" as="script">
+<link rel="preload" href="/3.278c6dda.js" as="script">
+<link rel="preload" href="/ccc49370.45b5b4a2.js" as="script">
+<link rel="preload" href="/2d8fe9ee.93b6439b.js" as="script">
+<link rel="preload" href="/749ed826.1f01f50a.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_11B0">Skip to main content</button></nav><nav class="navbar navbar--fixed-top navbar--primary"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap= [...]
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_11B0">Skip to main content</button></nav><nav class="navbar navbar--fixed-top navbar--primary"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap= [...]
 A pluggable filter chain mechanism allows filters to be written to perform different tasks and inserted into the main server.</p><p><img src="https://static.apiseven.com/filters.png" alt="Envoy filter"></p><h3><a aria-hidden="true" tabindex="-1" class="anchor enhancedAnchor_prK2" id="expansion-method"></a>Expansion method<a class="hash-link" href="#expansion-method" title="Direct link to heading">#</a></h3><p>The existing filters may not meet the user&#x27;s custom requirements. In this  [...]
 In the example, we configured plugin <code>uri-blocker</code> for the route whose prefix is ​​<code>/foo</code>, as well as the block rule of the plugin and the response status when a block is required.</p><h4><a aria-hidden="true" tabindex="-1" class="anchor enhancedAnchor_prK2" id="second-step-parse-request"></a>Second step, parse request<a class="hash-link" href="#second-step-parse-request" title="Direct link to heading">#</a></h4><p>We encapsulated the client request data into <code> [...]
-<script src="/styles.992e9cec.js"></script>
-<script src="/runtime~main.56f460b8.js"></script>
-<script src="/main.c672b8f9.js"></script>
-<script src="/common.2d967526.js"></script>
-<script src="/2.54f5630c.js"></script>
-<script src="/29.64851b6d.js"></script>
-<script src="/2d8fe9ee.30394a0b.js"></script>
-<script src="/749ed826.914caae4.js"></script>
+<script src="/styles.741c9ebc.js"></script>
+<script src="/runtime~main.4ef57bf5.js"></script>
+<script src="/main.cb4a05c3.js"></script>
+<script src="/1.c35d2c6d.js"></script>
+<script src="/2.a27a3490.js"></script>
+<script src="/3.278c6dda.js"></script>
+<script src="/ccc49370.45b5b4a2.js"></script>
+<script src="/2d8fe9ee.93b6439b.js"></script>
+<script src="/749ed826.1f01f50a.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 5e2ae00..66be7a6 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
@@ -8,25 +8,27 @@
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX™" href="/opensearch.xml">
 <script src="https://buttons.github.io/buttons.js"></script><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" name="description" content="@gxthrj, Apache APISIX PMC &amp; Apache apisix-ingress-controller Founder from Shenzhen Zhiliu Technology Co."><meta data-react-helmet="true" property="og:description" content="@gxthrj, [...]
-<link rel="preload" href="/styles.992e9cec.js" as="script">
-<link rel="preload" href="/runtime~main.56f460b8.js" as="script">
-<link rel="preload" href="/main.c672b8f9.js" as="script">
-<link rel="preload" href="/common.2d967526.js" as="script">
-<link rel="preload" href="/2.54f5630c.js" as="script">
-<link rel="preload" href="/29.64851b6d.js" as="script">
-<link rel="preload" href="/2d8fe9ee.30394a0b.js" as="script">
-<link rel="preload" href="/a4a2cefa.03eff292.js" as="script">
+<link rel="preload" href="/styles.741c9ebc.js" as="script">
+<link rel="preload" href="/runtime~main.4ef57bf5.js" as="script">
+<link rel="preload" href="/main.cb4a05c3.js" as="script">
+<link rel="preload" href="/1.c35d2c6d.js" as="script">
+<link rel="preload" href="/2.a27a3490.js" as="script">
+<link rel="preload" href="/3.278c6dda.js" as="script">
+<link rel="preload" href="/ccc49370.45b5b4a2.js" as="script">
+<link rel="preload" href="/2d8fe9ee.93b6439b.js" as="script">
+<link rel="preload" href="/a4a2cefa.1c9bfc96.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_11B0">Skip to main content</button></nav><nav class="navbar navbar--fixed-top navbar--primary"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap= [...]
-<script src="/styles.992e9cec.js"></script>
-<script src="/runtime~main.56f460b8.js"></script>
-<script src="/main.c672b8f9.js"></script>
-<script src="/common.2d967526.js"></script>
-<script src="/2.54f5630c.js"></script>
-<script src="/29.64851b6d.js"></script>
-<script src="/2d8fe9ee.30394a0b.js"></script>
-<script src="/a4a2cefa.03eff292.js"></script>
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_11B0">Skip to main content</button></nav><nav class="navbar navbar--fixed-top navbar--primary"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap= [...]
+<script src="/styles.741c9ebc.js"></script>
+<script src="/runtime~main.4ef57bf5.js"></script>
+<script src="/main.cb4a05c3.js"></script>
+<script src="/1.c35d2c6d.js"></script>
+<script src="/2.a27a3490.js"></script>
+<script src="/3.278c6dda.js"></script>
+<script src="/ccc49370.45b5b4a2.js"></script>
+<script src="/2d8fe9ee.93b6439b.js"></script>
+<script src="/a4a2cefa.1c9bfc96.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 1f18050..5f081e8 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
@@ -8,26 +8,28 @@
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX™" href="/opensearch.xml">
 <script src="https://buttons.github.io/buttons.js"></script><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" name="description" content="@Chao Zhang, Apache APISIX Comitter from Shenzhen Zhiliu Technology Co."><meta data-react-helmet="true" property="og:description" content="@Chao Zhang, Apache APISIX Comitte [...]
-<link rel="preload" href="/styles.992e9cec.js" as="script">
-<link rel="preload" href="/runtime~main.56f460b8.js" as="script">
-<link rel="preload" href="/main.c672b8f9.js" as="script">
-<link rel="preload" href="/common.2d967526.js" as="script">
-<link rel="preload" href="/2.54f5630c.js" as="script">
-<link rel="preload" href="/29.64851b6d.js" as="script">
-<link rel="preload" href="/2d8fe9ee.30394a0b.js" as="script">
-<link rel="preload" href="/1c89ab3b.79ecc6c6.js" as="script">
+<link rel="preload" href="/styles.741c9ebc.js" as="script">
+<link rel="preload" href="/runtime~main.4ef57bf5.js" as="script">
+<link rel="preload" href="/main.cb4a05c3.js" as="script">
+<link rel="preload" href="/1.c35d2c6d.js" as="script">
+<link rel="preload" href="/2.a27a3490.js" as="script">
+<link rel="preload" href="/3.278c6dda.js" as="script">
+<link rel="preload" href="/ccc49370.45b5b4a2.js" as="script">
+<link rel="preload" href="/2d8fe9ee.93b6439b.js" as="script">
+<link rel="preload" href="/1c89ab3b.da3f678d.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_11B0">Skip to main content</button></nav><nav class="navbar navbar--fixed-top navbar--primary"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap= [...]
-</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="/styles.992e9cec.js"></script>
-<script src="/runtime~main.56f460b8.js"></script>
-<script src="/main.c672b8f9.js"></script>
-<script src="/common.2d967526.js"></script>
-<script src="/2.54f5630c.js"></script>
-<script src="/29.64851b6d.js"></script>
-<script src="/2d8fe9ee.30394a0b.js"></script>
-<script src="/1c89ab3b.79ecc6c6.js"></script>
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_11B0">Skip to main content</button></nav><nav class="navbar navbar--fixed-top navbar--primary"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap= [...]
+</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="/styles.741c9ebc.js"></script>
+<script src="/runtime~main.4ef57bf5.js"></script>
+<script src="/main.cb4a05c3.js"></script>
+<script src="/1.c35d2c6d.js"></script>
+<script src="/2.a27a3490.js"></script>
+<script src="/3.278c6dda.js"></script>
+<script src="/ccc49370.45b5b4a2.js"></script>
+<script src="/2d8fe9ee.93b6439b.js"></script>
+<script src="/1c89ab3b.da3f678d.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
new file mode 100644
index 0000000..22c7e3b
--- /dev/null
+++ b/blog/2021/02/08/stable-product-delivery-with-cypress/index.html
@@ -0,0 +1,34 @@
+<!doctype html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+<meta name="generator" content="Docusaurus v2.0.0-alpha.70">
+<link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache APISIX™ Blog RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache APISIX™ Blog Atom Feed">
+<link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX™" href="/opensearch.xml">
+<script src="https://buttons.github.io/buttons.js"></script><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" name="description" content="@LiteSun, Apache APISIX Committer from Shenzhen Zhiliu Technology Co."><meta data-react-helmet="true" property="og:description" content="@LiteSun, Apache APISIX Comm [...]
+<link rel="preload" href="/styles.741c9ebc.js" as="script">
+<link rel="preload" href="/runtime~main.4ef57bf5.js" as="script">
+<link rel="preload" href="/main.cb4a05c3.js" as="script">
+<link rel="preload" href="/1.c35d2c6d.js" as="script">
+<link rel="preload" href="/2.a27a3490.js" as="script">
+<link rel="preload" href="/3.278c6dda.js" as="script">
+<link rel="preload" href="/ccc49370.45b5b4a2.js" as="script">
+<link rel="preload" href="/2d8fe9ee.93b6439b.js" as="script">
+<link rel="preload" href="/47e0bf55.464b2b52.js" as="script">
+</head>
+<body>
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_11B0">Skip to main content</button></nav><nav class="navbar navbar--fixed-top navbar--primary"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap= [...]
+<script src="/styles.741c9ebc.js"></script>
+<script src="/runtime~main.4ef57bf5.js"></script>
+<script src="/main.cb4a05c3.js"></script>
+<script src="/1.c35d2c6d.js"></script>
+<script src="/2.a27a3490.js"></script>
+<script src="/3.278c6dda.js"></script>
+<script src="/ccc49370.45b5b4a2.js"></script>
+<script src="/2d8fe9ee.93b6439b.js"></script>
+<script src="/47e0bf55.464b2b52.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/blog/atom.xml b/blog/atom.xml
index 6f9ff1e..541b4a8 100644
--- a/blog/atom.xml
+++ b/blog/atom.xml
@@ -2,12 +2,19 @@
 <feed xmlns="http://www.w3.org/2005/Atom">
     <id>https://apisix.apache.org/blog</id>
     <title>Apache APISIX™ Blog</title>
-    <updated>2021-01-21T00:00:00.000Z</updated>
+    <updated>2021-02-08T00:00:00.000Z</updated>
     <generator>https://github.com/jpmonette/feed</generator>
     <link rel="alternate" href="https://apisix.apache.org/blog"/>
     <subtitle>Apache APISIX™ Blog</subtitle>
     <icon>https://apisix.apache.org/img/favicon.png</icon>
     <entry>
+        <title type="html"><![CDATA[Stable Product Delivery with Cypress]]></title>
+        <id>Stable Product Delivery with Cypress</id>
+        <link href="https://apisix.apache.org/blog/2021/02/08/stable-product-delivery-with-cypress"/>
+        <updated>2021-02-08T00:00:00.000Z</updated>
+        <summary type="html"><![CDATA[@LiteSun, Apache APISIX Committer from Shenzhen Zhiliu Technology Co.]]></summary>
+    </entry>
+    <entry>
         <title type="html"><![CDATA[Run Ingress APISIX on Amazon EKS]]></title>
         <id>Run Ingress APISIX on Amazon EKS</id>
         <link href="https://apisix.apache.org/blog/2021/01/21/run-ingress-apisix-on-amazon-eks"/>
diff --git a/blog/index.html b/blog/index.html
index e7ac5b2..4671d9c 100644
--- a/blog/index.html
+++ b/blog/index.html
@@ -8,36 +8,40 @@
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX™" href="/opensearch.xml">
 <script src="https://buttons.github.io/buttons.js"></script><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" name="description" content="Blog"><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" name="docsearch:language" content="en"> [...]
-<link rel="preload" href="/styles.992e9cec.js" as="script">
-<link rel="preload" href="/runtime~main.56f460b8.js" as="script">
-<link rel="preload" href="/main.c672b8f9.js" as="script">
-<link rel="preload" href="/common.2d967526.js" as="script">
-<link rel="preload" href="/2.54f5630c.js" as="script">
-<link rel="preload" href="/30.163c5ee4.js" as="script">
-<link rel="preload" href="/2d8fe9ee.30394a0b.js" as="script">
-<link rel="preload" href="/514de2af.539501a7.js" as="script">
-<link rel="preload" href="/5bb67ffc.2fa3b45c.js" as="script">
-<link rel="preload" href="/e02da2c5.0f2eca6c.js" as="script">
-<link rel="preload" href="/37e3b3ea.f669081a.js" as="script">
-<link rel="preload" href="/b2b675dd.42a652db.js" as="script">
+<link rel="preload" href="/styles.741c9ebc.js" as="script">
+<link rel="preload" href="/runtime~main.4ef57bf5.js" as="script">
+<link rel="preload" href="/main.cb4a05c3.js" as="script">
+<link rel="preload" href="/1.c35d2c6d.js" as="script">
+<link rel="preload" href="/2.a27a3490.js" as="script">
+<link rel="preload" href="/3.278c6dda.js" as="script">
+<link rel="preload" href="/a6aa9e1f.34ce0e2d.js" as="script">
+<link rel="preload" href="/2d8fe9ee.93b6439b.js" as="script">
+<link rel="preload" href="/e451ae2c.d86c7846.js" as="script">
+<link rel="preload" href="/514de2af.c71b6f56.js" as="script">
+<link rel="preload" href="/5bb67ffc.da9c8f37.js" as="script">
+<link rel="preload" href="/e02da2c5.fd8e2260.js" as="script">
+<link rel="preload" href="/37e3b3ea.10fab840.js" as="script">
+<link rel="preload" href="/b2b675dd.a0165438.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_11B0">Skip to main content</button></nav><nav class="navbar navbar--fixed-top navbar--primary"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap= [...]
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_11B0">Skip to main content</button></nav><nav class="navbar navbar--fixed-top navbar--primary"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap= [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  </span><span class="token string" style="color:rgb(195, 232, 141)">&quot;headers&quot;</span><span class="token builtin class-name" style="color:rgb(255, 203, 107)">:</span><span class="token plain"> </span><span c [...]
 A pluggable filter chain mechanism allows filters to be written to perform different tasks and inserted into the main server.</p><p><img src="https://static.apiseven.com/filters.png" alt="Envoy filter"></p><h3><a aria-hidden="true" tabindex="-1" class="anchor enhancedAnchor_prK2" id="expansion-method"></a>Expansion method<a class="hash-link" href="#expansion-method" title="Direct link to heading">#</a></h3><p>The existing filters may not meet the user&#x27;s custom requirements. In this  [...]
 In the example, we configured plugin <code>uri-blocker</code> for the route whose prefix is ​​<code>/foo</code>, as well as the block rule of the plugin and the response status when a block is required.</p><h4><a aria-hidden="true" tabindex="-1" class="anchor enhancedAnchor_prK2" id="second-step-parse-request"></a>Second step, parse request<a class="hash-link" href="#second-step-parse-request" title="Direct link to heading">#</a></h4><p>We encapsulated the client request data into <code> [...]
-<script src="/styles.992e9cec.js"></script>
-<script src="/runtime~main.56f460b8.js"></script>
-<script src="/main.c672b8f9.js"></script>
-<script src="/common.2d967526.js"></script>
-<script src="/2.54f5630c.js"></script>
-<script src="/30.163c5ee4.js"></script>
-<script src="/2d8fe9ee.30394a0b.js"></script>
-<script src="/514de2af.539501a7.js"></script>
-<script src="/5bb67ffc.2fa3b45c.js"></script>
-<script src="/e02da2c5.0f2eca6c.js"></script>
-<script src="/37e3b3ea.f669081a.js"></script>
-<script src="/b2b675dd.42a652db.js"></script>
+<script src="/styles.741c9ebc.js"></script>
+<script src="/runtime~main.4ef57bf5.js"></script>
+<script src="/main.cb4a05c3.js"></script>
+<script src="/1.c35d2c6d.js"></script>
+<script src="/2.a27a3490.js"></script>
+<script src="/3.278c6dda.js"></script>
+<script src="/a6aa9e1f.34ce0e2d.js"></script>
+<script src="/2d8fe9ee.93b6439b.js"></script>
+<script src="/e451ae2c.d86c7846.js"></script>
+<script src="/514de2af.c71b6f56.js"></script>
+<script src="/5bb67ffc.da9c8f37.js"></script>
+<script src="/e02da2c5.fd8e2260.js"></script>
+<script src="/37e3b3ea.10fab840.js"></script>
+<script src="/b2b675dd.a0165438.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/rss.xml b/blog/rss.xml
index 6827f3d..ea175e3 100644
--- a/blog/rss.xml
+++ b/blog/rss.xml
@@ -4,10 +4,17 @@
         <title>Apache APISIX™ Blog</title>
         <link>https://apisix.apache.org/blog</link>
         <description>Apache APISIX™ Blog</description>
-        <lastBuildDate>Thu, 21 Jan 2021 00:00:00 GMT</lastBuildDate>
+        <lastBuildDate>Mon, 08 Feb 2021 00:00:00 GMT</lastBuildDate>
         <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
         <generator>https://github.com/jpmonette/feed</generator>
         <item>
+            <title><![CDATA[Stable Product Delivery with Cypress]]></title>
+            <link>https://apisix.apache.org/blog/2021/02/08/stable-product-delivery-with-cypress</link>
+            <guid>Stable Product Delivery with Cypress</guid>
+            <pubDate>Mon, 08 Feb 2021 00:00:00 GMT</pubDate>
+            <description><![CDATA[@LiteSun, Apache APISIX Committer from Shenzhen Zhiliu Technology Co.]]></description>
+        </item>
+        <item>
             <title><![CDATA[Run Ingress APISIX on Amazon EKS]]></title>
             <link>https://apisix.apache.org/blog/2021/01/21/run-ingress-apisix-on-amazon-eks</link>
             <guid>Run Ingress APISIX on Amazon EKS</guid>
diff --git a/c4f5d8e4.d23d83fd.js b/c4f5d8e4.7343a23e.js
similarity index 92%
rename from c4f5d8e4.d23d83fd.js
rename to c4f5d8e4.7343a23e.js
index 3351a8d..3320726 100644
--- a/c4f5d8e4.d23d83fd.js
+++ b/c4f5d8e4.7343a23e.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[21],{92:function(e,t,a){"use strict";a.r(t);var l=a(107),n=a(22),s=a(109),r=a(110),c=a(0);t.default=function(e){var t=Object(n.default)().siteConfig,a=function(){return c.createElement("div",{className:"hero text--center"},c.createElement("div",{className:"container"},c.createElement("div",{className:"inner"},c.createElement("div",{className:"padding-vert--md"},c.createElement("h1",{className:"hero__title"},t.title),c.createElement("p" [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[24],{93:function(e,t,a){"use strict";a.r(t);var l=a(109),n=a(22),s=a(111),r=a(112),c=a(0);t.default=function(e){var t=Object(n.default)().siteConfig,a=function(){return c.createElement("div",{className:"hero text--center"},c.createElement("div",{className:"container"},c.createElement("div",{className:"inner"},c.createElement("div",{className:"padding-vert--md"},c.createElement("h1",{className:"hero__title"},t.title),c.createElement("p" [...]
\ No newline at end of file
diff --git a/ccc49370.45b5b4a2.js b/ccc49370.45b5b4a2.js
new file mode 100644
index 0000000..0201507
--- /dev/null
+++ b/ccc49370.45b5b4a2.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[25],{104:function(e,t,a){"use strict";a.r(t);var n=a(0),l=a.n(n),r=a(112),i=a(142),c=a(109);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/committer-guide/index.html b/committer-guide/index.html
index fcd9357..8b55e27 100644
--- a/committer-guide/index.html
+++ b/committer-guide/index.html
@@ -8,29 +8,29 @@
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX™" href="/opensearch.xml">
 <script src="https://buttons.github.io/buttons.js"></script><title data-react-helmet="true">Committer Guide | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-react-helmet="true" property=" [...]
-<link rel="preload" href="/styles.992e9cec.js" as="script">
-<link rel="preload" href="/runtime~main.56f460b8.js" as="script">
-<link rel="preload" href="/main.c672b8f9.js" as="script">
-<link rel="preload" href="/common.2d967526.js" as="script">
-<link rel="preload" href="/2.54f5630c.js" as="script">
-<link rel="preload" href="/31.c3e6fc2a.js" as="script">
-<link rel="preload" href="/34.f92ba19b.js" as="script">
-<link rel="preload" href="/935f2afb.578e6540.js" as="script">
-<link rel="preload" href="/17896441.5f37a45d.js" as="script">
-<link rel="preload" href="/dcd70f61.42403978.js" as="script">
+<link rel="preload" href="/styles.741c9ebc.js" as="script">
+<link rel="preload" href="/runtime~main.4ef57bf5.js" as="script">
+<link rel="preload" href="/main.cb4a05c3.js" as="script">
+<link rel="preload" href="/1.c35d2c6d.js" as="script">
+<link rel="preload" href="/2.a27a3490.js" as="script">
+<link rel="preload" href="/34.4500fb77.js" as="script">
+<link rel="preload" href="/37.b77cb21b.js" as="script">
+<link rel="preload" href="/935f2afb.cf4d5fdd.js" as="script">
+<link rel="preload" href="/17896441.a4d7c2ff.js" as="script">
+<link rel="preload" href="/dcd70f61.57ede241.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_11B0">Skip to main content</button></nav><nav class="navbar navbar--fixed-top navbar--primary"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap= [...]
-<script src="/styles.992e9cec.js"></script>
-<script src="/runtime~main.56f460b8.js"></script>
-<script src="/main.c672b8f9.js"></script>
-<script src="/common.2d967526.js"></script>
-<script src="/2.54f5630c.js"></script>
-<script src="/31.c3e6fc2a.js"></script>
-<script src="/34.f92ba19b.js"></script>
-<script src="/935f2afb.578e6540.js"></script>
-<script src="/17896441.5f37a45d.js"></script>
-<script src="/dcd70f61.42403978.js"></script>
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_11B0">Skip to main content</button></nav><nav class="navbar navbar--fixed-top navbar--primary"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap= [...]
+<script src="/styles.741c9ebc.js"></script>
+<script src="/runtime~main.4ef57bf5.js"></script>
+<script src="/main.cb4a05c3.js"></script>
+<script src="/1.c35d2c6d.js"></script>
+<script src="/2.a27a3490.js"></script>
+<script src="/34.4500fb77.js"></script>
+<script src="/37.b77cb21b.js"></script>
+<script src="/935f2afb.cf4d5fdd.js"></script>
+<script src="/17896441.a4d7c2ff.js"></script>
+<script src="/dcd70f61.57ede241.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/common.2d967526.js b/common.2d967526.js
deleted file mode 100644
index 8870aeb..0000000
--- a/common.2d967526.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[0],{104:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(130);Object.defineProperty(t,"useThemeConfig",{enumerable:!0,get:function(){return r.useThemeConfig}});var o=n(151);Object.defineProperty(t,"docVersionSearchTag",{enumerable:!0,get:function(){return o.docVersionSearchTag}}),Object.defineProperty(t,"DEFAULT_SEARCH_TAG",{enumerable:!0,get:function(){return o.DEFAULT_SEARCH_TAG}});var i=n(131);Ob [...]
\ No newline at end of file
diff --git a/contributor-guide/index.html b/contributor-guide/index.html
index dd2d18e..feb04a5 100644
--- a/contributor-guide/index.html
+++ b/contributor-guide/index.html
@@ -8,29 +8,29 @@
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX™" href="/opensearch.xml">
 <script src="https://buttons.github.io/buttons.js"></script><title data-react-helmet="true">Contributor Guide | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-react-helmet="true" property [...]
-<link rel="preload" href="/styles.992e9cec.js" as="script">
-<link rel="preload" href="/runtime~main.56f460b8.js" as="script">
-<link rel="preload" href="/main.c672b8f9.js" as="script">
-<link rel="preload" href="/common.2d967526.js" as="script">
-<link rel="preload" href="/2.54f5630c.js" as="script">
-<link rel="preload" href="/31.c3e6fc2a.js" as="script">
-<link rel="preload" href="/34.f92ba19b.js" as="script">
-<link rel="preload" href="/935f2afb.578e6540.js" as="script">
-<link rel="preload" href="/17896441.5f37a45d.js" as="script">
-<link rel="preload" href="/fdbbc319.2145785f.js" as="script">
+<link rel="preload" href="/styles.741c9ebc.js" as="script">
+<link rel="preload" href="/runtime~main.4ef57bf5.js" as="script">
+<link rel="preload" href="/main.cb4a05c3.js" as="script">
+<link rel="preload" href="/1.c35d2c6d.js" as="script">
+<link rel="preload" href="/2.a27a3490.js" as="script">
+<link rel="preload" href="/34.4500fb77.js" as="script">
+<link rel="preload" href="/37.b77cb21b.js" as="script">
+<link rel="preload" href="/935f2afb.cf4d5fdd.js" as="script">
+<link rel="preload" href="/17896441.a4d7c2ff.js" as="script">
+<link rel="preload" href="/fdbbc319.f9c339c1.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_11B0">Skip to main content</button></nav><nav class="navbar navbar--fixed-top navbar--primary"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap= [...]
-<script src="/styles.992e9cec.js"></script>
-<script src="/runtime~main.56f460b8.js"></script>
-<script src="/main.c672b8f9.js"></script>
-<script src="/common.2d967526.js"></script>
-<script src="/2.54f5630c.js"></script>
-<script src="/31.c3e6fc2a.js"></script>
-<script src="/34.f92ba19b.js"></script>
-<script src="/935f2afb.578e6540.js"></script>
-<script src="/17896441.5f37a45d.js"></script>
-<script src="/fdbbc319.2145785f.js"></script>
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_11B0">Skip to main content</button></nav><nav class="navbar navbar--fixed-top navbar--primary"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap= [...]
+<script src="/styles.741c9ebc.js"></script>
+<script src="/runtime~main.4ef57bf5.js"></script>
+<script src="/main.cb4a05c3.js"></script>
+<script src="/1.c35d2c6d.js"></script>
+<script src="/2.a27a3490.js"></script>
+<script src="/34.4500fb77.js"></script>
+<script src="/37.b77cb21b.js"></script>
+<script src="/935f2afb.cf4d5fdd.js"></script>
+<script src="/17896441.a4d7c2ff.js"></script>
+<script src="/fdbbc319.f9c339c1.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/dcd70f61.42403978.js b/dcd70f61.42403978.js
deleted file mode 100644
index 083e89e..0000000
--- a/dcd70f61.42403978.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[22],{93:function(e,t,i){"use strict";i.r(t),i.d(t,"frontMatter",(function(){return r})),i.d(t,"metadata",(function(){return c})),i.d(t,"toc",(function(){return b})),i.d(t,"default",(function(){return l}));var o=i(3),a=i(7),n=(i(0),i(106)),r={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/do [...]
\ No newline at end of file
diff --git a/dcd70f61.57ede241.js b/dcd70f61.57ede241.js
new file mode 100644
index 0000000..965549b
--- /dev/null
+++ b/dcd70f61.57ede241.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[26],{106:function(e,t,n){"use strict";n.d(t,"a",(function(){return m})),n.d(t,"b",(function(){return d}));var o=n(0),r=n.n(o);function 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 o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})) [...]
\ No newline at end of file
diff --git a/docs/index.html b/docs/index.html
index 3af46e5..8f75b86 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -8,29 +8,29 @@
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX™" href="/opensearch.xml">
 <script src="https://buttons.github.io/buttons.js"></script><title data-react-helmet="true">Subscribe Guide | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-react-helmet="true" property=" [...]
-<link rel="preload" href="/styles.992e9cec.js" as="script">
-<link rel="preload" href="/runtime~main.56f460b8.js" as="script">
-<link rel="preload" href="/main.c672b8f9.js" as="script">
-<link rel="preload" href="/common.2d967526.js" as="script">
-<link rel="preload" href="/2.54f5630c.js" as="script">
-<link rel="preload" href="/31.c3e6fc2a.js" as="script">
-<link rel="preload" href="/34.f92ba19b.js" as="script">
-<link rel="preload" href="/935f2afb.578e6540.js" as="script">
-<link rel="preload" href="/17896441.5f37a45d.js" as="script">
-<link rel="preload" href="/2da51850.51e1ace6.js" as="script">
+<link rel="preload" href="/styles.741c9ebc.js" as="script">
+<link rel="preload" href="/runtime~main.4ef57bf5.js" as="script">
+<link rel="preload" href="/main.cb4a05c3.js" as="script">
+<link rel="preload" href="/1.c35d2c6d.js" as="script">
+<link rel="preload" href="/2.a27a3490.js" as="script">
+<link rel="preload" href="/34.4500fb77.js" as="script">
+<link rel="preload" href="/37.b77cb21b.js" as="script">
+<link rel="preload" href="/935f2afb.cf4d5fdd.js" as="script">
+<link rel="preload" href="/17896441.a4d7c2ff.js" as="script">
+<link rel="preload" href="/2da51850.2a146107.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_11B0">Skip to main content</button></nav><nav class="navbar navbar--fixed-top navbar--primary"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap= [...]
-<script src="/styles.992e9cec.js"></script>
-<script src="/runtime~main.56f460b8.js"></script>
-<script src="/main.c672b8f9.js"></script>
-<script src="/common.2d967526.js"></script>
-<script src="/2.54f5630c.js"></script>
-<script src="/31.c3e6fc2a.js"></script>
-<script src="/34.f92ba19b.js"></script>
-<script src="/935f2afb.578e6540.js"></script>
-<script src="/17896441.5f37a45d.js"></script>
-<script src="/2da51850.51e1ace6.js"></script>
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_11B0">Skip to main content</button></nav><nav class="navbar navbar--fixed-top navbar--primary"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap= [...]
+<script src="/styles.741c9ebc.js"></script>
+<script src="/runtime~main.4ef57bf5.js"></script>
+<script src="/main.cb4a05c3.js"></script>
+<script src="/1.c35d2c6d.js"></script>
+<script src="/2.a27a3490.js"></script>
+<script src="/34.4500fb77.js"></script>
+<script src="/37.b77cb21b.js"></script>
+<script src="/935f2afb.cf4d5fdd.js"></script>
+<script src="/17896441.a4d7c2ff.js"></script>
+<script src="/2da51850.2a146107.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/downloads/index.html b/downloads/index.html
index a1c8132..8c58fde 100644
--- a/downloads/index.html
+++ b/downloads/index.html
@@ -8,16 +8,16 @@
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX™" href="/opensearch.xml">
 <script src="https://buttons.github.io/buttons.js"></script><title data-react-helmet="true">Downloads | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-react-helmet="true" property="og:tit [...]
-<link rel="preload" href="/styles.992e9cec.js" as="script">
-<link rel="preload" href="/runtime~main.56f460b8.js" as="script">
-<link rel="preload" href="/main.c672b8f9.js" as="script">
-<link rel="preload" href="/common.2d967526.js" as="script">
-<link rel="preload" href="/2.54f5630c.js" as="script">
-<link rel="preload" href="/31.c3e6fc2a.js" as="script">
-<link rel="preload" href="/34.f92ba19b.js" as="script">
-<link rel="preload" href="/935f2afb.578e6540.js" as="script">
-<link rel="preload" href="/17896441.5f37a45d.js" as="script">
-<link rel="preload" href="/f9e23376.7272dd5a.js" as="script">
+<link rel="preload" href="/styles.741c9ebc.js" as="script">
+<link rel="preload" href="/runtime~main.4ef57bf5.js" as="script">
+<link rel="preload" href="/main.cb4a05c3.js" as="script">
+<link rel="preload" href="/1.c35d2c6d.js" as="script">
+<link rel="preload" href="/2.a27a3490.js" as="script">
+<link rel="preload" href="/34.4500fb77.js" as="script">
+<link rel="preload" href="/37.b77cb21b.js" as="script">
+<link rel="preload" href="/935f2afb.cf4d5fdd.js" as="script">
+<link rel="preload" href="/17896441.a4d7c2ff.js" as="script">
+<link rel="preload" href="/f9e23376.7d1336b7.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -29,16 +29,16 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">or</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">pgpv apache-apisix-********.asc</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">or</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">pgp apache-apisix-********.asc</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_2GIj">Copy</button></div></div></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix-website/edit/master/website/docs/download.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2 [...]
-<script src="/styles.992e9cec.js"></script>
-<script src="/runtime~main.56f460b8.js"></script>
-<script src="/main.c672b8f9.js"></script>
-<script src="/common.2d967526.js"></script>
-<script src="/2.54f5630c.js"></script>
-<script src="/31.c3e6fc2a.js"></script>
-<script src="/34.f92ba19b.js"></script>
-<script src="/935f2afb.578e6540.js"></script>
-<script src="/17896441.5f37a45d.js"></script>
-<script src="/f9e23376.7272dd5a.js"></script>
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">pgp apache-apisix-********.asc</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_2GIj">Copy</button></div></div></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/apisix-website/edit/master/website/docs/download.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2 [...]
+<script src="/styles.741c9ebc.js"></script>
+<script src="/runtime~main.4ef57bf5.js"></script>
+<script src="/main.cb4a05c3.js"></script>
+<script src="/1.c35d2c6d.js"></script>
+<script src="/2.a27a3490.js"></script>
+<script src="/34.4500fb77.js"></script>
+<script src="/37.b77cb21b.js"></script>
+<script src="/935f2afb.cf4d5fdd.js"></script>
+<script src="/17896441.a4d7c2ff.js"></script>
+<script src="/f9e23376.7d1336b7.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/e02da2c5.0f2eca6c.js b/e02da2c5.0f2eca6c.js
deleted file mode 100644
index 5966b9f..0000000
--- a/e02da2c5.0f2eca6c.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[23],{94:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return r})),n.d(t,"metadata",(function(){return l})),n.d(t,"toc",(function(){return c})),n.d(t,"default",(function(){return p}));var a=n(3),i=n(7),o=(n(0),n(106)),r={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/3300066 [...]
\ No newline at end of file
diff --git a/e02da2c5.fd8e2260.js b/e02da2c5.fd8e2260.js
new file mode 100644
index 0000000..41fa42c
--- /dev/null
+++ b/e02da2c5.fd8e2260.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[27],{106:function(e,t,n){"use strict";n.d(t,"a",(function(){return b})),n.d(t,"b",(function(){return m}));var a=n(0),r=n.n(a);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})) [...]
\ No newline at end of file
diff --git a/e451ae2c.d86c7846.js b/e451ae2c.d86c7846.js
new file mode 100644
index 0000000..3df1df9
--- /dev/null
+++ b/e451ae2c.d86c7846.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[28],{106:function(e,t,n){"use strict";n.d(t,"a",(function(){return p})),n.d(t,"b",(function(){return d}));var a=n(0),r=n.n(a);function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})) [...]
\ No newline at end of file
diff --git a/f9e23376.7272dd5a.js b/f9e23376.7272dd5a.js
deleted file mode 100644
index 64d43a8..0000000
--- a/f9e23376.7272dd5a.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[24],{97:function(e,a,t){"use strict";t.r(a),t.d(a,"frontMatter",(function(){return i})),t.d(a,"metadata",(function(){return l})),t.d(a,"toc",(function(){return c})),t.d(a,"default",(function(){return b}));var r=t(3),n=t(7),s=(t(0),t(106)),i={id:"downloads",title:"Downloads"},l={unversionedId:"downloads",id:"downloads",isDocsHomePage:!1,title:"Downloads",description:"Apache APISIX is a dynamic, real-time, high-performance Cloud-Native A [...]
\ No newline at end of file
diff --git a/f9e23376.7d1336b7.js b/f9e23376.7d1336b7.js
new file mode 100644
index 0000000..db73cb4
--- /dev/null
+++ b/f9e23376.7d1336b7.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[29],{106:function(e,a,t){"use strict";t.d(a,"a",(function(){return b})),t.d(a,"b",(function(){return u}));var r=t(0),n=t.n(r);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 s(e,a){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);a&&(r=r.filter((function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})) [...]
\ No newline at end of file
diff --git a/fdbbc319.2145785f.js b/fdbbc319.2145785f.js
deleted file mode 100644
index f31b52c..0000000
--- a/fdbbc319.2145785f.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[25],{98:function(e,t,i){"use strict";i.r(t),i.d(t,"frontMatter",(function(){return n})),i.d(t,"metadata",(function(){return s})),i.d(t,"toc",(function(){return c})),i.d(t,"default",(function(){return b}));var o=i(3),a=i(7),r=(i(0),i(106)),n={id:"contributor-guide",title:"Contributor Guide"},s={unversionedId:"contributor-guide",id:"contributor-guide",isDocsHomePage:!1,title:"Contributor Guide",description:"Please fee free to report bugs [...]
\ No newline at end of file
diff --git a/fdbbc319.f9c339c1.js b/fdbbc319.f9c339c1.js
new file mode 100644
index 0000000..6b4b6f6
--- /dev/null
+++ b/fdbbc319.f9c339c1.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[30],{100:function(e,t,r){"use strict";r.r(t),r.d(t,"frontMatter",(function(){return i})),r.d(t,"metadata",(function(){return c})),r.d(t,"toc",(function(){return l})),r.d(t,"default",(function(){return b}));var n=r(3),o=r(7),a=(r(0),r(106)),i={id:"contributor-guide",title:"Contributor Guide"},c={unversionedId:"contributor-guide",id:"contributor-guide",isDocsHomePage:!1,title:"Contributor Guide",description:"Please fee free to report bug [...]
\ No newline at end of file
diff --git a/help/index.html b/help/index.html
index 3028f6a..c48eec3 100644
--- a/help/index.html
+++ b/help/index.html
@@ -8,21 +8,21 @@
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX™" href="/opensearch.xml">
 <script src="https://buttons.github.io/buttons.js"></script><title data-react-helmet="true">Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Apache APISIX™"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="default"><link data-react-helmet="true" rel="shortcut icon" href="/img/favicon. [...]
-<link rel="preload" href="/styles.992e9cec.js" as="script">
-<link rel="preload" href="/runtime~main.56f460b8.js" as="script">
-<link rel="preload" href="/main.c672b8f9.js" as="script">
-<link rel="preload" href="/common.2d967526.js" as="script">
-<link rel="preload" href="/2.54f5630c.js" as="script">
-<link rel="preload" href="/7e37206e.1dcb01fa.js" as="script">
+<link rel="preload" href="/styles.741c9ebc.js" as="script">
+<link rel="preload" href="/runtime~main.4ef57bf5.js" as="script">
+<link rel="preload" href="/main.cb4a05c3.js" as="script">
+<link rel="preload" href="/1.c35d2c6d.js" as="script">
+<link rel="preload" href="/2.a27a3490.js" as="script">
+<link rel="preload" href="/7e37206e.349c8511.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_11B0">Skip to main content</button></nav><nav class="navbar navbar--fixed-top navbar--primary"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap= [...]
-<script src="/styles.992e9cec.js"></script>
-<script src="/runtime~main.56f460b8.js"></script>
-<script src="/main.c672b8f9.js"></script>
-<script src="/common.2d967526.js"></script>
-<script src="/2.54f5630c.js"></script>
-<script src="/7e37206e.1dcb01fa.js"></script>
+<script src="/styles.741c9ebc.js"></script>
+<script src="/runtime~main.4ef57bf5.js"></script>
+<script src="/main.cb4a05c3.js"></script>
+<script src="/1.c35d2c6d.js"></script>
+<script src="/2.a27a3490.js"></script>
+<script src="/7e37206e.349c8511.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/index.html b/index.html
index ea2c7e8..9110ea5 100644
--- a/index.html
+++ b/index.html
@@ -8,21 +8,21 @@
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX™" href="/opensearch.xml">
 <script src="https://buttons.github.io/buttons.js"></script><title data-react-helmet="true">Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Apache APISIX™"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="default"><link data-react-helmet="true" rel="shortcut icon" href="/img/favicon. [...]
-<link rel="preload" href="/styles.992e9cec.js" as="script">
-<link rel="preload" href="/runtime~main.56f460b8.js" as="script">
-<link rel="preload" href="/main.c672b8f9.js" as="script">
-<link rel="preload" href="/common.2d967526.js" as="script">
-<link rel="preload" href="/2.54f5630c.js" as="script">
-<link rel="preload" href="/c4f5d8e4.d23d83fd.js" as="script">
+<link rel="preload" href="/styles.741c9ebc.js" as="script">
+<link rel="preload" href="/runtime~main.4ef57bf5.js" as="script">
+<link rel="preload" href="/main.cb4a05c3.js" as="script">
+<link rel="preload" href="/1.c35d2c6d.js" as="script">
+<link rel="preload" href="/2.a27a3490.js" as="script">
+<link rel="preload" href="/c4f5d8e4.7343a23e.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <div class="baseUrlIssueBanner_1-cE" style="border:solid red thick;background-color:#ffe6b3;margin:20px;padding:20px;font-size:20px"><p style="font-weight:bold;font-size:30px">Your Docusaurus site did not load properly.</p><p>A very common reason is a wrong site <a href="https://v2.docusaurus.io/docs/docusaurus.config.js/#baseurl" style="font-weight:bold">baseUrl configuration</a>.</p><p>Current configured baseUrl = <span style="font-weight:bold;color:red">/</span>  (default value)</p><p [...]
-<script src="/styles.992e9cec.js"></script>
-<script src="/runtime~main.56f460b8.js"></script>
-<script src="/main.c672b8f9.js"></script>
-<script src="/common.2d967526.js"></script>
-<script src="/2.54f5630c.js"></script>
-<script src="/c4f5d8e4.d23d83fd.js"></script>
+<script src="/styles.741c9ebc.js"></script>
+<script src="/runtime~main.4ef57bf5.js"></script>
+<script src="/main.cb4a05c3.js"></script>
+<script src="/1.c35d2c6d.js"></script>
+<script src="/2.a27a3490.js"></script>
+<script src="/c4f5d8e4.7343a23e.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/main.c672b8f9.js b/main.c672b8f9.js
deleted file mode 100644
index 62b0fd7..0000000
--- a/main.c672b8f9.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/*! For license information please see main.c672b8f9.js.LICENSE.txt */
-(window.webpackJsonp=window.webpackJsonp||[]).push([[26],[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 w})),n.d(t,"c",(function(){return T})),n.d(t,"d",(function(){return _})),n.d(t,"e",(function(){return b})),n.d(t,"f",(function(){return L})),n.d(t,"g",(function(){return j})),n.d(t,"h",(function(){return g})),n.d(t,"i",(function(){return S})),n.d(t,"j",(functio [...]
\ No newline at end of file
diff --git a/main.cb4a05c3.js b/main.cb4a05c3.js
new file mode 100644
index 0000000..0ddc311
--- /dev/null
+++ b/main.cb4a05c3.js
@@ -0,0 +1,2 @@
+/*! For license information please see main.cb4a05c3.js.LICENSE.txt */
+(window.webpackJsonp=window.webpackJsonp||[]).push([[31],[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 w})),n.d(t,"c",(function(){return T})),n.d(t,"d",(function(){return _})),n.d(t,"e",(function(){return b})),n.d(t,"f",(function(){return L})),n.d(t,"g",(function(){return j})),n.d(t,"h",(function(){return g})),n.d(t,"i",(function(){return S})),n.d(t,"j",(functio [...]
\ No newline at end of file
diff --git a/main.c672b8f9.js.LICENSE.txt b/main.cb4a05c3.js.LICENSE.txt
similarity index 100%
rename from main.c672b8f9.js.LICENSE.txt
rename to main.cb4a05c3.js.LICENSE.txt
diff --git a/release-guide/index.html b/release-guide/index.html
index 1dec17e..9ca0c9d 100644
--- a/release-guide/index.html
+++ b/release-guide/index.html
@@ -8,16 +8,16 @@
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX™" href="/opensearch.xml">
 <script src="https://buttons.github.io/buttons.js"></script><title data-react-helmet="true">Release Guide | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-react-helmet="true" property="og [...]
-<link rel="preload" href="/styles.992e9cec.js" as="script">
-<link rel="preload" href="/runtime~main.56f460b8.js" as="script">
-<link rel="preload" href="/main.c672b8f9.js" as="script">
-<link rel="preload" href="/common.2d967526.js" as="script">
-<link rel="preload" href="/2.54f5630c.js" as="script">
-<link rel="preload" href="/31.c3e6fc2a.js" as="script">
-<link rel="preload" href="/34.f92ba19b.js" as="script">
-<link rel="preload" href="/935f2afb.578e6540.js" as="script">
-<link rel="preload" href="/17896441.5f37a45d.js" as="script">
-<link rel="preload" href="/812d7c14.1601244b.js" as="script">
+<link rel="preload" href="/styles.741c9ebc.js" as="script">
+<link rel="preload" href="/runtime~main.4ef57bf5.js" as="script">
+<link rel="preload" href="/main.cb4a05c3.js" as="script">
+<link rel="preload" href="/1.c35d2c6d.js" as="script">
+<link rel="preload" href="/2.a27a3490.js" as="script">
+<link rel="preload" href="/34.4500fb77.js" as="script">
+<link rel="preload" href="/37.b77cb21b.js" as="script">
+<link rel="preload" href="/935f2afb.cf4d5fdd.js" as="script">
+<link rel="preload" href="/17896441.a4d7c2ff.js" as="script">
+<link rel="preload" href="/812d7c14.eb81701f.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -39,16 +39,16 @@
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"># check files</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ cd .. &amp;&amp; tree</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">├── 1.0</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">│   ├── apache-apisix-1 [...]
 </span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">1 directory, 4 files</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"># add files to SVN</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ svn add *</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">A         1.0</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">A  (bin)  1.0/apache-apisix-1.0-src.tar.gz.asc</span></div><div class="token-line" style="color:#bfc7d5"><span [...]
-</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"># commit to Apache SVN</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ svn --username=${Apache username} commit -m &quot;release 1.0&quot;</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Adding         1.0</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Adding  (bin)  1.0/apache-apisix-1.0-src.ta [...]
-<script src="/styles.992e9cec.js"></script>
-<script src="/runtime~main.56f460b8.js"></script>
-<script src="/main.c672b8f9.js"></script>
-<script src="/common.2d967526.js"></script>
-<script src="/2.54f5630c.js"></script>
-<script src="/31.c3e6fc2a.js"></script>
-<script src="/34.f92ba19b.js"></script>
-<script src="/935f2afb.578e6540.js"></script>
-<script src="/17896441.5f37a45d.js"></script>
-<script src="/812d7c14.1601244b.js"></script>
+</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"># commit to Apache SVN</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ svn --username=${Apache username} commit -m &quot;release 1.0&quot;</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Adding         1.0</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Adding  (bin)  1.0/apache-apisix-1.0-src.ta [...]
+<script src="/styles.741c9ebc.js"></script>
+<script src="/runtime~main.4ef57bf5.js"></script>
+<script src="/main.cb4a05c3.js"></script>
+<script src="/1.c35d2c6d.js"></script>
+<script src="/2.a27a3490.js"></script>
+<script src="/34.4500fb77.js"></script>
+<script src="/37.b77cb21b.js"></script>
+<script src="/935f2afb.cf4d5fdd.js"></script>
+<script src="/17896441.a4d7c2ff.js"></script>
+<script src="/812d7c14.eb81701f.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/runtime~main.4ef57bf5.js b/runtime~main.4ef57bf5.js
new file mode 100644
index 0000000..d4f851c
--- /dev/null
+++ b/runtime~main.4ef57bf5.js
@@ -0,0 +1 @@
+!function(e){function r(r){for(var a,o,f=r[0],d=r[1],b=r[2],u=0,l=[];u<f.length;u++)o=f[u],Object.prototype.hasOwnProperty.call(n,o)&&n[o]&&l.push(n[o][0]),n[o]=0;for(a in d)Object.prototype.hasOwnProperty.call(d,a)&&(e[a]=d[a]);for(i&&i(r);l.length;)l.shift()();return c.push.apply(c,b||[]),t()}function t(){for(var e,r=0;r<c.length;r++){for(var t=c[r],a=!0,o=1;o<t.length;o++){var d=t[o];0!==n[d]&&(a=!1)}a&&(c.splice(r--,1),e=f(f.s=t[0]))}return e}var a={},n={32:0},c=[];function o(e){retu [...]
\ No newline at end of file
diff --git a/runtime~main.56f460b8.js b/runtime~main.56f460b8.js
deleted file mode 100644
index 4fba100..0000000
--- a/runtime~main.56f460b8.js
+++ /dev/null
@@ -1 +0,0 @@
-!function(e){function r(r){for(var n,c,f=r[0],d=r[1],u=r[2],i=0,l=[];i<f.length;i++)c=f[i],Object.prototype.hasOwnProperty.call(a,c)&&a[c]&&l.push(a[c][0]),a[c]=0;for(n in d)Object.prototype.hasOwnProperty.call(d,n)&&(e[n]=d[n]);for(b&&b(r);l.length;)l.shift()();return o.push.apply(o,u||[]),t()}function t(){for(var e,r=0;r<o.length;r++){for(var t=o[r],n=!0,c=1;c<t.length;c++){var d=t[c];0!==a[d]&&(n=!1)}n&&(o.splice(r--,1),e=f(f.s=t[0]))}return e}var n={},a={27:0},o=[];function c(e){retu [...]
\ No newline at end of file
diff --git a/search/index.html b/search/index.html
index 53702df..a55a456 100644
--- a/search/index.html
+++ b/search/index.html
@@ -8,21 +8,21 @@
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX™" href="/opensearch.xml">
 <script src="https://buttons.github.io/buttons.js"></script><title data-react-helmet="true">Search the documentation | Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Apache APISIX™"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="default"><meta data-react-helmet="true" property="ro [...]
-<link rel="preload" href="/styles.992e9cec.js" as="script">
-<link rel="preload" href="/runtime~main.56f460b8.js" as="script">
-<link rel="preload" href="/main.c672b8f9.js" as="script">
-<link rel="preload" href="/common.2d967526.js" as="script">
-<link rel="preload" href="/2.54f5630c.js" as="script">
-<link rel="preload" href="/28.556d035e.js" as="script">
+<link rel="preload" href="/styles.741c9ebc.js" as="script">
+<link rel="preload" href="/runtime~main.4ef57bf5.js" as="script">
+<link rel="preload" href="/main.cb4a05c3.js" as="script">
+<link rel="preload" href="/1.c35d2c6d.js" as="script">
+<link rel="preload" href="/2.a27a3490.js" as="script">
+<link rel="preload" href="/33.04527ba4.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_11B0">Skip to main content</button></nav><nav class="navbar navbar--fixed-top navbar--primary"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap= [...]
-<script src="/styles.992e9cec.js"></script>
-<script src="/runtime~main.56f460b8.js"></script>
-<script src="/main.c672b8f9.js"></script>
-<script src="/common.2d967526.js"></script>
-<script src="/2.54f5630c.js"></script>
-<script src="/28.556d035e.js"></script>
+<script src="/styles.741c9ebc.js"></script>
+<script src="/runtime~main.4ef57bf5.js"></script>
+<script src="/main.cb4a05c3.js"></script>
+<script src="/1.c35d2c6d.js"></script>
+<script src="/2.a27a3490.js"></script>
+<script src="/33.04527ba4.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/security/index.html b/security/index.html
index 62fd361..64bb36e 100644
--- a/security/index.html
+++ b/security/index.html
@@ -8,29 +8,29 @@
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX™" href="/opensearch.xml">
 <script src="https://buttons.github.io/buttons.js"></script><title data-react-helmet="true">Security | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-react-helmet="true" property="og:titl [...]
-<link rel="preload" href="/styles.992e9cec.js" as="script">
-<link rel="preload" href="/runtime~main.56f460b8.js" as="script">
-<link rel="preload" href="/main.c672b8f9.js" as="script">
-<link rel="preload" href="/common.2d967526.js" as="script">
-<link rel="preload" href="/2.54f5630c.js" as="script">
-<link rel="preload" href="/31.c3e6fc2a.js" as="script">
-<link rel="preload" href="/34.f92ba19b.js" as="script">
-<link rel="preload" href="/935f2afb.578e6540.js" as="script">
-<link rel="preload" href="/17896441.5f37a45d.js" as="script">
-<link rel="preload" href="/638581dc.84292407.js" as="script">
+<link rel="preload" href="/styles.741c9ebc.js" as="script">
+<link rel="preload" href="/runtime~main.4ef57bf5.js" as="script">
+<link rel="preload" href="/main.cb4a05c3.js" as="script">
+<link rel="preload" href="/1.c35d2c6d.js" as="script">
+<link rel="preload" href="/2.a27a3490.js" as="script">
+<link rel="preload" href="/34.4500fb77.js" as="script">
+<link rel="preload" href="/37.b77cb21b.js" as="script">
+<link rel="preload" href="/935f2afb.cf4d5fdd.js" as="script">
+<link rel="preload" href="/17896441.a4d7c2ff.js" as="script">
+<link rel="preload" href="/638581dc.b9d02b31.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_11B0">Skip to main content</button></nav><nav class="navbar navbar--fixed-top navbar--primary"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap= [...]
-<script src="/styles.992e9cec.js"></script>
-<script src="/runtime~main.56f460b8.js"></script>
-<script src="/main.c672b8f9.js"></script>
-<script src="/common.2d967526.js"></script>
-<script src="/2.54f5630c.js"></script>
-<script src="/31.c3e6fc2a.js"></script>
-<script src="/34.f92ba19b.js"></script>
-<script src="/935f2afb.578e6540.js"></script>
-<script src="/17896441.5f37a45d.js"></script>
-<script src="/638581dc.84292407.js"></script>
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_11B0">Skip to main content</button></nav><nav class="navbar navbar--fixed-top navbar--primary"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap= [...]
+<script src="/styles.741c9ebc.js"></script>
+<script src="/runtime~main.4ef57bf5.js"></script>
+<script src="/main.cb4a05c3.js"></script>
+<script src="/1.c35d2c6d.js"></script>
+<script src="/2.a27a3490.js"></script>
+<script src="/34.4500fb77.js"></script>
+<script src="/37.b77cb21b.js"></script>
+<script src="/935f2afb.cf4d5fdd.js"></script>
+<script src="/17896441.a4d7c2ff.js"></script>
+<script src="/638581dc.b9d02b31.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/sitemap.xml b/sitemap.xml
index 090cf0a..88da198 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:mobile="http://www.google.com/schemas/sitemap-mobile/1.0" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://apisix.apache.org/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url> [...]
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:mobile="http://www.google.com/schemas/sitemap-mobile/1.0" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://apisix.apache.org/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url> [...]
\ No newline at end of file
diff --git a/styles.741c9ebc.js b/styles.741c9ebc.js
new file mode 100644
index 0000000..a33eb91
--- /dev/null
+++ b/styles.741c9ebc.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[0],[,,,,,,,,,,,,,,,,,function(e,n,o){},,,,,,,,,,,,,,,,,,,,function(e,n,o){e.exports={baseUrlIssueBanner:"baseUrlIssueBanner_1-cE"}},,,,,,,,,,function(e,n,o){},,,,function(e,n,o){},function(e,n,o){},,,function(e,n,o){e.exports={tableOfContents:"tableOfContents_2xL-",docItemContainer:"docItemContainer_1Kik"}},function(e,n,o){e.exports={iconEdit:"iconEdit_2LL7"}},function(e,n,o){e.exports={codeBlockContent:"codeBlockContent_actS",codeBloc [...]
\ No newline at end of file
diff --git a/styles.992e9cec.js b/styles.992e9cec.js
deleted file mode 100644
index 78874c2..0000000
--- a/styles.992e9cec.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[1],[,,,,,,,,,,,,,,,,,function(e,n,o){},,,,,,,,,,,,,,,,,,,,function(e,n,o){e.exports={baseUrlIssueBanner:"baseUrlIssueBanner_1-cE"}},,,,,,,,,,function(e,n,o){},,,,function(e,n,o){},function(e,n,o){},,,function(e,n,o){e.exports={codeBlockContent:"codeBlockContent_actS",codeBlockTitle:"codeBlockTitle_2eSY",codeBlock:"codeBlock_tuNs",codeBlockWithTitle:"codeBlockWithTitle_1UkA",copyButton:"copyButton_2GIj",codeBlockLines:"codeBlockLines_3u [...]
\ No newline at end of file
diff --git a/team/index.html b/team/index.html
index 0fed9fc..1a30cf9 100644
--- a/team/index.html
+++ b/team/index.html
@@ -8,29 +8,29 @@
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX™" href="/opensearch.xml">
 <script src="https://buttons.github.io/buttons.js"></script><title data-react-helmet="true">Team | Apache APISIX™</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-react-helmet="true" property="og:title" c [...]
-<link rel="preload" href="/styles.992e9cec.js" as="script">
-<link rel="preload" href="/runtime~main.56f460b8.js" as="script">
-<link rel="preload" href="/main.c672b8f9.js" as="script">
-<link rel="preload" href="/common.2d967526.js" as="script">
-<link rel="preload" href="/2.54f5630c.js" as="script">
-<link rel="preload" href="/31.c3e6fc2a.js" as="script">
-<link rel="preload" href="/34.f92ba19b.js" as="script">
-<link rel="preload" href="/935f2afb.578e6540.js" as="script">
-<link rel="preload" href="/17896441.5f37a45d.js" as="script">
-<link rel="preload" href="/2275ea3b.347e70b8.js" as="script">
+<link rel="preload" href="/styles.741c9ebc.js" as="script">
+<link rel="preload" href="/runtime~main.4ef57bf5.js" as="script">
+<link rel="preload" href="/main.cb4a05c3.js" as="script">
+<link rel="preload" href="/1.c35d2c6d.js" as="script">
+<link rel="preload" href="/2.a27a3490.js" as="script">
+<link rel="preload" href="/34.4500fb77.js" as="script">
+<link rel="preload" href="/37.b77cb21b.js" as="script">
+<link rel="preload" href="/935f2afb.cf4d5fdd.js" as="script">
+<link rel="preload" href="/17896441.a4d7c2ff.js" as="script">
+<link rel="preload" href="/2275ea3b.56b9f8c9.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_11B0">Skip to main content</button></nav><nav class="navbar navbar--fixed-top navbar--primary"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap= [...]
-<script src="/styles.992e9cec.js"></script>
-<script src="/runtime~main.56f460b8.js"></script>
-<script src="/main.c672b8f9.js"></script>
-<script src="/common.2d967526.js"></script>
-<script src="/2.54f5630c.js"></script>
-<script src="/31.c3e6fc2a.js"></script>
-<script src="/34.f92ba19b.js"></script>
-<script src="/935f2afb.578e6540.js"></script>
-<script src="/17896441.5f37a45d.js"></script>
-<script src="/2275ea3b.347e70b8.js"></script>
+<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_11B0">Skip to main content</button></nav><nav class="navbar navbar--fixed-top navbar--primary"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap= [...]
+<script src="/styles.741c9ebc.js"></script>
+<script src="/runtime~main.4ef57bf5.js"></script>
+<script src="/main.cb4a05c3.js"></script>
+<script src="/1.c35d2c6d.js"></script>
+<script src="/2.a27a3490.js"></script>
+<script src="/34.4500fb77.js"></script>
+<script src="/37.b77cb21b.js"></script>
+<script src="/935f2afb.cf4d5fdd.js"></script>
+<script src="/17896441.a4d7c2ff.js"></script>
+<script src="/2275ea3b.56b9f8c9.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/users/index.html b/users/index.html
index 1bf2b56..4a491c2 100644
--- a/users/index.html
+++ b/users/index.html
@@ -8,21 +8,21 @@
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache APISIX™ Blog Atom Feed">
 <link rel="search" type="application/opensearchdescription+xml" title="Apache APISIX™" href="/opensearch.xml">
 <script src="https://buttons.github.io/buttons.js"></script><title data-react-helmet="true">Apache APISIX™</title><meta data-react-helmet="true" property="og:title" content="Apache APISIX™"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="default"><link data-react-helmet="true" rel="shortcut icon" href="/img/favicon. [...]
-<link rel="preload" href="/styles.992e9cec.js" as="script">
-<link rel="preload" href="/runtime~main.56f460b8.js" as="script">
-<link rel="preload" href="/main.c672b8f9.js" as="script">
-<link rel="preload" href="/common.2d967526.js" as="script">
-<link rel="preload" href="/2.54f5630c.js" as="script">
-<link rel="preload" href="/1dba9094.931ac078.js" as="script">
+<link rel="preload" href="/styles.741c9ebc.js" as="script">
+<link rel="preload" href="/runtime~main.4ef57bf5.js" as="script">
+<link rel="preload" href="/main.cb4a05c3.js" as="script">
+<link rel="preload" href="/1.c35d2c6d.js" as="script">
+<link rel="preload" href="/2.a27a3490.js" as="script">
+<link rel="preload" href="/1dba9094.5a8a453a.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_11B0">Skip to main content</button></nav><nav class="navbar navbar--fixed-top navbar--primary"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap= [...]
-<script src="/styles.992e9cec.js"></script>
-<script src="/runtime~main.56f460b8.js"></script>
-<script src="/main.c672b8f9.js"></script>
-<script src="/common.2d967526.js"></script>
-<script src="/2.54f5630c.js"></script>
-<script src="/1dba9094.931ac078.js"></script>
+<script src="/styles.741c9ebc.js"></script>
+<script src="/runtime~main.4ef57bf5.js"></script>
+<script src="/main.cb4a05c3.js"></script>
+<script src="/1.c35d2c6d.js"></script>
+<script src="/2.a27a3490.js"></script>
+<script src="/1dba9094.5a8a453a.js"></script>
 </body>
 </html>
\ No newline at end of file