描述
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 插件已经生效了。