首页/云/云网络与负载均衡速查/重写与重定向规则
负载均衡54 条

重写与重定向规则

七层入口可以配置路径重写(改写转发给后端的路径)与重定向(返回 3xx 让客户端跳转):重写适合外部路径与后端接口不一致的场景,重定向适合域名迁移与目录调整。

重写与重定向的区别

七层入口可以配置两类动作:路径重写(改写请求路径后再转发给后端)与重定向(直接返回 3xx 让客户端跳到新地址)。重写对客户端透明,后端看到的是改写后的路径,适合外部路径与后端接口不一致的情况;重定向会改变客户端地址栏,适合域名迁移与目录调整。

基本信息

重写 Rewrite改写路径后转发,客户端无感知
重定向 Redirect返回 301 或 302,客户端自行跳转
典型用途重写用于路径映射,重定向用于域名与目录迁移
前提重写规则要与后端路由一致
验证方式从客户端发起请求并核对后端日志中实际收到的路径

典型使用场景

  • 外部路径 /v1 对应后端 /api/v1,用重写做映射
  • 域名迁移时把旧域名 301 到新域名,保留搜索权重
  • HTTP 统一跳转到 HTTPS
  • 旧目录结构调整后保留跳转,避免用户拿到 404
  • 多版本接口共存时用重写把新路径指向新后端

验证重写与跳转行为

验证重写与跳转行为
# 验证重写:关注返回码与后端日志中的路径
curl -s -o /dev/null -w 'code=%{http_code}\n' http://<LB地址>/v1/ping
# 验证重定向:关注 Location 头
curl -sI http://<LB地址>/old-path | grep -i -E 'HTTP/|location'
# 检查是否存在跳转循环:连续跟随后确认最终落点
curl -sIL http://<LB地址>/old-path | grep -i -E '^HTTP/|location'

两类动作对照

动作客户端感知典型场景
重写 Rewrite无外部路径与后端接口不一致
重定向 Redirect地址栏改变域名迁移、目录调整
301 永久可能被浏览器长期缓存确定不再回退的迁移
302 临时不长期缓存灰度与临时跳转
重写规则与后端路由强耦合:后端路径调整时要同步检查入口规则,否则会出现整片路径 404。
使用 301 前要确认迁移是最终态:浏览器会长期缓存永久跳转,回滚时用户可能仍被跳到旧目标。

变更后的验证

重写与跳转变更后要同时验证返回码、Location 头与后端日志中的实际路径,只测其中一项容易漏掉问题。

易错点

  • 重写规则与后端路由不一致,请求返回 404 且不易定位
  • 跳转目标又命中跳转规则,形成循环重定向,客户端报错
  • 使用 301 后发现方案要回退,浏览器缓存让部分用户长期受影响
  • 只测了返回码没核对后端日志中的实际路径,重写是否生效无从确认

数据来源与参考

  • 阿里云 ALB 重写与重定向文档
  • 腾讯云 CLB 重定向配置
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