kubernetes - 如何设置 ingress-nginx 自定义错误
问题描述
我在 GKE 上使用 kubernetes ingress-nginx 控制器和一组自定义错误,但我遇到了一些问题。
目标:如果出现 50x 错误something-web-app
,我会返回 HTTP 状态码 200 和 JSON{"status":200, "message":"ok"}
问题:
我已阅读自定义错误文档,但没有关于如何自定义
default-backend
.我不明白 ConfigMap 和 Annotation 之间的区别。
ingress-nginx 控制器首先是如何工作的。
解决方案
你可以用两种方式做到这一点:
- 在入口中添加注释
- 入口控制器配置图的变化(更像是 beckend)
1 . 尝试将此注释添加到 kubernetes ingress :
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"
推荐阅读
- testing - XSL 测试错误至少包含一个而不是仅包含一个
- javascript - 如何使用 d3 仅在 y 轴上添加鼠标放大?
- sql - 求和而不计算重复值 SQL
- repository - Artifactory REST API 修改 Build Info json
- ios - 检查位置权限集
- c# - 尝试在自定义 AppDomain 中创建 C++ COM 对象的实例时出现 System.TypeLoadException
- react-360 - react-vr 集成了一个按钮用于进入 vr 模式
- c++ - std::vector::push_back() 不能在 MSVC 上为具有已删除移动构造函数的对象编译
- java - Spring Data Neo4j - findById 方法在升级到 Spring Boot 2 后抛出无效查询异常
- javascript - 尝试构建项目抛出:需要回调函数但得到 [object Promise]?