HTTP 重定向

目录

基本概念

HTTP 重定向是 ALB 提供的一项功能。它将直接为匹配规则的请求返回一个 30x 的 HTTP 状态码。Location 头将用于指示客户端重定向到新 URL。ALB 支持在端口和规则级别进行重定向配置。

CRD

redirect:
  properties:
    code:
      type: integer
    host:
      type: string
    port:
      type: integer
    prefix_match:
      type: string
    replace_prefix:
      type: string
    scheme:
      type: string
    url:
      type: string
  type: object

重定向可以在以下地方进行配置:

  • 前端: .spec.config.redirect
  • 规则: .spec.config.redirect

Ingress 注解

注解描述
nginx.ingress.kubernetes.io/permanent-redirect对应于 CR 中的 URL,默认将状态码设置为 301
nginx.ingress.kubernetes.io/permanent-redirect-code对应于 CR 中的状态码
nginx.ingress.kubernetes.io/temporal-redirect对应于 CR 中的 URL,默认将状态码设置为 302
nginx.ingress.kubernetes.io/temporal-redirect-code对应于 CR 中的状态码
nginx.ingress.kubernetes.io/ssl-redirect对应于 CR 中的方案,默认将方案设置为 HTTPS
nginx.ingress.kubernetes.io/force-ssl-redirect对应于 CR 中的方案,默认将方案设置为 HTTPS

SSL 重定向

  1. ssl-redirect 和 force-ssl-redirect 的不同之处在于,ssl-redirect 仅在 Ingress 拥有相应域的证书时生效,而 force-ssl-redirect 无论是否存在证书均生效。
  2. 对于 HTTPS 端口,如果只配置了 ssl-redirect,则不会设置重定向。

端口级别重定向

当在端口级别配置重定向时,所有请求都会根据重定向配置进行重定向。

规则级别重定向

当在规则级别配置重定向时,匹配该规则的请求将根据重定向配置进行重定向。