【问题标题】:How to set ingress-nginx custom errors如何设置 ingress-nginx 自定义错误
【发布时间】:2019-08-08 11:38:26
【问题描述】:

我在 GKE 上使用 kubernetes ingress-nginx 控制器和一组自定义错误,但我遇到了一些问题。

目标: 如果something-web-app出现50x错误,我会返回HTTP状态码200和JSON{"status":200, "message":"ok"}

问题:

  1. 我已阅读custom-errors document,但没有关于如何自定义default-backend 的示例。

  2. 我不明白 ConfigMap 和 Annotation 的区别。

  3. 首先,ingress-nginx 控制器是如何工作的。

【问题讨论】:

  • nginx.ingress.kubernetes.io/default-backend: nginx-errors-svc # 这是引用了这个资源在nginx.ingress.kubernetes.io/custom-http-errors: 404,503中的同一个命名空间@试试这2个注解

标签: kubernetes google-kubernetes-engine nginx-ingress


【解决方案1】:

你可以用两种方式来做到这一点:

  1. 在入口添加注释
  2. 入口控制器配置映射的变化(更像是 beckend)

1。尝试将此注释添加到 Kubernetes 入口:

nginx.ingress.kubernetes.io/default-backend: nginx-errors-svc

nginx.ingress.kubernetes.io/custom-http-errors: 404,503

nginx.ingress.kubernetes.io/default-backend: 错误页面

如果这不起作用,请添加两个:

nginx.ingress.kubernetes.io/server-snippet: |
      location @custom_503 {
        return 404;
      }
      error_page 503 @custom_503;

2. Configmap 编辑

您可以将此配置映射应用到入口控制器

apiVersion: v1
kind: ConfigMap
name: nginx-configuration-ext
data:
  custom-http-errors: 502,503,504
  proxy-next-upstream-tries: "2"
  server-tokens: "false"

你也可以参考这个博客:https://habr.com/ru/company/flant/blog/445596/

【讨论】:

    猜你喜欢
    • 2020-05-19
    • 1970-01-01
    • 1970-01-01
    • 2019-08-08
    • 2019-05-31
    • 2015-08-12
    • 2013-02-27
    • 2021-05-30
    • 2020-05-21
    相关资源
    最近更新 更多