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.
+
+
+
+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。
+
+
+
+但是很多人可能会对`ngx.exit`理解出现偏差,即如果你在`access`阶段执行`ngx.exit`,只是中断了请求处理阶段,响应阶段仍然会处理。比如,如果你配置了`response-rewrite`插件,它会强制覆盖你的响应信息(如响应代码)。