我将使用kubernetes nginx入口控制器并在GKE上设置自定义错误,但是我有一些问题。
目标: 如果在something-web-app中发生50x错误,我将返回http状态代码200和JSON'{“ status”:200,“ message”:“ ok”}'
问题: 1.我已阅读文档(https://kubernetes.github.io/ingress-nginx/examples/customization/custom-errors/),但是没有如何自定义默认后端的示例。
我不了解ConfigMap和Annotation之间的区别。
ingress-nginx控制器首先如何工作。
答案 0 :(得分:1)
您可以使用两种方法进行操作:
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。。配置图编辑
您可以将此配置映射应用于入口控制器
apiVersion: v1
kind: ConfigMap
name: nginx-configuration-ext
data:
custom-http-errors: 502,503,504
proxy-next-upstream-tries: "2"
server-tokens: "false"