微服务引擎MSE

重写Proxy-rewrite插件

2025-05-27 07:56:01

描述

proxy-rewrite 是一个上游服务信息重写插件。

作用范围

该插件即可用于全局插件,也可用于路由级插件。全局插件配置的优先级高于路由级插件配置,当同时在某一路由上配置了proxy-rewrite的全局插件和路由级插件时,以全局插件配置中设置的属性值为准。

属性

名称

类型

必选项

默认值

有效值

描述

uri

string



转发到上游的新   uri 地址。

regex_uri

array[string]


["GET",   "POST", "PUT", "HEAD", "DELETE", "OPTIONS","MKCOL",   "COPY", "MOVE", "PROPFIND",   "PROPFIND","LOCK", "UNLOCK", "PATCH",   "TRACE"]

转发到上游的新   uri 地址, 使用正则表达式匹配来自客户端的 uri,当匹配成功后使用模板替换转发到上游的 uri, 未匹配成功时将客户端请求的 uri 转发至上游。当 uri 和 regex_uri 同时存在时,uri 优先被使用。

host

string



转发到上游的新   host 地址

如何使用

在配置窗口页以 YAML 格式填写

配置示例

下面是一个示例,在指定的 API 上开启了proxy-rewrite 插件

curl http://192.168.0.95:27152/apisix/admin/routes/1  -H 'X-API-KEY: 2571e288e8f4cd273cab342440068469' -X PUT -d '

 {

     "methods": ["GET"],

     "uri": "/test/index.html",

     "plugins": {

         "proxy-rewrite": {

             "uri": "/test/home.html",

             "scheme": "http",

             "host": "iresty.com",

             "headers": {

                 "X-Api-Version": "v1",

                 "X-Api-Engine": "apisix",

                 "X-Api-useless": ""

             }

         }

     },

     "upstream": {

         "type": "roundrobin",

         "nodes": {

             "127.0.0.1:80": 1

         }

     }

 }'

 

启用/停用

在配置页面设置生效开关

验证插件

发送请求,查看上游服务的 access.log,如果输出信息与配置一致:

curl -X GET http://192.168.0.95:27152/test/index.html

 

 127.0.0.1 - [2/Aug/2023:10:52:20 +0800] iresty.com GET /test/home.html HTTP/1.1 200 38 - curl/7.29.0 - 0.000 199 107

这就表示proxy-rewrite 插件已经生效了。


Hmeq93nIWexy