a6-plugin-proxy-rewrite
概览
proxy-rewrite 插件会在 Apache APISIX转发请求前重写请求属性
可以修改 URI 路径、Host 请求头、HTTP
方法和 scheme,也可以新增、设置或移除请求头,而无需修改
后端服务。
适用场景
- 转发前重写 URI 路径,例如移除
/api/v1这样的前缀 - 重写 Host 请求头以适配后端路由
- 修改 HTTP 方法,例如将 POST 转换为 PUT
- 代理前添加、设置或移除请求头
- 使用基于正则的 URI 重写处理复杂路径转换
- 代理时在 HTTP 和 HTTPS 之间切换 scheme
插件配置参考(路由/服务)
| 字段 | 类型 | 是否必填 | 默认值 | 说明 |
|---|---|---|---|---|
uri | string | 否 | — | 新的上游请求 URI。支持 NGINX 变量(例如 $uri、$arg_name)。 |
method | string | 否 | — | 覆盖 HTTP 方法,必须使用大写形式:GET、POST、PUT、DELETE 等。 |
host | string | 否 | — | 发送到上游的新 Host 请求头值。 |
scheme | string | 否 | — | 上游请求使用的新 scheme:http 或 https。 |
headers | object | 否 | — | 用于通过 set、add 和 remove 字段操作请求头的对象。 |
headers.set | object | 否 | — | 设置(覆盖)请求头。键值对形式,支持 NGINX 变量。 |
headers.add | object | 否 | — | 追加请求头。键值对形式,即使请求头已存在也会追加。 |
headers.remove | array[string] | 否 | — | 移除请求头。填写要移除的请求头名称列表。 |
regex_uri | array[string] | 否 | — | 包含两个字符串的数组:[pattern, replacement]。使用 PCRE 正则重写 URI。 |
use_real_request_uri_unsafe | boolean | 否 | false | 使用原始未转义 URI。存在安全风险,仅在理解影响后启用。 |
**优先级:**如果同时设置 uri 和 regex_uri,则 uri 优先。