关于ingress-nginx:Nginx-Ingress-优雅显示错误页面
一. Nginx Ingress 优雅显示谬误页面官网 让所有通过 Nginx Ingress 裸露进来的域名,在申请到谬误页面的时候(状态码为:4xx,5xx等)给用户一个优雅的页面显示,而不间接显示4xx或5xx的报错,防止给用户不好的应用体验1. 镜像制作将显示的页面全副放在 www 目录中[root@yunwei-k8s-addon1-test custom-error]# ll www/-rw-r--r--. 1 yeemiao yeemiao 415 3月 13 2019 403.html-rw-r--r--. 1 yeemiao yeemiao 412 3月 13 2019 404.html-rw-r--r--. 1 root root 412 8月 16 13:40 500.html-rw-r--r--. 1 root root 412 8月 16 13:40 501.html-rw-r--r--. 1 yeemiao yeemiao 415 3月 13 2019 502.html-rw-r--r--. 1 yeemiao yeemiao 409 3月 13 2019 503.html-rw-r--r--. 1 root root 412 8月 16 13:40 504.html# 目录构造[root@yunwei-k8s-addon1-test custom-error]# ll-rw-r--r--. 1 root root 72 8月 16 13:37 Dockerfiledrwxr-xr-x. 2 root root 118 8月 16 13:41 wwwFROM registry.k8s.io/ingress-nginx/nginx-errors:v20230505COPY www /www2. nginx-error放在和 Nginx-Ingress 控制器同样的名称空间中apiVersion: v1kind: Servicemetadata: name: nginx-errors namespace: ingress-nginx labels: app.kubernetes.io/name: nginx-errors app.kubernetes.io/part-of: ingress-nginxspec: selector: app.kubernetes.io/name: nginx-errors app.kubernetes.io/part-of: ingress-nginx ports: - port: 80 targetPort: 8080 name: http---apiVersion: apps/v1kind: Deploymentmetadata: name: nginx-errors namespace: ingress-nginx labels: app.kubernetes.io/name: nginx-errors app.kubernetes.io/part-of: ingress-nginxspec: replicas: 1 selector: matchLabels: app.kubernetes.io/name: nginx-errors app.kubernetes.io/part-of: ingress-nginx template: metadata: labels: app.kubernetes.io/name: nginx-errors app.kubernetes.io/part-of: ingress-nginx spec: containers: - name: nginx-error-server image: harbor.yeemiao.com:8443/library/custom-nginx-error:20230816 ports: - containerPort: 80801). 配置批改Nginx-Ingress 的启动参数# 退出参数,如果 nginx-error 和 Nginx-Ingress在同一名称空间,间接退出参数即可,如果 nginx-error 服务不在 Nginx-Ingress 控制器同样的 Namespace,请将 POD_NAMESPACE 改为他所在的名称- --default-backend-service=$(POD_NAMESPACE)/nginx-errors# 批改 Nginx-Ingress 控制器的configmap[root@k8s-alone-1 manifest]# kubectl -n ingress-nginx edit cm nginx-configurationapiVersion: v1data: allow-snippet-annotations: "true" custom-http-errors: 403,404,413,500,501,502,503,504 # 减少这个配置3. 验证进入 nginx-ingress的控制器查看nginx 配置文件 /etc/nginx/nginx.conf, 过滤 error_page 是否有相干配置 error_page 403 = @custom_upstream-default-backend_403; error_page 404 = @custom_upstream-default-backend_404; error_page 413 = @custom_upstream-default-backend_413; error_page 500 = @custom_upstream-default-backend_500; error_page 502 = @custom_upstream-default-backend_502; error_page 503 = @custom_upstream-default-backend_503; error_page 504 = @custom_upstream-default-backend_504;