HTTP 强制跳转 HTTPS 怎么配
业务只通过 HTTPS 暴露时,需要在七层入口把 HTTP 请求跳转到 HTTPS,避免用户输入 http 地址时看到空白页或证书错误。跳转配置在监听的重定向动作或转发规则中开启,状态码按语义选择:301 表示永久跳转、302 表示临时跳转。配置时要注意为健康检查与内部回源请求留出例外。
基本信息
| 位置 | 七层监听的重定向动作,或转发规则中的跳转配置 |
|---|---|
| 状态码 | 301 永久跳转 / 302 临时跳转,按业务语义选择 |
| 例外 | 健康检查、内部回源请求通常需要豁免跳转 |
| 验证 | curl -I 访问 http 地址应返回 301/302 且 Location 指向 https |
| 适用范围 | 仅在七层生效;四层监听无法识别 HTTP |
| 常见范围 | 建议覆盖全部路径而非只跳首页 |
典型使用场景
- 站点只部署 HTTPS,需要把 http 访问统一引导到加密通道
- 减少用户手动输入 http 后看到错误页的困惑
- 配合合规要求,避免明文流量进入业务系统
- 多域名入口统一跳转,运维只需维护一份规则
- 临时切换期用 302 便于随时回退,稳定后再改 301
验证跳转链路
验证跳转链路
curl -sI http://example.com/ | head -5 # 期望看到 301/302 与 Location
curl -sI http://example.com/deep/path | head -5 # 确认深层路径同样跳转
# 若只跳首页,说明规则只覆盖了根路径
curl -sI https://example.com/ | head -3 # 确认目标地址可正常访问状态码选择
| 状态码 | 含义 | 建议 |
|---|---|---|
| 301 | 永久跳转 | 正式切换完成后使用,浏览器会长期记住 |
| 302 | 临时跳转 | 灰度或临时场景使用,便于回退 |
| 返回正常内容 | 未配置跳转 | 检查规则是否命中该域名与路径 |
| 循环跳转 | 规则配置错误 | 检查目标地址是否又触发了跳转条件 |
跳转只在七层生效;四层监听无法识别 HTTP 协议,需要由后端应用处理或把入口改为七层监听。
跳转规则要豁免健康检查路径:探活接口返回 301 会让后端被判定异常,这类故障常被误判为证书或网络问题。