You need to enable JavaScript to run this app.
文档中心
API 网关

API 网关

复制全文
下载 pdf
路由策略
配置重写策略
复制全文
下载 pdf
配置重写策略
API 网关支持为路由配置 URL 重写策略,您可以为指定路由开启重写。本文介绍如何为路由配置重写策略。​
背景信息​
在某些应用场景中,后端服务提供的 URL 与 API 网关规则中配置的路径不同。默认情况下,API 网关将访问路径直接转发到后端服务中的相同路径,如果不配置 URL 重写规则,由于访问路径和服务路径不同,访问将返回404。此时,需要使用 URL 重写规则,改写服务访问的 URL,使其能够访问到后端服务的真实路径。​
前提条件​
已创建路由,详情可参见 创建路由。​
操作步骤​
  1. 登录 API 网关控制台。​
  1. 在顶部导航栏,选择目标地域。​
  1. 在左侧导航栏选择 路由管理 > 路由列表。​
  1. 在路由列表中,选择目标路由,单击 操作 列下的 编辑。​
  1. 在编辑路由页面的 高级配置 区域,勾选 URL重写 后的 开启,并配置 URL 重写策略。​
  • ​​​
  • ​
    配置项​
    说明​
    URL 重写​
    URL 重写可以改写客户端发送给 API 网关的请求路径 Path,实现 API 网关转发给后端服务的路径 Path 与客户端发送给 API 网关的请求路径 Path 不同。​
    • 匹配路径 Path:显示当前路由的匹配方式和匹配 Path。其中匹配方式包括精确匹配、前缀匹配和正则匹配。​
    • 重写路径 Path:根据需要输入目标重写路径 Path。​
    ​
  • URL 重写示例,如下表所示。​
  • ​
    方式​
    含义​
    示例​
    精准匹配 + URL 重写​
    完全修改原始请求的 Path。​
    • 精准匹配路径:/app/test​
    • URL 重写路径:/​
    表示原始请求的 Path 为/app/test,但转发给后端服务的 Path 为/。​
    前缀匹配 + URL 重写​
    修改原始请求的 Path 前缀。​
    • 前缀匹配路径:/app/​
    • URL 重写路径:/​
    • 若原始请求的 Path 为/app/test,则转发给后端服务的 Path 为/test。​
    ​
说明​
若匹配方式使用前缀匹配,且重写 URL 后的路径以/ 结尾,那么前缀匹配路径也需修改为以 / 结尾。​
  1. 单击 确定,完成配置。​
结果验证​
在 API 网关实例的后端服务中部署 Nginx 服务器,并指定路径为/,当路由策略中配置的路径为/demo,且未配置 URL 重写规则时,由于路径不一致,直接通过 API 网关访问服务时,返回404。​
​
curl -H "Host: apig-example.com" http://180.xxx.xxx.xxx/demo​
​
预期返回结果如下:​
​
<html>​
<head><title>404 Not Found</title></head>​
<body>​
<center><h1>404 Not Found</h1></center>​
<hr><center>nginx</center>​
</body>​
</html>​
​
在 API 网关的路由策略中开启并配置了 URL 重写规则后,使用以下命令访问服务。​
​
curl -H "Host: apig-example.com" http://180.xxx.xxx.xxx/demo​
​
预期输出如下,重写策略将访问请求中的/demo改写成了/,并能够正确地访问到后端服务。​
​
<!DOCTYPE html>​
<html>​
<head>​
<title>Welcome to nginx!</title>​
<style>html { color-scheme: light dark; }​
body { width: 35em; margin: 0 auto;​
font-family: Tahoma, Verdana, Arial, sans-serif; }​
</style>​
</head>​
<body>​
<h1>Welcome to nginx!</h1>​
<p>If you see this page, the nginx web server is successfully installed and​
working. Further configuration is required.</p>​
​
<p>For online documentation and support please refer to​
<a href="http://nginx.org/">nginx.org</a>.<br/>​
Commercial support is available at​
<a href="http://nginx.com/">nginx.com</a>.</p>​
​
<p><em>Thank you for using nginx.</em></p>​
</body>​
</html>​
​
​
​
​
​
​
最近更新时间:2025.03.10 17:43:18
这个页面对您有帮助吗?
有用
有用
无用
无用