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

yousa pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix.git


The following commit(s) were added to refs/heads/master by this push:
     new ec5ba5f  docs: add Attention message for 'response-rewrite' doc. 
(#2732)
ec5ba5f is described below

commit ec5ba5f68cf8ab48f41ae588a1ec7440c7f8812e
Author: Yousa <[email protected]>
AuthorDate: Wed Nov 18 12:51:12 2020 +0800

    docs: add Attention message for 'response-rewrite' doc. (#2732)
    
    * 1. add Summary for 'zh-cn/plugins/response-rewrite.md'
    2. add Attention message for 'response-rewrite' doc.
    
    * fix typo
    
    * response rewrite plugin, rewrite the content from upstream.
    ->
    response rewrite plugin, rewrite the content returned by the upstream as 
well as Apache APISIX itself.
---
 doc/plugins/response-rewrite.md       | 11 ++++++++-
 doc/zh-cn/plugins/response-rewrite.md | 43 +++++++++++++++++++++++++++++++----
 2 files changed, 49 insertions(+), 5 deletions(-)

diff --git a/doc/plugins/response-rewrite.md b/doc/plugins/response-rewrite.md
index 60eb093..cb8ccf8 100644
--- a/doc/plugins/response-rewrite.md
+++ b/doc/plugins/response-rewrite.md
@@ -26,10 +26,11 @@
 - [**How To Enable**](#how-to-enable)
 - [**Test Plugin**](#test-plugin)
 - [**Disable Plugin**](#disable-plugin)
+- [**Attention**](#Attention)
 
 ## Name
 
-response rewrite plugin, rewrite the content from upstream.
+response rewrite plugin, rewrite the content returned by the upstream as well 
as Apache APISIX itself.
 
 **senario**:
 
@@ -116,3 +117,11 @@ curl http://127.0.0.1:9080/apisix/admin/routes/1  -H 
'X-API-KEY: edd1c9f034335f1
 ```
 
 The `response rewrite` plugin has been disabled now. It works for other 
plugins.
+
+## Attention
+
+`ngx.exit` will interrupt the execution of the current request and return 
status code to Nginx.
+
+![](https://cdn.jsdelivr.net/gh/Miss-you/img/picgo/20201113010623.png)
+
+However, if you execute `ngx.exit` during the access phase, it only interrupts 
the request processing phase, and the response phase will still process it, 
i.e. if you configure the `response-rewrite` plugin, it will force overwriting 
of your response information (e.g. response status code).
diff --git a/doc/zh-cn/plugins/response-rewrite.md 
b/doc/zh-cn/plugins/response-rewrite.md
index 40c259f..cad0a8f 100644
--- a/doc/zh-cn/plugins/response-rewrite.md
+++ b/doc/zh-cn/plugins/response-rewrite.md
@@ -19,12 +19,21 @@
 
 - [English](../../plugins/response-rewrite.md)
 
-# response-rewrite
+# 目录
 
-该插件支持修改上游服务返回的 body 和 header 信息。
+- [**response-rewrite**](#response-rewrite)
+- [**配置参数**](#配置参数)
+- [**开启插件**](#开启插件)
+- [**测试插件**](#测试插件)
+- [**禁用插件**](#禁用插件)
+- [**注意事项**](#注意事项)
+
+## response-rewrite
+
+该插件支持修改上游服务或网关本身返回的 body 和 header 信息。
 
 使用场景:
-1、可以设置 `Access-Control-Allow-*` 等 header 信息,来实现 CORS (跨域资源共享)的功能。
+1、可以设置 `Access-Control-Allow-*` 等 header 信息,来实现 CORS (跨域资源共享)的功能。
 2、另外也可以通过配置 status_code 和 header 里面的 Location 来实现重定向,当然如果只是需要重定向功能,最好使用 
[redirect](redirect.md) 插件。
 
 ## 配置参数
@@ -40,7 +49,7 @@
 
 ### 开启插件
 
-下面是一个示例,在指定的 route 上开启了 `response rewrite` 插件:
+下面是一个示例,在指定的 route 上开启了 `response rewrite` 插件:
 
 ```shell
 curl http://127.0.0.1:9080/apisix/admin/routes/1  -H 'X-API-KEY: 
edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
@@ -85,3 +94,29 @@ X-Server-status: on
 
 {"code":"ok","message":"new json body"}
 ```
+
+### 禁用插件
+
+禁用`response-rewrite`插件很简单。你不需要重新启动服务,只需要在插件配置中删除相应的 json 配置,它将立即生效。
+
+```shell
+curl http://127.0.0.1:9080/apisix/admin/routes/1  -H 'X-API-KEY: 
edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
+{
+    "methods": ["GET"],
+    "uri": "/test/index.html",
+    "upstream": {
+        "type": "roundrobin",
+        "nodes": {
+            "127.0.0.1:80": 1
+        }
+    }
+}'
+```
+
+## 注意事项
+
+`ngx.exit`将中断当前请求的执行,并返回状态码给 Nginx。
+
+![](https://cdn.jsdelivr.net/gh/Miss-you/img/picgo/20201113010623.png)
+
+但是很多人可能会对`ngx.exit`理解出现偏差,即如果你在`access`阶段执行`ngx.exit`,只是中断了请求处理阶段,响应阶段仍然会处理。比如,如果你配置了`response-rewrite`插件,它会强制覆盖你的响应信息(如响应代码)。

Reply via email to