如果访问一些不存在的路径或域名,就会抛出404的异常页面。对于生产环境,这个提示并不友好,会暴露Nginx的版本号

Ingress Nginx错误代码重定向-1

我们可以利用Nginx的错误代码重定向功能,将某些错误代码(比如404、403、503)重定向到一个固定的页面。下面演示当访问链接返回值为404、503等错误时,如何自动跳转到自定义的错误页面:

1.修改 values.yaml

[root@k8s-master01 ~]# cd ingress-nginx
[root@k8s-master01 ingress-nginx]# vim values.yaml

修改defaultbackend处enabled:false为enabled:true

defaultBackend:
  enabled: true

Ingress Nginx错误代码重定向-2

更新 ConfigMap

  config:
    apiVersion: v1
    client_max_body_size: 20m
    custom-http-errors: "404,415,503"

Ingress Nginx错误代码重定向-3

3.更新 Release

[root@k8s-master01 ingress-nginx]# helm upgrade ingress-nginx -n ingress-nginx .

4.更新后 Pod 会自动重启,并且会创建一个 defaultbackend:

[root@k8s-master01 ingress-nginx]#  kubectl get po -n ingress-nginx

5.更新完成以后访问一个不存在的页面,比如之前定义的 nginx.test.com。访问一个不存在的 页面 123,就会跳转到 Error Server 中的页面

[root@k8s-master01 ingress-nginx]# curl nginx.test.com/123
default backend - 404

当然,你也可以打开浏览器,输入nginx.test.com/123查看404页面不会报nginx版本号

Ingress Nginx错误代码重定向-4