如何使入口nginx在每个请求上返回200



我希望我的入口nginx在每个请求上都返回200。 如果我可以访问nginx配置,我会做这样的事情:

location = /health {
return 200;
}

但是我不确定如何在入口配置YAML中执行此操作

考虑到 Kubernetes 的ingress对象在使用 Nginx 控制器时,主要用于路由而不是单独处理请求。实际为它们提供服务的是部署在集群中的后端,这部分是返回状态代码的内容,而不是ingress

控制器具有类似于您想要的功能,但仅用于错误。这只会使ingress添加一些标头,以便后端可以解释它们并返回一些非标准代码响应。

如果您修改此后端,则可能使它们200响应。但是,我发现破坏性较小,更直接的是">捕获"ingress中的所有传入请求,以将它们重定向到始终响应200的自定义 Nginx 后端(您已经拥有 Nginx 配置(:

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: nginx
ingress.kubernetes.io/rewrite-target: /
nginx.ingress.kubernetes.io/use-regex: "true"
labels:
app: all-good
name: happy-ingress
spec:
rules:
- host: "*"
http:
paths:
- path: /(.*)
backend:
serviceName: ok-status-test
servicePort: 80

使用这种方法,您甚至可以向其添加非 200 的后端,并使用正则表达式匹配它们,因此ingress可以完全重用。

相关内容

  • 没有找到相关文章

最新更新