This is an automated email from the ASF dual-hosted git repository.

juzhiyuan pushed a commit to branch docs-202108
in repository https://gitbox.apache.org/repos/asf/apisix-website.git


The following commit(s) were added to refs/heads/docs-202108 by this push:
     new 05615db  fix: lint
05615db is described below

commit 05615db908eef0e6e59a8b8a9c2a810621d569c1
Author: juzhiyuan <[email protected]>
AuthorDate: Fri Oct 29 23:44:01 2021 +0800

    fix: lint
---
 ...ache-APISIX-and-Envoy-performance-comparison.md |  2 +-
 website/blog/2021/08/10/apisix-nginx.md            | 26 +++----
 website/blog/2021/08/11/interview-TuZhengsong.md   | 18 ++---
 ...onnect-Plugin-for-Centralized-Authentication.md | 86 +++++++++++-----------
 website/blog/2021/08/17/interview-airwallex.md     |  8 +-
 .../2021/08/19/go-makes-Apache-APISIX-better.md    | 18 ++---
 website/blog/2021/08/21/shanghai-meetup.md         | 14 ++--
 website/blog/2021/08/23/ApacheCon-Asia-2021.md     | 46 ++++++------
 website/blog/2021/08/24/shanghai-meetup-recap.md   | 12 +--
 ...onnect-Plugin-for-Centralized-Authentication.md | 24 +++---
 website/blog/2021/08/30/Ingress-Meeting.md         |  4 +-
 website/blog/2021/08/30/weekly-report.md           |  4 +-
 ...a-better-gateway-and-K8S-Ingress-Controller.md" | 28 +++----
 .../2021/08/10/apisix-nginx.md                     |  4 +-
 14 files changed, 147 insertions(+), 147 deletions(-)

diff --git 
a/website/blog/2021/06/10/Apache-APISIX-and-Envoy-performance-comparison.md 
b/website/blog/2021/06/10/Apache-APISIX-and-Envoy-performance-comparison.md
index 430ae93..a6f2579 100644
--- a/website/blog/2021/06/10/Apache-APISIX-and-Envoy-performance-comparison.md
+++ b/website/blog/2021/06/10/Apache-APISIX-and-Envoy-performance-comparison.md
@@ -155,7 +155,7 @@ Latency: Latency per request, the smaller the value the 
better. It represents ho
 
 We can see that the difference between the two metrics in the single-worker 
thread|process mode, QPS and Latency is not large, but with the increase in the 
number of threads|processes their gap is gradually enlarged, here I analyze 
that there may be two reasons, NGINX in the high concurrency scenario with 
multiple workers and the system IO model for interaction is not more 
advantageous, on the other hand, also On the other hand, NGINX itself may be 
more “stingy” in terms of memory and CP [...]
 
-## 总结
+## Summary
 
 In general, Apache APISIX is slightly better than Envoy in terms of response 
latency and QPS, and due to NGINX’s multi-worker collaboration method, which is 
more advantageous in high concurrency scenarios, Apache APISIX’s performance 
improvement is more obvious than Envoy’s after opening multiple worker 
processes. The bus design of Envoy gives it a unique advantage in handling 
east-west traffic, while the performance and latency of Apache APISIX gives it 
a massive throughput capability i [...]
 Apache APISIX
diff --git a/website/blog/2021/08/10/apisix-nginx.md 
b/website/blog/2021/08/10/apisix-nginx.md
index 885d694..6b63b46 100644
--- a/website/blog/2021/08/10/apisix-nginx.md
+++ b/website/blog/2021/08/10/apisix-nginx.md
@@ -89,7 +89,7 @@ ngx_process_events_and_timers(ngx_cycle_t *cycle)
 
 The `ngx_event_expire_timers` function calls the handler method of all timeout 
events. In fact, the timer is implemented by a [red-black 
tree](https://zh.wikipedia.org/zh-hans/%E7%BA%A2%E9%BB%91%E6%A0%91) (a balanced 
ordered binary tree), where the key is the absolute expiration time of each 
event. This way, expired events can be found quickly by comparing the minimum 
node with the current time.
 
-Lua timer for ### OpenResty
+### Lua timer for OpenResty
 
 Of course, the above C functions are very inefficient to develop. Therefore, 
OpenResty wraps the Lua interface and exposes the C function `ngx_timer_add` to 
the Lua language via 
[ngx.timer.at](https://github.com/openresty/lua-nginx-module#ngxtimerat).
 
@@ -142,7 +142,7 @@ Apache APISIX uses only eight of these hooks (note that 
APISIX does not use `set
 
 Once we have the above knowledge ready, we can answer how Apache APISIX 
receives updates to etcd data.
 
-How #### nginx.conf is generated
+#### How nginx.conf is generated
 
 Each Nginx worker process starts a timer in the ``init_worker_by_lua`` phase 
with the ``http_init_worker`` function.
 
@@ -168,9 +168,9 @@ local function init(env)
                                     ngxconf)
 ```
 
-Of course, Apache APISIX allows you to modify some of the data in the 
nginx.conf template by modifying the conf/config.yaml configuration in a way 
that mimics the syntax of conf/config-default.yaml. See the *read_yaml_conf* 
function for an example of how to do this.
+Of course, Apache APISIX allows you to modify some of the data in the 
nginx.conf template by modifying the conf/config.yaml configuration in a way 
that mimics the syntax of conf/config-default.yaml. See the `read_yaml_conf` 
function for an example of how to do this.
 
-```conf
+```lua
 function _M.read_yaml_conf(apisix_home)
     local local_conf_path = profile:yaml_path("config-default")
     local default_conf_yaml, err = util.read_file(local_conf_path)
@@ -386,8 +386,8 @@ curl "http://127.0.0.1:9080/apisix/admin/upstreams/1"; -H 
"X-API-KEY: edd1c9f0343
 > "nodes": {
 > "httpbin.org:80": 1
 > }
-> }'
-{ "action": "set", "node":{"key":"\/apisix\/upstreams\/1", "value":{"hash_on": 
"vars", "nodes":{"httpbin.org:80":1}, "create_time": 1627982128, 
"update_time":1627982128, "scheme": "http", "type": "roundrobin", "pass_host": 
"pass", "id": "1"}}}
+> }
+{"action":"set","node":{"key":"\/apisix\/upstreams\/1","value":{"hash_on":"vars","nodes":{"httpbin.org:80":1},"create_time":1627982128,"update_time":1627982128,"scheme":"http","type":"roundrobin","pass_host":"pass","id":"1"}}}'
 ```
 
 You will see the following log in error.log (to see this line, you must set 
the nginx_config.error_log_level in config.yaml to INFO)
@@ -433,14 +433,14 @@ local resources = {
 }
 ```
 
-Therefore, the above curl request will be processed by the ``put`` function in 
the /apisix/admin/upstreams.lua file, see the implementation of the ``put`` 
function as follows
+Therefore, the above curl request will be processed by the ``put`` function in 
the /apisix/admin/upstreams.lua file, see the implementation of the ``put`` 
function as follows:
 
 ```lua
 -- /apisix/admin/upstreams.lua file
 function _M.put(id, conf)
     -- check the legitimacy of the requested data
     local id, err = check_conf(id, conf, true)
-    local key = "/upstreams/" ... id
+    local key = "/upstreams/" .. id
     core.log.info("key: ", key)
     -- Generate configuration data in etcd
     local ok, err = utils.inject_conf_with_prev_conf("upstream", key, conf)
@@ -466,7 +466,7 @@ Let's look at how the Nginx worker process takes effect 
immediately after the ad
 
 The open source version of Nginx matches requests based on three different 
containers.
 
-1. the `server_name` configuration in the static hash table is matched to the 
requested `Host` domain name
+1. The `server_name` configuration in the static hash table is matched to the 
requested `Host` domain name
 2. Next, the location in the static Trie prefix tree is configured to match 
the requested URI
 
     ![Matching process for location prefix tree 
2](https://static.apiseven.com/202108/1631170657240-31bb3ff3-ee3b-4831-99ff-77cab1d6e298.png)
@@ -477,14 +477,14 @@ Although these procedures are very efficient, they are 
written to die in the fin
 
 As you can see in nginx.conf, requests to any domain name, URI, or domain name 
will match the `http_access_phase` lua function.
 
-```conf
+```lua
 server {
     server_name _;
     location / {
         access_by_lua_block {
             apisix.http_access_phase()
-        access_by_lua_block { apisix.http_access_phase() }
-        proxy_pass $upstream_scheme://apisix_backend$upstream_uri;
+        }
+        proxy_pass      $upstream_scheme://apisix_backend$upstream_uri;
     }
 }
 ```
@@ -513,4 +513,4 @@ The key to dynamically modifying the Nginx configuration is 
2 things: the Lua la
 
 Apache APISIX has many good designs, and this article only discusses the 
dynamic management of Nginx clusters.
 
-[click here for the link to the original 
article](https://www.taohui.tech/2021/08/10/%E5%BC%80%E6%BA%90%E7%BD%91%E5%85%B3APISIX%E6%9E%B6%E6%9E%84%E5%88%86%E6%9E%90/#more
 )
