ingress nginx 配置请求重定向

1,678 阅读2分钟

官方参考

关于状态码

  • 永久重定向:301和308

HTTP状态码中的 301 和 308 用于一个资源被永久的迁移到新的地址,不同之处在于:

- 301 重定向会改变请求的方法,将POST方法改变成GET方法来请求新地址
- 308 重定向会让客户端在新地址上重复同样方法的请求
  • 临时重定向:302、303和307

HTTP状态码中的 302、303和307 都用于一个资源被临时重定向到新的地址,不同之处在于:

- 302 重定向不允许客户端更改请求的方法,但大部分浏览器重定向后仍使用GET方法来请求新地址
- 303 重定向明确告诉客户端不管原请求使用的是什么方法,都在新地址上使用GET请求方法
- 307 重定向后客户端使用和原方法一样的方法在新地址上重新发起请求
  • 使用场景
  1. 301的场景:(资源位置永久更改)
  • 旧域名不使用了,更换域名。
  • 告诉搜索引擎我们的目标域名是哪一个。
  • 将网站地址由 HTTP 迁移到 HTTPS。
  1. 302的场景:(一般是临时跳转)
  • 未登录前先使用302重定向到登录页面,登录成功后再跳回到原来请求的页面。
  • 使用短域名访问后,需要重定向到真实的域名。

永久重定向 Permanent Redirect

返回301 永久重定向是会被浏览器缓存的

apiVersion: networking.k8s.io/v1 
kind: Ingress 
metadata: 
  annotations:
    nginx.ingress.kubernetes.io/permanent-redirect: https://www.quicktable.io

临时重定向 Temporal Redirect

返回302

apiVersion: networking.k8s.io/v1 
kind: Ingress 
metadata: 
  annotations:
    nginx.ingress.kubernetes.io/temporal-redirect:: https://www.quicktable.io

永久重定向代码 Permanent Redirect Code

返回带308 的永久重定向

apiVersion: networking.k8s.io/v1 
kind: Ingress 
metadata: 
  annotations:
    nginx.ingress.kubernetes.io/permanent-redirect-code: '308'