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

时间:2019-09-05 12:04:52

标签: kubernetes-ingress nginx-ingress

我希望我的入口Nginx在每个请求上都返回$ source .bash_profile $ python >>>import os >>> os.environ.get("variable") "/Users/myUser/Library/Application Support" >>> 。 如果我可以访问nginx配置,则可以执行以下操作:

200

但是我不确定如何在入口配置YAML中做到这一点

1 个答案:

答案 0 :(得分:1)

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

控制器has a feature something similar to what you want, but for errors only。这只会使ingress添加一些标头,以便后端可以解释它们,并返回一些非标准的代码响应。

如果您modify this backend,可能可以使他们回复200。但是,我发现ingress中的所有传入请求将其重定向到始终响应{{1的自定义Nginx后端}的破坏性较小,并且更加直接“ catch-all ” }}(您已经具有Nginx的配置):

200

使用这种方法,您甚至可以向其中添加非200的后端,并使用正则表达式进行匹配,这样apiVersion: extensions/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 就可以完全重用。