+[click here for the link to the original 
article](https://www.taohui.tech/2021/08/10/%E5%BC%80%E6%BA%90%E7%BD%91%E5%85%B3APISIX%E6%9E%B6%E6%9E%84%E5%88%86%E6%9E%90/#more)
diff --git a/website/blog/2021/08/11/interview-TuZhengsong.md 
b/website/blog/2021/08/11/interview-TuZhengsong.md
index 9b880fc..f75fd2d 100644
--- a/website/blog/2021/08/11/interview-TuZhengsong.md
+++ b/website/blog/2021/08/11/interview-TuZhengsong.md
@@ -33,9 +33,9 @@ On an uneventful afternoon, we chatted with Zhengsong by 
phone. Because of the e
 
 > When I was in college, I studied communication engineering, and the happiest 
 > thing I did every day was to play soccer. Now sometimes I think that it 
 > would be nice to go back to my college days with the memories I have now.
 
-Zhengsong actually didn't have much contact with programming during his 
college years, he actually had a C programming class, but he failed it because 
he was too busy playing soccer. However, he failed a make-up exam after failing 
the class, resulting in a retake. The most embarrassing thing is that he failed 
the retake as well, so what did he do afterwards? There was a graduation 
clearing exam before graduation. This can not be failed again, so Masatsu went 
to the library to borrow a C  [...]
+Zhengsong actually didn't have much contact with programming during his 
college years, he actually had a C programming class, but he failed it because 
he was too busy playing soccer. However, he failed a make-up exam after failing 
the class, resulting in a retake. The most embarrassing thing is that he failed 
the retake as well, so what did he do afterwards? There was a graduation 
clearing exam before graduation. This can not be failed again, so Zhengsong 
went to the library to borrow a  [...]
 
-"I was thinking, "Is C really that hard?" Masamatsu said.
+"I was thinking, "Is C really that hard?" Zhengsong said.
 
 Then he kept reading and reading and reading, and suddenly he realized that 
programming seemed to have some meaning, and he understood it! He finally 
passed the exam before graduating. After graduation, he found a job as a 
programmer.
 
@@ -47,7 +47,7 @@ At that time, he probably wouldn't have thought that today he 
would be the devel
 
 > In industry, the real business scenario is very different from what you 
 > learn in school.
 
-Masatsu's first job was at a wearable device startup, working on the 
development of smart bracelets. Masamatsu and his former colleagues had to 
process various sensor data from the smart bracelet to monitor the user's heart 
rate, exercise, blood pressure and so on.
+Zhengsong's first job was at a wearable device startup, working on the 
development of smart bracelets. Zhengsong and his former colleagues had to 
process various sensor data from the smart bracelet to monitor the user's heart 
rate, exercise, blood pressure and so on.
 
 "It was fun because in industry, the real business scenario is very different 
from what you learn in school, and a lot of things have to be learned from 
scratch," Masatsu said.
 
@@ -59,7 +59,7 @@ Then, Masatsu went to another company to engage in back-end 
business development
 
 "In this big company, I did a little bit far from the business, more 
technically oriented. "Masatsu said.
 
-Masatsu's contact with Apache APISIX was in September 2020, when his team was 
using Kong, but Kong was not fully meeting their needs, so they redid the 
technical selection of the gateway to try to find a better solution. Masatsu 
was in charge of this technical selection, so he came across the Apache 
Foundation's top project, Apache APISIX, and was introduced to the Apache 
APISIX community.
+Zhengsong's contact with Apache APISIX was in September 2020, when his team 
was using Kong, but Kong was not fully meeting their needs, so they redid the 
technical selection of the gateway to try to find a better solution. Masatsu 
was in charge of this technical selection, so he came across the Apache 
Foundation's top project, Apache APISIX, and was introduced to the Apache 
APISIX community.
 
 At that time, he had already graduated more than three years ago.
 
@@ -67,12 +67,12 @@ At that time, he had already graduated more than three 
years ago.
 
 > I can submit code to the Apache Foundation's top projects! As a technical 
 > worker, that's a lot of technical confidence.
 
-Masatsu's first PR in the open source community was an enhancement type PR, 
which enabled Apache APISIX to support multi-port listening.
+Zhengsong's first PR in the open source community was an enhancement type PR, 
which enabled Apache APISIX to support multi-port listening.
 
 - issue: https://github.com/apache/apisix/issues/1195
 - PR: https://github.com/apache/apisix/pull/2409
 
-This feature is needed by Masatsu and has been mentioned in the issue area for 
a long time, but for some reason it has been unclaimed. Before that, Masamatsu 
happened to know something about this, so he thought, "I can propose a PR to 
Apache APISIX to fix this problem. "So he volunteered to have the issue 
assigned to him in the issue.
+This feature is needed by Masatsu and has been mentioned in the issue area for 
a long time, but for some reason it has been unclaimed. Before that, Zhengsong 
happened to know something about this, so he thought, "I can propose a PR to 
Apache APISIX to fix this problem. "So he volunteered to have the issue 
assigned to him in the issue.
 
 He says, "I had a strong urge to get involved in the community, and then I 
looked at the Apache APISIX community's Beginner's Guide and was as excited to 
get involved as if I were coming out of the Beginner's Village with a weapon."
 
@@ -84,7 +84,7 @@ Masatsu was very excited and immediately followed the guide 
to bring up the PR.
 
 "I was very excited and felt like I was finally substantially involved in the 
open source community. I could submit code to the Apache Foundation's top 
projects! As a technical worker, it was a technical confidence."
 
-**This is Masatsu's first PR in the open source world.**
+**This is Zhengsong's first PR in the open source world.**
 
 ## Things that impressed me in the community
 
@@ -102,13 +102,13 @@ In April this year, one of our partners submitted a PR to 
etcd, which finally so
 
 > We're all working together differently, but we're all contributing to open 
 > source.
 
-Masamatsu says that when he first started participating in the community, he 
went through most of the APISIX documentation he could see at the time. So when 
he was working in his company, his colleagues asked him questions, and although 
he was not very clear, he knew the distribution of the project's documentation, 
so he could look it up directly and know roughly what the problem was. He 
believes that reading the documentation is an appropriate way to get familiar 
with the project.
+Zhengsong says that when he first started participating in the community, he 
went through most of the APISIX documentation he could see at the time. So when 
he was working in his company, his colleagues asked him questions, and although 
he was not very clear, he knew the distribution of the project's documentation, 
so he could look it up directly and know roughly what the problem was. He 
believes that reading the documentation is an appropriate way to get familiar 
with the project.
 
 The Apache APISIX project website has a good guide for newcomers, including 
how to raise PR. If you want to participate in the community, you can first 
read the main documentation on the website and Github to get a basic 
understanding of the project and the distribution of the project's 
documentation, and then index the documentation as needed.
 
 If you want to contribute to the code, or participate in the design, some 
knowledge of Ngnix or OpenResty is necessary. This includes looking at their 
official documentation and code, and learning about their implementation of 
relevant features.
 
-Masamatsu said, "I think this step is impossible to skip."
+Zhengsong said, "I think this step is impossible to skip."
 
 Of course, you can get involved in the community as a user. For example, if 
you think there is something wrong with the documentation, or if you follow the 
documentation and find that it is not the case, you can also raise some issues 
to point out these problems.
 
diff --git 
a/website/blog/2021/08/16/Using-the-Apache-APISIX-OpenID-Connect-Plugin-for-Centralized-Authentication.md
 
b/website/blog/2021/08/16/Using-the-Apache-APISIX-OpenID-Connect-Plugin-for-Centralized-Authentication.md
index ba02206..30af81b 100644
--- 
a/website/blog/2021/08/16/Using-the-Apache-APISIX-OpenID-Connect-Plugin-for-Centralized-Authentication.md
+++ 
b/website/blog/2021/08/16/Using-the-Apache-APISIX-OpenID-Connect-Plugin-for-Centralized-Authentication.md
@@ -4,16 +4,16 @@ author: "Peter Zhu"
 authorURL: "https://github.com/starsz";
 authorImageURL: "https://avatars.githubusercontent.com/u/25628854?v=4";
 keywords:
-- API gateway
-- APISIX
-- Apache APISIX
-- Okta
-- Centralized Authentication
+  - API gateway
+  - APISIX
+  - Apache APISIX
+  - Okta
+  - Centralized Authentication
 description: This blog shows the procedures of using Apache APISIX OpenID 
Connect Plugin for Okta Centralized Authentication.  This blog contains 
conceptual introductions of Apache APISIX and Okta Centralized Authentication, 
and detailed step-by-step instructions.
 tags: [Practical Case]
 ---
 
-> This blog shows the procedures of using Apache APISIX OpenID Connect Plugin 
for Okta Centralized Authentication.  This blog contains conceptual 
introductions of Apache APISIX and Okta Centralized Authentication, and 
detailed step-by-step instructions.
+> This blog shows the procedures of using Apache APISIX OpenID Connect Plugin 
for Okta Centralized Authentication. This blog contains conceptual 
introductions of Apache APISIX and Okta Centralized Authentication, and 
detailed step-by-step instructions.
 
 <!--truncate-->
 
@@ -58,7 +58,7 @@ Compared with the traditional authentication mode, 
centralized identity mode has
 
 ## What is OpenID Connect
 
-OpenID Connect (OIDC) is a centralized identity authentication mode. The 
benefit of using OpenID Connect is that users only need to register and log in 
with one OpenID Connect identity provider's website and use one account’s 
password information to access different applications. 
[Okta](https://developer.okta.com/) is a common OpenID Connect identity 
provider, and the Apache APISIX OpenID Connect plugin supports OpenID.  As a 
result, the plugin can replace traditional authentication mode [...]
+OpenID Connect (OIDC) is a centralized identity authentication mode. The 
benefit of using OpenID Connect is that users only need to register and log in 
with one OpenID Connect identity provider's website and use one account’s 
password information to access different applications. 
[Okta](https://developer.okta.com/) is a common OpenID Connect identity 
provider, and the Apache APISIX OpenID Connect plugin supports OpenID. As a 
result, the plugin can replace traditional authentication mode  [...]
 
 ### OpenID Authentication Process
 
@@ -70,7 +70,7 @@ OpenID Connect (OIDC) is a centralized identity 
authentication mode. The benefit
 4. APISIX requests the Identity Provider with the Code extracted from the 
request parameters.
 5. The Identity Provider sends an answer message to APISIX with the ID Token 
and Access Token.
 6. APISIX sends the Access Token to the Identity Provider's User Endpoint for 
authentication.
-7. After passing the authentication, the User Endpoint sends the User Info to 
APISIX to complete  authentication.
+7. After passing the authentication, the User Endpoint sends the User Info to 
APISIX to complete authentication.
 
 ## How to Configure Okta Authentication Using the Apache APISIX OpenID Connect 
Plug-in
 
@@ -83,13 +83,13 @@ Have an Okta account ready for use.
 ### Step 1: Configuring Okta
 
 1. Log in to your Okta account and click "Create App Integration" to create an 
Okta application.
-    ![Create App Integration](/img/blog_img/2021-08-16-4.png)
-2. Select "OIDC-OpenID Connect" for the Sign-in method, and select "Web 
Application" for the  Application type.
-    ![Create a new App Integration](/img/blog_img/2021-08-16-5.png)
+   ![Create App Integration](/img/blog_img/2021-08-16-4.png)
+2. Select "OIDC-OpenID Connect" for the Sign-in method, and select "Web 
Application" for the Application type.
+   ![Create a new App Integration](/img/blog_img/2021-08-16-5.png)
 3. Set the redirect URL for login and logout. The "Sign-in redirect URIs" are 
links a user can go to after a successful login, and the "Sign-out redirect 
URIs" are links a user goes to after a successful logout. In this example, we 
set both sign-in and sign-out redirect URIs to `http://127.0.0.1:9080/`.
-    ![Set the redirect URL for login and 
logout](/img/blog_img/2021-08-16-6.png)
+   ![Set the redirect URL for login and logout](/img/blog_img/2021-08-16-6.png)
 4. After finishing the settings, click "Save" to save the changes.
-    ![save the changes](/img/blog_img/2021-08-16-7.png)
+   ![save the changes](/img/blog_img/2021-08-16-7.png)
 5. Visit the General page of the application to obtain the following 
configuration, which is required to configure Apache APISIX OpenID Connect.
 
 - Client ID: OAuth client ID, the application ID, which corresponds to 
client_id and {YOUR_CLIENT_ID} below.
@@ -136,7 +136,7 @@ mkdir apisix-2.7
 wget https://downloads.apache.org/apisix/2.7/apache-apisix-2.7-src.tgz
 ```
 
-  You can also download the Apache APISIX release source package from the 
Apache APISIX website. The [Apache APISIX Official Website - Download 
Page](https://apisix.apache.org/downloads/) also provides source packages for 
Apache APISIX, APISIX Dashboard, and APISIX Ingress Controller.
+You can also download the Apache APISIX release source package from the Apache 
APISIX website. The [Apache APISIX Official Website - Download 
Page](https://apisix.apache.org/downloads/) also provides source packages for 
Apache APISIX, APISIX Dashboard, and APISIX Ingress Controller.
 
 3. Unzip the Apache APISIX Release source package.
 
@@ -174,26 +174,26 @@ apisix start
 
 The OpenID Connect configuration fields are listed below:
 
-|Field|Default Value|Description|
-| :------| :------------ | :------- |
-|client_id|""|OAuth client ID.|
-|client_secret|""|OAuth client secret.|
-|discovery|""|Service discovery endpoints for identity providers.|
-|scope|openid|Scope of resources to be accessed.|
-|relm|apisix|Specify the WWW-Authenticate response header authentication 
information.|
-|bearer_only|false|Whether to check the token in the request header.|
-|logout_path|/logout|Log out URI.|
-|redirect_uri|request_uri|The URI that the identity provider redirects back 
to, defaulting to the request address.|
-|timeout|3|Request timeout time, the unit is defined in seconds.|
-|ssl_verify|false|Verify the identity provider's SSL certificate.|
-|introspection_endpoint|""|The URL of the identity provider's token 
authentication endpoint, which will be extracted from the discovery, response 
if left blank.|
-|introspection_endpoint_auth_method|client_secret_basic|Name of the 
authentication method for token introspection.|
-|public_key|""|Public key for an authentication token.|
-|token_signing_alg_values_expected|""|Algorithm for authentication tokens.|
-|set_access_token_header|true|Whether to carry the access token in the request 
header.|
-|access_token_in_authorization_header|false|Whether to put an access token in 
the Authorization header. The access token is placed in the Authorization 
header when this value is set to true and in the X-Access-Token header when it 
is set to false.|
-|set_id_token_header|true|Whether to carry the ID token in the X-ID-Token 
request header.|
-|set_userinfo_header|true|Whether to carry user information in the X-Userinfo 
request header.|
+| Field                                | Default Value       | Description     
                                                                                
                                                                                
                            |
+| :----------------------------------- | :------------------ | 
:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 |
+| client_id                            | ""                  | OAuth client 
ID.                                                                             
                                                                                
                               |
+| client_secret                        | ""                  | OAuth client 
secret.                                                                         
                                                                                
                               |
+| discovery                            | ""                  | Service 
discovery endpoints for identity providers.                                     
                                                                                
                                    |
+| scope                                | openid              | Scope of 
resources to be accessed.                                                       
                                                                                
                                   |
+| relm                                 | apisix              | Specify the 
WWW-Authenticate response header authentication information.                    
                                                                                
                                |
+| bearer_only                          | false               | Whether to 
check the token in the request header.                                          
                                                                                
                                 |
+| logout_path                          | /logout             | Log out URI.    
                                                                                
                                                                                
                            |
+| redirect_uri                         | request_uri         | The URI that 
the identity provider redirects back to, defaulting to the request address.     
                                                                                
                               |
+| timeout                              | 3                   | Request timeout 
time, the unit is defined in seconds.                                           
                                                                                
                            |
+| ssl_verify                           | false               | Verify the 
identity provider's SSL certificate.                                            
                                                                                
                                 |
+| introspection_endpoint               | ""                  | The URL of the 
identity provider's token authentication endpoint, which will be extracted from 
the discovery, response if left blank.                                          
                             |
+| introspection_endpoint_auth_method   | client_secret_basic | Name of the 
authentication method for token introspection.                                  
                                                                                
                                |
+| public_key                           | ""                  | Public key for 
an authentication token.                                                        
                                                                                
                             |
+| token_signing_alg_values_expected    | ""                  | Algorithm for 
authentication tokens.                                                          
                                                                                
                              |
+| set_access_token_header              | true                | Whether to 
carry the access token in the request header.                                   
                                                                                
                                 |
+| access_token_in_authorization_header | false               | Whether to put 
an access token in the Authorization header. The access token is placed in the 
Authorization header when this value is set to true and in the X-Access-Token 
header when it is set to false. |
+| set_id_token_header                  | true                | Whether to 
carry the ID token in the X-ID-Token request header.                            
                                                                                
                                 |
+| set_userinfo_header                  | true                | Whether to 
carry user information in the X-Userinfo request header.                        
                                                                                
                                 |
 
 ```shell
 curl  -XPOST 127.0.0.1:9080/apisix/admin/routes -H "X-Api-Key: 
edd1c9f034335f136f87ad84b625c8f1" -d '{
@@ -222,15 +222,15 @@ curl  -XPOST 127.0.0.1:9080/apisix/admin/routes -H 
"X-Api-Key: edd1c9f034335f136
 ### Step 4: Access Apache APISIX
 
 1. Visit "http://127.0.0.1:9080/get"; and the page is redirected to the Okta 
login page because the OpenID Connect plugin is enabled.
-    ![visit Okta login page](/img/blog_img/2021-08-16-9.png)
+   ![visit Okta login page](/img/blog_img/2021-08-16-9.png)
 2. Enter the username and password for the user's Okta account and click "Sign 
In" to log in to your Okta account.
 3. After successful login, you can access the get page in "httpbin.org". The 
"httpbin.org/get" page will return the requested data with 
X-Access-Token,X-Id-Token, and X-Userinfo as follows.
-  
-  ```sh
-  "X-Access-Token": 
"******Y0RPcXRtc0FtWWVuX2JQaFo1ZVBvSlBNdlFHejN1dXY5elV3IiwiYWxnIjoiUlMyNTYifQ.***TVER3QUlPbWZYSVRzWHRxRWh2QUtQMWRzVDVGZHZnZzAiLCJpc3MiOiJodHRwczovL3FxdGVzdG1hbi5va3RhLmNvbSIsImF1ZCI6Imh0dHBzOi8vcXF0ZXN0bWFuLm9rdGEuY29tIiwic3ViIjoiMjgzMDE4Nzk5QHFxLmNvbSIsImlhdCI6MTYyODEyNjIyNSwiZXhwIjoxNjI4MTI5ODI1LCJjaWQiOiIwb2ExMWc4ZDg3TzBGQ0dYZzY5NiIsInVpZCI6IjAwdWEwNWVjZEZmV0tMS3VvNjk1Iiwic2NwIjpbIm9wZW5pZCIsInByb2Zpb***.****iBshIcJhy8QNvzAFD0fV4gh7OAdTXFMu5k0hk0JeIU6Tfg_Mh-josfap3
 [...]
-  "X-Id-Token": 
"******aTdDRDJnczF5RnlXMUtPZUtuSUpQdyIsImFtciI6WyJwd2QiXSwic3ViIjoiMDB1YTA1ZWNkRmZXS0xLdW82OTUiLCJpc3MiOiJodHRwczpcL1wvcXF0ZXN0bWFuLm9rdGEuY29tIiwiYXVkIjoiMG9hMTFnOGQ4N08wRkNHWGc2OTYiLCJuYW1lIjoiUGV0ZXIgWmh1IiwianRpIjoiSUQuNGdvZWo4OGUyX2RuWUI1VmFMeUt2djNTdVJTQWhGNS0tM2l3Z0p5TTcxTSIsInZlciI6MSwicHJlZmVycmVkX3VzZXJuYW1lIjoiMjgzMDE4Nzk5QHFxLmNvbSIsImV4cCI6MTYyODEyOTgyNSwiaWRwIjoiMDBvYTA1OTFndHAzMDhFbm02OTUiLCJub25jZSI6ImY3MjhkZDMxMWRjNGY3MTI4YzlmNjViOGYzYjJkMDgyIiwiaWF0IjoxN
 [...]
-  "X-Userinfo": 
"*****lfbmFtZSI6IlpodSIsImxvY2FsZSI6ImVuLVVTIiwicHJlZmVycmVkX3VzZXJuYW1lIjoiMjgzMDE4Nzk5QHFxLmNvbSIsInVwZGF0ZWRfYXQiOjE2MjgwNzA1ODEsInpvbmVpbmZvIjoiQW1lcmljYVwvTG9zX0FuZ2VsZXMiLCJzdWIiOiIwMHVhMDVlY2RGZldLTEt1bzY5NSIsImdpdmVuX25hbWUiOiJQZXRlciIsIm5hbWUiOiJQZXRl****"
-  ```
+
+```sh
+"X-Access-Token": 
"******Y0RPcXRtc0FtWWVuX2JQaFo1ZVBvSlBNdlFHejN1dXY5elV3IiwiYWxnIjoiUlMyNTYifQ.***TVER3QUlPbWZYSVRzWHRxRWh2QUtQMWRzVDVGZHZnZzAiLCJpc3MiOiJodHRwczovL3FxdGVzdG1hbi5va3RhLmNvbSIsImF1ZCI6Imh0dHBzOi8vcXF0ZXN0bWFuLm9rdGEuY29tIiwic3ViIjoiMjgzMDE4Nzk5QHFxLmNvbSIsImlhdCI6MTYyODEyNjIyNSwiZXhwIjoxNjI4MTI5ODI1LCJjaWQiOiIwb2ExMWc4ZDg3TzBGQ0dYZzY5NiIsInVpZCI6IjAwdWEwNWVjZEZmV0tMS3VvNjk1Iiwic2NwIjpbIm9wZW5pZCIsInByb2Zpb***.****iBshIcJhy8QNvzAFD0fV4gh7OAdTXFMu5k0hk0JeIU6Tfg_Mh-josfap38n
 [...]
+"X-Id-Token": 
"******aTdDRDJnczF5RnlXMUtPZUtuSUpQdyIsImFtciI6WyJwd2QiXSwic3ViIjoiMDB1YTA1ZWNkRmZXS0xLdW82OTUiLCJpc3MiOiJodHRwczpcL1wvcXF0ZXN0bWFuLm9rdGEuY29tIiwiYXVkIjoiMG9hMTFnOGQ4N08wRkNHWGc2OTYiLCJuYW1lIjoiUGV0ZXIgWmh1IiwianRpIjoiSUQuNGdvZWo4OGUyX2RuWUI1VmFMeUt2djNTdVJTQWhGNS0tM2l3Z0p5TTcxTSIsInZlciI6MSwicHJlZmVycmVkX3VzZXJuYW1lIjoiMjgzMDE4Nzk5QHFxLmNvbSIsImV4cCI6MTYyODEyOTgyNSwiaWRwIjoiMDBvYTA1OTFndHAzMDhFbm02OTUiLCJub25jZSI6ImY3MjhkZDMxMWRjNGY3MTI4YzlmNjViOGYzYjJkMDgyIiwiaWF0IjoxNjI
 [...]
+"X-Userinfo": 
"*****lfbmFtZSI6IlpodSIsImxvY2FsZSI6ImVuLVVTIiwicHJlZmVycmVkX3VzZXJuYW1lIjoiMjgzMDE4Nzk5QHFxLmNvbSIsInVwZGF0ZWRfYXQiOjE2MjgwNzA1ODEsInpvbmVpbmZvIjoiQW1lcmljYVwvTG9zX0FuZ2VsZXMiLCJzdWIiOiIwMHVhMDVlY2RGZldLTEt1bzY5NSIsImdpdmVuX25hbWUiOiJQZXRlciIsIm5hbWUiOiJQZXRl****"
+```
 
 **X-Access-Token**: Apache APISIX puts the access token obtained from the user 
provider into the X-Access-Token request header, optionally via the 
access_token_in_authorization_header in the plugin configuration Authorization 
request header.
 
@@ -256,8 +256,8 @@ Okta is a customizable, secure, and drop-in solution to add 
authentication and a
 
 Apache APISIX is a dynamic, real-time, high-performance API gateway. Apache 
APISIX provides rich traffic management features such as load balancing, 
dynamic upstream, canary release, circuit breaking, authentication, 
observability, and more. You can use Apache APISIX to handle traditional 
north-south traffic, as well as east-west traffic between services. It can also 
be used as a k8s ingress controller.
 
-Hundreds of companies worldwide have used Apache APISIX, covering finance, 
internet, manufacturing, retail, operators, such as NASA, the European Union’s 
Digital Factory, TravelSky, Tencent, Huawei, Weibo,  China Mobile, Taikang, 360 
, etc.
+Hundreds of companies worldwide have used Apache APISIX, covering finance, 
internet, manufacturing, retail, operators, such as NASA, the European Union’s 
Digital Factory, TravelSky, Tencent, Huawei, Weibo, China Mobile, Taikang, 360 
, etc.
 
-Github:  https://github.com/apache/apisix
+Github: https://github.com/apache/apisix
 
 Website: https://apisix.apache.org
diff --git a/website/blog/2021/08/17/interview-airwallex.md 
b/website/blog/2021/08/17/interview-airwallex.md
index 3b3b909..da70feb 100644
--- a/website/blog/2021/08/17/interview-airwallex.md
+++ b/website/blog/2021/08/17/interview-airwallex.md
@@ -22,11 +22,11 @@ We had a chance to interview Yang Li, the technical 
platform leader of Airwallex
 
 Airwallex is a global financial technology company that empowers businesses of 
all sizes to operate across borders, thereby helping to grow the global 
economy. With technology at its core, Airwallex has built a proprietary global 
financial infrastructure platform with a global payment network covering more 
than 50 currencies in over 130 countries and regions, providing digital fintech 
products for businesses of all sizes to help them grow at high speed around the 
world in a more efficien [...]
 
-![Airwallex LiYang](https://static.apiseven.com/202108/20210816001.png)
+![Airwallex Li Yang](https://static.apiseven.com/202108/20210816001.png)
 
 **Q: What made you/your technical team choose to use Apache APISIX when making 
the technology selection?**
 
-**LiYang**: API gateway is an extremely important basic technology component, 
and we compared the main gateway products in 6 main dimensions during the 
technology selection.
+**Yang**: API gateway is an extremely important basic technology component, 
and we compared the main gateway products in 6 main dimensions during the 
technology selection.
 
 - **Stability**: The stability of the API gateway is critical. 62.1% of the 
top 1000 websites in the world are Nginx-based, which means that the 
Nginx-based web server has been tested in complex and diverse scenarios in 
production environments; Apache APISIX's fully dynamic design also allows it to 
modify routes without having to reload, and the client's long links are 
maintained. The fully dynamic design of Apache APISIX also allows it to 
maintain long links to clients without having to [...]
 
@@ -42,13 +42,13 @@ Airwallex is a global financial technology company that 
empowers businesses of a
 
 **Q: What scenarios is Apache APISIX used in? What problems have been solved?**
 
-**Yang Lee**: We use Apache APISIX as a core component of our microservice 
gateway model, which is deployed at the edge of the network to provide common 
gateway functionality for all traffic coming into Airwallex, solving problems 
such as
+**Yang**: We use Apache APISIX as a core component of our microservice gateway 
model, which is deployed at the edge of the network to provide common gateway 
functionality for all traffic coming into Airwallex, solving problems such as
 
 - Data sovereignty issues: Data sovereignty is a very critical regulatory 
requirement for financial infrastructures that operate across borders. To this 
end, we developed a regulatory compliant dynamic routing plug-in using the 
Apache APISIX dynamic upstream selection feature. Dynamic routing can 
intelligently select upstreams for request distribution based on the 
characteristics of user requests, abstracting the complex multi-data center 
collaboration problem from the service layer to t [...]
 
 - Microservice Isolation: Airwallex wants the engineering teams of each 
microservice to have autonomous control over their own services, effectively 
reducing the cost of communication and coordination and improving engineering 
effectiveness. This architectural concept requires that infrastructure 
components shared by teams, such as API Gateway, support multi-tenant 
isolation. While ensuring the robustness and cost control of the whole system, 
it allows business teams to configure and ext [...]
 
-- Tenant-level flow restriction: In a multi-tenant environment, the traffic 
characteristics of each tenant are different. The same flow restriction for 
different tenants cannot meet the business needs, and tenant-level flow 
restriction can do more appropriate flow restriction based on user 
characteristics.
+- Tenant-level flow limit: In a multi-tenant environment, the traffic 
characteristics of each tenant are different. The same flow restriction for 
different tenants cannot meet the business needs, and tenant-level flow 
restriction can do more appropriate flow restriction based on user 
characteristics.
 
 - Tenant-level whitelisting: In a multi-tenant environment, each tenant's 
access IP is different. Single whitelist control cannot meet the needs of 
tenant-level security management. Tenant-level whitelisting allows each tenant 
to control its own whitelist and not worry about other users in the whitelist 
accessing its own resources.
 
diff --git a/website/blog/2021/08/19/go-makes-Apache-APISIX-better.md 
b/website/blog/2021/08/19/go-makes-Apache-APISIX-better.md
index c3ba914..b65ac40 100644
--- a/website/blog/2021/08/19/go-makes-Apache-APISIX-better.md
+++ b/website/blog/2021/08/19/go-makes-Apache-APISIX-better.md
@@ -40,9 +40,9 @@ cmd/go-runner
 │ ├── say.go
 │ └── say_test.go
 └── version.go
-ðŸ™' ðŸ™'
+```
 
-Above is the directory structure of the official example. ``main.go`` is the 
entry point, where the most critical part is.
+Above is the directory structure of the official example. `main.go` is the 
entry point, where the most critical part is.
 
 ```go
 cfg := runner.RunnerConfig{}
@@ -59,7 +59,7 @@ Open `plugins/say.go`.
 ```go
 func init() {
   err := plugin.RegisterPlugin(&Say{})
-  if err ! = nil {
+  if err != nil {
     log.Fatalf("failed to register plugin say: %s", err)
   }
 }
@@ -87,7 +87,7 @@ func (p *Say) Name() string {
 }
 ```
 
-ParseConf will be called when the plugin configuration changes, parsing the 
configuration and returning a plugin-specific configuration context.
+`ParseConf` will be called when the plugin configuration changes, parsing the 
configuration and returning a plugin-specific configuration context.
 
 ```go
 func (p *Say) ParseConf(in []byte) (interface{}, error) {
@@ -105,7 +105,7 @@ type SayConf struct {
 }
 ```
 
-Filter is executed on every request with the say plugin configured.
+`Filter` is executed on every request with the say plugin configured.
 
 ```go
 func (p *Say) Filter(conf interface{}, w http.ResponseWriter, r 
pkgHTTP.Request) {
@@ -116,7 +116,7 @@ func (p *Say) Filter(conf interface{}, w 
http.ResponseWriter, r pkgHTTP.Request)
 
   w.Header().Add("X-Resp-A6-Runner", "Go")
   _, err := w.Write([]byte(body))
-  if err ! = nil {
+  if err != nil {
     log.Errorf("failed to write: %s", err)
   }
 }
@@ -131,10 +131,10 @@ After building the application (`make build` in the 
example), you need to set tw
 1. `APISIX_LISTEN_ADDRESS=unix:/tmp/runner.sock`
 2. `APISIX_CONF_EXPIRE_TIME=3600`
 
-Like this.
+Like this:
 
 ```go
-APISIX_LISTEN_ADDRESS=unix:/tmp/runner.sock APISIX_CONF_EXPIRE_TIME=3600 . 
/go-runner run
+APISIX_LISTEN_ADDRESS=unix:/tmp/runner.sock APISIX_CONF_EXPIRE_TIME=3600 
./go-runner run
 ```
 
 The application will listen to `/tmp/runner.sock` when it runs.
@@ -178,7 +178,7 @@ curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 
'X-API-KEY: edd1c9f034335f13
   "plugins": {
     "ext-plugin-pre-req": {
       "conf": [
-        { "name": "say", "value":"{\"body\":\"hello\"}"}
+        {"name": "say", "value":"{\"body\":\"hello\"}"}
       ]
     }
   },
diff --git a/website/blog/2021/08/21/shanghai-meetup.md 
b/website/blog/2021/08/21/shanghai-meetup.md
index 1d267d6..ef5fcab 100644
--- a/website/blog/2021/08/21/shanghai-meetup.md
+++ b/website/blog/2021/08/21/shanghai-meetup.md
@@ -5,11 +5,11 @@ keywords:
 - APISIX
 - Apache APISIX
 - Meetup
-description: This Meetup was initiated by api7.ai https://www.apiseven.com/, 
and invited partners such as Aiki and Air CloudHub to present it. Apache APISIX 
PMC members, contributors, and community technical experts gathered to discuss 
Apache APISIX community development, industry practices, and other topics. 
+description: This Meetup was initiated by api7.ai https://www.apiseven.com/, 
and invited partners such as iQiYi and Airwallex to present it. Apache APISIX 
PMC members, contributors, and community technical experts gathered to discuss 
Apache APISIX community development, industry practices, and other topics. 
 tags: [Events]
 ---
 
-> This Meetup is initiated by [api7.ai](https://www.apiseven.com/), and 
invited partners such as Aiki and Air CloudHub to present it. Apache APISIX PMC 
members, contributors, and community technical experts gathered to discuss 
Apache APISIX community development, industry practices, and other topics.
+> This Meetup is initiated by [api7.ai](https://www.apiseven.com/), and 
invited partners such as iQiYi and Airwallex to present it. Apache APISIX PMC 
members, contributors, and community technical experts gathered to discuss 
Apache APISIX community development, industry practices, and other topics.
 
 <! --truncate-->
 
@@ -21,7 +21,7 @@ tags: [Events]
 
 - Discuss the past and present of the Apache APISIX community
 - Hear from Akiyo scientists about how Akiyo uses Apache APISIX to support a 
service with 10 million calls
-- How AirCloudHub uses Apache APISIX to balance user experience, clean 
architecture and data sovereignty
+- How Airwallex uses Apache APISIX to balance user experience, clean 
architecture and data sovereignty
 - Learn about the benefits of centralized authentication and how to do it on 
APISIX
 
 If you're interested, don't miss it, **scan the event poster for QR code to 
register!**
@@ -34,11 +34,11 @@ The event schedule![Apache APISIX 
Meetup](/img/blog_img/2021-08-21-1.jpg)
 
 ## Introduction to the topic
 
-### Apache APISIX based, Aiki API gateway implementation practice
+### Apache APISIX based, iQiYi API gateway implementation practice
 
 #### Sharing Guests
 
-Wenjie Jiang / Scientist, Aiki
+Wenjie Jiang / Scientist, iQiYi
 
 #### Topic Details
 
@@ -58,7 +58,7 @@ Authentication is a very important part of zero-trust 
architecture. APISIX is a
 
 #### Sharing Guests
 
-Yang Li / Head of AirCloudHub Technology Platform
+Yang Li / Head of Airwallex Technology Platform
 
 #### Topic Details
 
@@ -76,7 +76,7 @@ Apache APISIX has been growing as a community since the first 
day of open source
 
 ## Peripheral Benefits
 
-Join the Meetup, interact with the instructors, and get a chance to win the 
latest Apache APISIX peripherals: oversized mouse pads, delicate mugs, Apache 
APISIX badges, and custom umbrellas.
+Join the Meetup, interact with the instructors, and get a chance to win the 
latest Apache APISIX gifts: mouse pads, coffee mugs, Apache APISIX badges, and 
umbrellas.
 
 ![Apache APISIX Gift](/img/blog_img/2021-08-21-4.jpg)
 
diff --git a/website/blog/2021/08/23/ApacheCon-Asia-2021.md 
b/website/blog/2021/08/23/ApacheCon-Asia-2021.md
index 3a88d9a..0b317e1 100644
--- a/website/blog/2021/08/23/ApacheCon-Asia-2021.md
+++ b/website/blog/2021/08/23/ApacheCon-Asia-2021.md
@@ -21,15 +21,15 @@ Shared by: Junxu Chen
 
 Nginx is often the first thing that comes to mind when it comes to limiting 
speed. However, Nginx is implemented through a configuration file, which 
requires reloading every time you make a change, making it extremely cumbersome 
to run and maintain. On the other hand, speed limiting conditions are limited 
to Nginx variables, making it difficult to achieve fine-grained speed limiting 
for business purposes. This session will show how to use Apache APISIX to 
achieve dynamic, fine-grained, a [...]
 
-[**View Share**](/articles/Speed-Limiting-With-Apache-APISIX)
+[**View**](/articles/Speed-Limiting-With-Apache-APISIX)
 
 ## Testing Apache APISIX resilience with Chaos Mesh
 
-Shared by: Yang Wu Shu
+Shared by: Shuyang Wu
 
 Apache APISIX is one of the leading API gateways OSS. To make sure everything 
is going as planned, APISIX uses different kinds of tests, including unit, e2e, 
and fuzzy tests. However, we are still not sure how APISIX will behave when 
some abnormal but unavoidable circumstances occur, such as network failure, IO 
stress or Pods failure. So here we use Chaos Mesh, a Kubernetes-based chaos 
engineering platform that can smoothly inject different kinds of chaos and 
integrate them into our CI p [...]
 
-[**View Share**](/articles/Test-Apache-APISIX-Resilience-With-Chaos-Mesh)
+[**View**](/articles/Test-Apache-APISIX-Resilience-With-Chaos-Mesh)
 
 ## Authentication and authorization with Apache APISIX
 
@@ -37,39 +37,39 @@ Shared by: Xinxin Zhu
 
 Authentication and authorization are very essential features in API gateways. 
This way, services located behind the gateway are protected from unauthorized 
or malicious access, data leakage, and hacking. Apache APISIX is a dynamic, 
real-time, high-performance API gateway. And it offers a number of plug-ins, 
including authentication and authorization like key-auth, Open-ID, wolf-RBAC, 
etc. This proposal describes how to use APISIX for authentication and 
authorization.
 
-[**View 
Share**](/articles/Using-Apache-APISIX-To-Do-Authentication-and-Authorization)
+[**View**](/articles/Using-Apache-APISIX-To-Do-Authentication-and-Authorization)
 
-## Relying on the community to get Apache APISIX up to speed
+## Relying on the community to let Apache APISIX grow fast
 
-Shared by: Wang Yansheng
+Shared by: Yuansheng Wang
 
 In the past year, APISIX has become the most active API gateway project in the 
world, not only because of its advanced technology, but also because of the 
highly active community. As of today, there are 225 contributors from all over 
the world, and the number is still growing rapidly. This session will introduce 
APISIX's experience in practicing "community over code". As an idealistic 
startup, how to combine with Apache culture to make the startup grow fast.
 
-[**View 
Share**](/articles/Relying-On-The-Community-To-Get-Apache-APISIX-Up-Speed)
+[**View**](/articles/Relying-On-The-Community-To-Get-Apache-APISIX-Up-Speed)
 
 ## Apache APISIX from open source project to the road to commercialization
 
-Shared by: Wen Ming
+Shared by: Ming Wen
 
 Ming Wen, Founder of api7.ai, Chairman of Apache APISIX PMC, and member of 
Apache Foundation, will speak on "Apache APISIX from Open Source to 
Commercialization".
 
-[**View Share**](/articles/Apache-APISIX-From-OpenSource-Commercialization)
+[**View**](/articles/Apache-APISIX-From-OpenSource-Commercialization)
 
 ## Using Echarts to render renderings of community events
 
-Shared by: Sun Yi
+Shared by: Yi Sun
 
 The open source repository was analyzed by 1. contributor growth curve; 2. 
monthly contributor activity; 3. to reflect the health of the open source 
project, here we share some experiences and some interesting things about how 
to make these two graphs.
 
-[**View Share**](/articles/Rendering-Community-Events-Using-ECharts)
+[**View**](/articles/Rendering-Community-Events-Using-ECharts)
 
 ## Running an open source commercialization company according to the Apache 
Way, does it work
 
-Shared by: Wen Ming
+Shared by: Ming Wen
 
 The Apache Way is a proven community success for countless open source 
projects, so does the Apache Way work for open source commercial companies? 
Does it work in the business world? Through 2 years of operating as an open 
source commercial company, Tributary Technologies hopes to answer this question 
with the company's personal experience.
 
-[**View 
Share**](/articles/Apache-APISIX-From-OpenSource-Commercialization-by-Apache-Way)
+[**View**](/articles/Apache-APISIX-From-OpenSource-Commercialization-by-Apache-Way)
 
 ## The appeal of open source
 
@@ -77,7 +77,7 @@ Shared by: Ju Zhiyuan
 
 The Apache Software Foundation's top project, Apache APISIX, and its 
subprojects have merged 250+ PRs in the last 30 days, and the contributor trend 
is very positive. In addition, the high quality mailing list, active QQ groups 
and GitHub are attracting a lot of community attention. As the Apache APISIX 
PMC, what are some of the things Apache APISIX has done to catalyze an active 
community from my perspective?
 
-[**View Share**](/articles/The-Appeal-of-OpenSource)
+[**View**](/articles/The-Appeal-of-OpenSource)
 
 ## Apache APISIX Application and Practice in Mobile Cloud Object Storage EOS
 
@@ -85,7 +85,7 @@ Shared by: Yanshan Chen
 
 This talk is about the application and practice of Apache APISIX in China 
Mobile's public cloud object storage EOS. Firstly, we introduced China Mobile's 
public cloud construction plan and the evolution of object storage products, 
then we explained why we chose Apache APISIX as the load balancing gateway, and 
introduced the three phases of EOS traffic management architecture evolution in 
detail. At the same time, we also share what practical production problems we 
have solved based on Ap [...]
 
-[**View Share**](/articles/Apache-APISIX-in-China-Mobile-Cloud)
+[**View**](/articles/Apache-APISIX-in-China-Mobile-Cloud)
 
 ## How to extend Apache APISIX as a service grid side car
 
@@ -93,28 +93,28 @@ Shared by: Chao Zhang
 
 In this topic, I will introduce the apisix-mesh-agent project, which has some 
capabilities to extend Apache APISIX as a sidecar program in a service grid 
scenario, and more importantly, it uses the xDS protocol to get configuration 
from control planes like Istio, Kuma, etc. After that, I will present future 
plans and expectations regarding the use of Apache APISIX in service grids.
 
-[**View 
Share**](/articles/How-To-Extend-Apache-APISIX-into-a-Service-Mesh-Sidecar)
+[**View**](/articles/How-To-Extend-Apache-APISIX-into-a-Service-Mesh-Sidecar)
 
 ## The Evolution of Apache APISIX
 
-Shared by: Luo Zexuan
+Shared by: Zexuan Luo
 
 In this topic, I will introduce the evolution of Apache APISIX, including: 1. 
The good decisions we made; 2. The bad decisions we made; 3. Our future plans
 
-[**View Share**](/articles/The-Evolution-of-Apache-APISIX)
+[**View**](/articles/The-Evolution-of-Apache-APISIX)
 
 ## Implementation of Kubernetes Ingress based on Apache APISIX
 
-Shared by: Jin Wei
+Shared by: Wei Jin
 
 Introducing the advantages of Apache APISIX-based Kubernetes Ingress and the 
features of Apache APISIX Ingress.
 
-[**View Share**](/articles/Apache-APISIX-Kubernetes-Ingress)
+[**View**](/articles/Apache-APISIX-Kubernetes-Ingress)
 
-## Apache APISIX's Incubator Tour
+## Apache APISIX's Incubator Journey
 
-Shared by: Wen Ming
+Shared by: Ming Wen
 
 The Incubator Journey of Apache APISIX
 
-[**View Share**](/articles/Apache-APISIX-Incubator-Journey)
+[**View**](/articles/Apache-APISIX-Incubator-Journey)
diff --git a/website/blog/2021/08/24/shanghai-meetup-recap.md 
b/website/blog/2021/08/24/shanghai-meetup-recap.md
index 0e90272..d063b91 100644
--- a/website/blog/2021/08/24/shanghai-meetup-recap.md
+++ b/website/blog/2021/08/24/shanghai-meetup-recap.md
@@ -13,17 +13,17 @@ tags: [Events]
 
 <! --truncate-->
 
-Apache APISIX Meetup Shanghai was successfully held last Saturday (August 21) 
🎉🎉🎉🎉
+Apache APISIX Meetup Shanghai was successfully held last Saturday (August 
21st) 🎉🎉🎉🎉
 
-The Meetup was initiated by [API7.AI](https://www.apiseven.com/zh), and 
invited partners such as Akiyon, AirWallex, and other partners to come together 
with Apache APISIX technical experts, Apache APISIX PMC members, and community 
technical experts to discuss about The conference was a great opportunity to 
discuss Apache APISIX community development, industry practices and other 
topics.
+The Meetup was initiated by [API7.AI](https://www.apiseven.com/zh), and 
invited partners such as iQiyi, AirWallex, and other partners to come together 
with Apache APISIX technical experts, Apache APISIX PMC members, and community 
technical experts to discuss about The conference was a great opportunity to 
discuss Apache APISIX community development, industry practices and other 
topics.
 
 Let's take a look back at some of the most memorable talks from the conference!
 
 ## Apache APISIX-based Aiki API Gateway Implementation Practice
 
-**Instructor**: He Cong
+**Instructor**: Cong He
 
-**Personal Introduction**: Senior R&D Engineer, IIG Infrastructure Department 
- Compute Cloud, mainly responsible for Aikii Gateway development and operation 
and maintenance.
+**Personal Introduction**: Senior R&D Engineer, IIG Infrastructure Department 
- Compute Cloud, mainly responsible for iQiyi Gateway development and operation 
and maintenance.
 
 **Detail of Topic**: API gateway has become an indispensable part of the 
microservice architecture. It bears the sole gateway for services to the 
outside world, but also needs to meet the common functions of many 
applications. As an online video company, Aikiy has to carry tens of millions 
of calls every day, and has extremely strict requirements for data security, 
user request response time, and system stability, so the company needs to build 
a high-performance, highly available API gat [...]
 
@@ -43,7 +43,7 @@ Let's take a look back at some of the most memorable talks 
from the conference!
 
 **Instructor**: Yang Li
 
-**Personal Introduction**: Head of AirWallex AirCloudHub Technology Platform
+**Personal Introduction**: Head of AirWallex Technology Platform
 
 **Detail of Topic**: Data is everywhere, and massive amounts of data are 
processed, transmitted, and stored all over the world every moment. However, 
the world of data is not a place outside the law, the collection and processing 
of data must comply with the laws of each country. The API gateway has a 
special position in the enterprise architecture and therefore plays a special 
role in the data sovereignty scenario.
 
@@ -51,7 +51,7 @@ Let's take a look back at some of the most memorable talks 
from the conference!
 
 ## The one who travels alone travels fast, the one who travels with many 
travels far, Apache APISIX is grateful to have you
 
-**Instructor**: Wang Yansheng
+**Instructor**: Yuansheng Wang
 
 **Personal Introduction**: Co-founder & CTO of API7.AI
 
diff --git 
a/website/blog/2021/08/25/Using-the-Apache-APISIX-OpenID-Connect-Plugin-for-Centralized-Authentication.md
 
b/website/blog/2021/08/25/Using-the-Apache-APISIX-OpenID-Connect-Plugin-for-Centralized-Authentication.md
index fef0f73..3484e3a 100644
--- 
a/website/blog/2021/08/25/Using-the-Apache-APISIX-OpenID-Connect-Plugin-for-Centralized-Authentication.md
+++ 
b/website/blog/2021/08/25/Using-the-Apache-APISIX-OpenID-Connect-Plugin-for-Centralized-Authentication.md
@@ -70,10 +70,10 @@ An Okta account already exists.
 
 ### Step 1: Configure Okta
 
-Login to your Okta account and create an Okta application, select the OIDC 
login mode and the Web Application application type.
+1. Login to your Okta account and create an Okta application, select the OIDC 
login mode and the Web Application application type.
     ![Create an Okta application](/img/blog_img/2021-08-16-4.png)
     ![Select OIDC login mode and Web Application application 
type](/img/blog_img/2021-08-16-5.png) 2.
-Set the login and logout jump URLs.
+2. Set the login and logout jump URLs.
 The "Sign-in redirect URIs" are the links that are allowed to be redirected 
after successful login, and the "Sign-out redirect URIs" are the links that are 
redirected after logging out. In this example, we set both the sign-in redirect 
and sign-out redirect URLs to `http://127.0.0.1:9080/`.
     ![Set the login and logout URL](/img/blog_img/2021-08-16-6.png)
 3. Click "Save" to save the changes after finishing the settings.
@@ -192,11 +192,11 @@ curl -XPOST 127.0.0.1:9080/apisix/admin/routes -H 
"X-Api-Key: edd1c9f034335f136f
         "openid-connect":{
             "client_id":"{YOUR_CLIENT_ID}",
             "client_secret":"{YOUR_CLIENT_SECRET}",
-            "discovery": "https://{YOUR_ISSUER}/.well 
known/openid-configuration",
-            "scope": "openid profile",
+            
"discovery":"https://{YOUR_ISSUER}/.well-known/openid-configuration";,
+            "scope":"openid profile",
             "bearer_only":false,
-            "realm": "master",
-            "introspection_endpoint_auth_method": "client_secret_post",
+            "realm":"master",
+            "introspection_endpoint_auth_method":"client_secret_post",
             "redirect_uri": "http://127.0.0.1:9080/";
         }
     },
@@ -220,12 +220,12 @@ curl -XPOST 127.0.0.1:9080/apisix/admin/routes -H 
"X-Api-Key: edd1c9f034335f136f
 3. After successful login, you can successfully access the get page in 
httpbin.org. The httpbin.org/get page will return the requested data as follows.
 
   ```sh
-  "X-Access-Token": 
"******Y0RPcXRtc0FtWWVuX2JQaFo1ZVBvSlBNdlFHejN1dXY5elV3IiwiYWxnIjoiUlMyNTYifQ.***
 
TVER3QUlPbWZYSVRzWHRxRWh2QUtQMWRzVDVGZHZnZzAiLCJpc3MiOiJodHRwczovL3FxdGVzdG1hbi5va3RhLmNvbSIsImF1ZCI6Imh0dHBzOi8vcXF0ZXN0bWFuLm9rdGEuY29tIiwic3ViIjoiMjgzMDE4Nzk5QHFxLmNvbSIsImlhdCI6MTYyODEyNjIyNSwiZXhwIjoxNjI4MTI5ODI1LCJjaWQiOiIwb2ExMWc4ZDg3TzBGQ0dYZzY5NiIsInVpZCI6IjAwdWEwNWVjZEZmV0tMS3VvNjk1Iiwic2NwIjpbIm9wZW5pZCIsInByb2Zpb
 ***. ****iBshIcJhy8QNvzAFD0fV4gh7OAdTXFMu5k0hk0JeIU6Tfg_Mh-josf [...]
-  "X-Id-Token": "****** 
aTdDRDJnczF5RnlXMUtPZUtuSUpQdyIsImFtciI6WyJwd2QiXSwic3ViIjoiMDB1YTA1ZWNkRmZXS0xLdW82OTUiLCJpc3MiOiJodHRwczpcL1wvcXF0ZXN0bWFuLm9rdGEuY29tIiwiYXVkIjoiMG9hMTFnOGQ4N08wRkNHWGc2OTYiLCJuYW1lIjoiUGV0ZXIgWmh1IiwianRpIjoiSUQuNGdvZWo4OGUyX2RuWUI1VmFMeUt2djNTdVJTQWhGNS0tM2l3Z0p5TTcxTSIsInZlciI6MSwicHJlZmVycmVkX3VzZXJuYW1lIjoiMjgzMDE4Nzk5QHFxLmNvbSIsImV4cCI6MTYyODEyOTgyNSwiaWRwIjoiMDBvYTA1OTFndHAzMDhFbm02OTUiLCJub25jZSI6ImY3MjhkZDMxMWRjNGY3MTI4YzlmNjViOGYzYjJkMDgyIiwiaWF0Ijox
 [...]
-  "X-Userinfo": "***** 
lfbmFtZSI6IlpodSIsImxvY2FsZSI6ImVuLVVTIiwicHJlZmVycmVkX3VzZXJuYW1lIjoiMjgzMDE4Nzk5QHFxLmNvbSIsInVwZGF0ZWRfYXQiOjE2MjgwNzA1ODEsInpvbmVpbmZvIjoiQW1lcmljYVwvTG9zX0FuZ2VsZXMiLCJzdWIiOiIwMHVhMDVlY2RGZldLTEt1bzY5NSIsImdpdmVuX25hbWUiOiJQZXRlciIsIm5hbWUiOiJQZXRl
 ****"
+  "X-Access-Token": 
"******Y0RPcXRtc0FtWWVuX2JQaFo1ZVBvSlBNdlFHejN1dXY5elV3IiwiYWxnIjoiUlMyNTYifQ.***TVER3QUlPbWZYSVRzWHRxRWh2QUtQMWRzVDVGZHZnZzAiLCJpc3MiOiJodHRwczovL3FxdGVzdG1hbi5va3RhLmNvbSIsImF1ZCI6Imh0dHBzOi8vcXF0ZXN0bWFuLm9rdGEuY29tIiwic3ViIjoiMjgzMDE4Nzk5QHFxLmNvbSIsImlhdCI6MTYyODEyNjIyNSwiZXhwIjoxNjI4MTI5ODI1LCJjaWQiOiIwb2ExMWc4ZDg3TzBGQ0dYZzY5NiIsInVpZCI6IjAwdWEwNWVjZEZmV0tMS3VvNjk1Iiwic2NwIjpbIm9wZW5pZCIsInByb2Zpb***.****iBshIcJhy8QNvzAFD0fV4gh7OAdTXFMu5k0hk0JeIU6Tfg_Mh-josfap3
 [...]
+  "X-Id-Token": 
"******aTdDRDJnczF5RnlXMUtPZUtuSUpQdyIsImFtciI6WyJwd2QiXSwic3ViIjoiMDB1YTA1ZWNkRmZXS0xLdW82OTUiLCJpc3MiOiJodHRwczpcL1wvcXF0ZXN0bWFuLm9rdGEuY29tIiwiYXVkIjoiMG9hMTFnOGQ4N08wRkNHWGc2OTYiLCJuYW1lIjoiUGV0ZXIgWmh1IiwianRpIjoiSUQuNGdvZWo4OGUyX2RuWUI1VmFMeUt2djNTdVJTQWhGNS0tM2l3Z0p5TTcxTSIsInZlciI6MSwicHJlZmVycmVkX3VzZXJuYW1lIjoiMjgzMDE4Nzk5QHFxLmNvbSIsImV4cCI6MTYyODEyOTgyNSwiaWRwIjoiMDBvYTA1OTFndHAzMDhFbm02OTUiLCJub25jZSI6ImY3MjhkZDMxMWRjNGY3MTI4YzlmNjViOGYzYjJkMDgyIiwiaWF0IjoxN
 [...]
+  "X-Userinfo": 
"*****lfbmFtZSI6IlpodSIsImxvY2FsZSI6ImVuLVVTIiwicHJlZmVycmVkX3VzZXJuYW1lIjoiMjgzMDE4Nzk5QHFxLmNvbSIsInVwZGF0ZWRfYXQiOjE2MjgwNzA1ODEsInpvbmVpbmZvIjoiQW1lcmljYVwvTG9zX0FuZ2VsZXMiLCJzdWIiOiIwMHVhMDVlY2RGZldLTEt1bzY5NSIsImdpdmVuX25hbWUiOiJQZXRlciIsIm5hbWUiOiJQZXRl****"
   ```
 
-where.
+In which:
 
 **X-Access-Token**: Apache APISIX puts the access token obtained from the user 
provider into the X-Access-Token request header, which can be optionally put 
into the Authorization request header via access_token_in_authorization_header 
in the plugin configuration.
 
@@ -249,9 +249,9 @@ Okta is a customizable, secure centralized authentication 
solution. Okta can add
 
 ## About Apache APISIX
 
-Apache APISIX is a dynamic, real-time, high-performance API gateway that 
provides load balancing, dynamic upstream, grayscale publishing, service 
meltdown, authentication, observability, and other rich traffic management 
features. You can use Apache APISIX for traditional north-south traffic, as 
well as east-west traffic between services, or as a [Kubernetes Ingress 
Controller](https://github.com/apache/apisix-ingress-controller) .
+Apache APISIX is a dynamic, real-time, high-performance API gateway that 
provides load balancing, dynamic upstream, grayscale publishing, service 
meltdown, authentication, observability, and other rich traffic management 
features. You can use Apache APISIX for traditional north-south traffic, as 
well as east-west traffic between services, or as a [Kubernetes Ingress 
Controller](https://github.com/apache/apisix-ingress-controller).
 
-Hundreds of enterprises worldwide have used Apache APISIX to handle 
business-critical traffic, covering finance, Internet, manufacturing, retail, 
carriers, and more, such as NASA, the EU's Digital Factory, China Airlines, 
China Mobile, Tencent, Huawei, Weibo, NetEase, Shell Housing, 360, Taikang, 
Nespresso's Tea, and more.
+Hundreds of enterprises worldwide have used Apache APISIX to handle 
business-critical traffic, covering finance, Internet, manufacturing, retail, 
carriers, and more, such as NASA, the EU's Digital Factory, China Airlines, 
China Mobile, Tencent, Huawei, Sina Weibo, NetEase, Ke, 360, Taikang, Nayuki, 
and more.
 
 Github: https://github.com/apache/apisix
 
diff --git a/website/blog/2021/08/30/Ingress-Meeting.md 
b/website/blog/2021/08/30/Ingress-Meeting.md
index 90293e0..3db0e96 100644
--- a/website/blog/2021/08/30/Ingress-Meeting.md
+++ b/website/blog/2021/08/30/Ingress-Meeting.md
@@ -13,7 +13,7 @@ tags: [Events]
 
 <! --truncate-->
 
-## Meeting times
+## Meeting Schedule
 
 Every two weeks (Wednesdays) at 2pm, each meeting is about 1 hour.
 
@@ -33,7 +33,7 @@ You can [this 
document](https://docs.qq.com/doc/DSEhMeGJ0UXdydFJy) to leave the
 - Experiences and pitfalls in using Apache APISIX Ingress Controller by 
yourself or your team
 - Testimonials or complaints about Apache APISIX Ingress Controller
 
-Of course, you are also very welcome to give your opinions or contribute your 
ideas to the construction of the Apache APISIX community, if you have 
suggestions and ideas for the meeting, please feel free to 
[issue](https://github.com/apache/apisix-ingress-controller/issues/) 614) and 
reply to it!
+Of course, you are also very welcome to give your opinions or contribute your 
ideas to the construction of the Apache APISIX community, if you have 
suggestions and ideas for the meeting, please feel free to 
[issue](https://github.com/apache/apisix-ingress-controller/issues/614) and 
reply to it!
 
 We welcome you to join us to discuss the Apache APISIX Ingress solution, and 
we welcome you to join the community of developers to build a better Apache 
APISIX Ingress Controller.
 
diff --git a/website/blog/2021/08/30/weekly-report.md 
b/website/blog/2021/08/30/weekly-report.md
index 09b6f1c..ae71c7c 100644
--- a/website/blog/2021/08/30/weekly-report.md
+++ b/website/blog/2021/08/30/weekly-report.md
@@ -60,7 +60,7 @@ We've also put together some issues for those new to the 
community! If you are i
 
 **Link**: [Issue #3931](https://github.com/apache/apisix/issues/3931)
 
-**Issue Description**: http_to_https in the redirect plugin lacks curl tests, 
need to add curl tests for http_to_https in the redirect plugin and update the 
documentation [Apache APISIX redirect plugin](http://apisix.apache.org/docs/ 
apisix/plugins/redirect).
+**Issue Description**: http_to_https in the redirect plugin lacks curl tests, 
need to add curl tests for http_to_https in the redirect plugin and update the 
documentation [Apache APISIX redirect 
plugin](http://apisix.apache.org/docs/apisix/plugins/redirect).
 
 ## Feature highlights of the week
 
@@ -82,7 +82,7 @@ We've also put together some issues for those new to the 
community! If you are i
 
 ## Recommended blog posts of the week
 
-- [Centralized Authentication with the OpenID Connect Plugin for Apache 
APISIX](https://apisix.apache.org/blog/2021/08/25/Using-the-Apache-APISIX-OpenID-Connect-Plugin-
 for-Centralized-Authentication/): Apache APISIX is a dynamic, real-time, 
high-performance API gateway that provides rich traffic management features 
such as load balancing, dynamic upstream, grayscale publishing, service 
meltdown, authentication, observability, etc. Apache APISIX not only supports 
plug-in dynamic changes  [...]
+- [Centralized Authentication with the OpenID Connect Plugin for Apache 
APISIX](https://apisix.apache.org/blog/2021/08/25/Using-the-Apache-APISIX-OpenID-Connect-Plugin-for-Centralized-Authentication/):
 Apache APISIX is a dynamic, real-time, high-performance API gateway that 
provides rich traffic management features such as load balancing, dynamic 
upstream, grayscale publishing, service meltdown, authentication, 
observability, etc. Apache APISIX not only supports plug-in dynamic changes a 
[...]
 
 - Why did APISIX choose the Nginx + Lua technology stack?] 
(https://apisix.apache.org/blog/2021/08/25/Why-Apache-APISIX-chose-Nginx-and-Lua):
 Provides the historical background and advantages of the Nginx + Lua 
technology stack chosen by APISIX, noting that " High performance + 
flexibility" is what makes APISIX stand out from other gateways.
 
diff --git "a/website/blog/2021/08/31/Apache APISIX \303\227 
KubeSphere-a-better-gateway-and-K8S-Ingress-Controller.md" 
"b/website/blog/2021/08/31/Apache APISIX \303\227 
KubeSphere-a-better-gateway-and-K8S-Ingress-Controller.md"
index b8675c1..3c40245 100644
--- "a/website/blog/2021/08/31/Apache APISIX \303\227 
KubeSphere-a-better-gateway-and-K8S-Ingress-Controller.md"        
+++ "b/website/blog/2021/08/31/Apache APISIX \303\227 
KubeSphere-a-better-gateway-and-K8S-Ingress-Controller.md"        
@@ -52,8 +52,8 @@ NAMESPACE: apisix
 STATUS: deployed
 REVISION: 1
 TEST SUITE: None
-NOTES. 1:
-Get the application URL by running these commands:
+NOTES.
+1: Get the application URL by running these commands:
   export NODE_PORT=$(kubectl get --namespace apisix -o 
jsonpath="{.spec.ports[0].nodePort}" services apisix-gateway)
   export NODE_IP=$(kubectl get nodes --namespace apisix -o 
jsonpath="{.items[0].status.addresses[0].address}")
   echo http://$NODE_IP:$NODE_PORT
@@ -86,12 +86,12 @@ Just select Services - Stateless Services and create it.
 You can see the successful deployment in KubeSphere's Services and Loads 
interface, or you can check directly in the terminal to see if the deployment 
has succeeded.
 
 ```shell
-➜ ~ kubectl get pods,svc -l app=httpbin
-NAME READY STATUS RESTARTS AGE
-pod/httpbin-v1-7d6dc7d5f-5lcmg 1/1 Running 0 48s
+~ kubectl get pods,svc -l app=httpbin
+NAME                             READY   STATUS    RESTARTS   AGE
+pod/httpbin-v1-7d6dc7d5f-5lcmg   1/1     Running   0          48s
 
-NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
-service/httpbin ClusterIP 10.96.0.5 <none> 80/TCP 48s
+NAME              TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
+service/httpbin   ClusterIP   10.96.0.5    <none>        80/TCP    48s
 ```
 
 ## Using Apache APISIX as a Gateway Proxy
@@ -99,7 +99,7 @@ service/httpbin ClusterIP 10.96.0.5 <none> 80/TCP 48s
 We start by demonstrating how to use Apache APISIX as a gateway to proxy 
services in a Kubernetes cluster.
 
 ```shell
-root@apisix:~$ kubectl -n apisix exec -it ``kubectl -n apisix get pods -l 
app.kubernetes.io/name=apisix -o name` -- bash
+root@apisix:~$ kubectl -n apisix exec -it `kubectl -n apisix get pods -l 
app.kubernetes.io/name=apisix -o name` -- bash
 bash-5.1# curl httpbin.default/get
 {
   "args": {},
@@ -129,7 +129,7 @@ bash-5.1# curl 
"http://127.0.0.1:9180/apisix/admin/routes/1"; -H "X-API-KEY: edd1
     }
   }
 }'
-{"node":{"key":"\/apisix\/routes\/1", "value":{"host": "httpbin.org", 
"update_time":1630060883, "uri":"\/*", "create_time":1630060883," priority":0, 
"upstream":{"type": "roundrobin", "pass_host": "pass", 
"nodes":{"httpbin.default:80":1}, "hash_on": "vars", "scheme": "http"}, "id": 
"1", "status":1}}, "action": "set"}
+{"node":{"key":"\/apisix\/routes\/1","value":{"host":"httpbin.org","update_time":1630060883,"uri":"\/*","create_time":1630060883,"priority":0,"upstream":{"type":"roundrobin","pass_host":"pass","nodes":{"httpbin.default:80":1},"hash_on":"vars","scheme":"http"},"id":"1","status":1}},"action":"set"}
 ```
 
 You'll get output similar to the above, next verify that the proxy is 
successful:
@@ -152,10 +152,10 @@ bash-5.1# curl http://127.0.0.1:9080/get -H "HOST: 
httpbin.org"
 The above output shows that the traffic of the example project has been 
proxied through Apache APISIX. Next, let's try to access the sample project 
outside the cluster via Apache APISIX.
 
 ```shell
-root@apisix:~$ kubectl -n apisix get svc -l app.kubernetes.io/name=apisix
-NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
-apisix-admin ClusterIP 10.96.33.97 <none> 9180/TCP 22m
-apisix-gateway NodePort 10.96.126.83 <none> 80:31441/TCP 22m
+root@apisix:~$ kubectl  -n apisix get svc -l app.kubernetes.io/name=apisix
+NAME             TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)        AGE
+apisix-admin     ClusterIP   10.96.33.97    <none>        9180/TCP       22m
+apisix-gateway   NodePort    10.96.126.83   <none>        80:31441/TCP   22m
 ```
 
 When deployed using Helm chart, the Apache APISIX port is exposed by default 
as a NodePort. We use the Node IP + NodePort port for access testing.
@@ -194,7 +194,7 @@ After saving, you can see the following screen.
 Test if the proxy is successful under the terminal.
 
 ```shell
-root@apisix:~$ curl http://172.18.0.5:31441/get -H "HOST: http-ing.org" { 
"args": {}, "headers": { "Accept": "*/*", "Host": "http-ing.org", "User 
-Agent": "curl/7.76.1", "X-Forwarded-Host": "http-ing.org" }, "origin": 
"10.244.2.1", "url": "http://http-ing.org/get"}
+root@apisix:~$ curl http://172.18.0.5:31441/get -H "HOST: http-ing.org"  {  
"args": {},   "headers": {    "Accept": "*/*",     "Host": "http-ing.org",     
"User-Agent": "curl/7.76.1",     "X-Forwarded-Host": "http-ing.org"  },   
"origin": "10.244.2.1",   "url": "http://http-ing.org/get"}
 ```
 
 You can see that it is also proxied properly.
diff --git 
a/website/i18n/zh/docusaurus-plugin-content-blog/2021/08/10/apisix-nginx.md 
b/website/i18n/zh/docusaurus-plugin-content-blog/2021/08/10/apisix-nginx.md
index f06a1c1..a0b541f 100644
--- a/website/i18n/zh/docusaurus-plugin-content-blog/2021/08/10/apisix-nginx.md
+++ b/website/i18n/zh/docusaurus-plugin-content-blog/2021/08/10/apisix-nginx.md
@@ -170,7 +170,7 @@ local function init(env)
 
 当然,Apache APISIX 允许用户修改 nginx.conf 模板中的部分数据,具体方法是模仿 conf/config-default.yaml 
的语法修改 conf/config.yaml 配置。其实现原理参见 `read_yaml_conf` 函数:
 
-```conf
+```lua
 function _M.read_yaml_conf(apisix_home)
     local local_conf_path = profile:yaml_path("config-default")
     local default_conf_yaml, err = util.read_file(local_conf_path)
@@ -477,7 +477,7 @@ end
 
 从 nginx.conf 中可以看到,访问任意域名、URI 的请求都会匹配到 `http_access_phase` 这个 lua 函数:
 
-```conf
+```lua
 server {
     server_name _;
     location / {

Reply via email to