我有几个 NodeJS 后端作为 Kubernetes 设置中的 pod 运行,上面有 Ingress 管理的 nginx。
这些后端是 API 服务器,在正常操作期间可以返回 400、404 或 500 响应。这些响应将为客户提供有意义的数据;除了状态码,响应在正文中具有 JSON 序列化结构,用于通知错误原因或建议解决方案。
但是,Ingress 会拦截这些错误响应,并返回一个错误页面。因此,客户端不会收到服务试图提供的信息。
kubernetes-contrib 存储库中有一张已关闭的票证,表明现在可以关闭错误拦截:https ://github.com/kubernetes/contrib/issues/897 。作为 kubernetes/ingress 的新手,我无法弄清楚如何在我的情况下应用此配置。
作为参考,这是以下内容的输出kubectl get ingress <ingress-name>
:(已编辑名称和 IP)
Name: ingress-name-redacted
Namespace: default
Address: 127.0.0.1
Default backend: default-http-backend:80 (<none>)
Rules:
Host Path Backends
---- ---- --------
public.service.example.com
/ service-name:80 (<none>)
Annotations:
rewrite-target: /
service-upstream: true
use-port-in-redirects: true
Events: <none>