当我有多个 pods 时,Nginx 入口 returns 自定义 http 错误
Nginx ingress returns custom http errors when I have multiple pods
我有一个工作负载、一个服务和一个将流量路由到该服务的 Nginx 入口控制器。只要我只有一个豆荚,一切都很好。现在,当我通过将副本设置为 2 进行扩展时,由我的 API 编辑的 http 错误 return 被转换为一个 HTML 页面 - 隐藏了我 return 的重要信息错误。
当我的APIreturns:
res.status(502).send('The error is THIS!');
我在回复中看到的是:
<html>
<head>
<title>502 Bad Gateway</title>
</head>
<body bgcolor="white">
<center>
<h1>502 Bad Gateway</h1>
</center>
<hr>
<center>nginx/1.11.3</center>
</body>
</html>
如何绕过此自定义错误创建并接收我的原始错误消息?
这是by design。如果有多个后端(服务端点),ingress-nginx 会在收到来自后端服务的 502、503 或 504 响应状态时尝试下一个后端。当没有更多的后端可以尝试时,会产生自定义错误。
设置注解nginx.ingress.kubernetes.io/service-upstream: "true"
将改变nginx的行为指向一个后端,k8s集群服务ClusterIP。通常 nginx 会将所有服务端点作为后端服务器进行管理。
请注意,使用此注释会将负载平衡决策移至 Kubernetes 集群服务路由域,而不是 nginx 的逻辑。
我有一个工作负载、一个服务和一个将流量路由到该服务的 Nginx 入口控制器。只要我只有一个豆荚,一切都很好。现在,当我通过将副本设置为 2 进行扩展时,由我的 API 编辑的 http 错误 return 被转换为一个 HTML 页面 - 隐藏了我 return 的重要信息错误。
当我的APIreturns:
res.status(502).send('The error is THIS!');
我在回复中看到的是:
<html>
<head>
<title>502 Bad Gateway</title>
</head>
<body bgcolor="white">
<center>
<h1>502 Bad Gateway</h1>
</center>
<hr>
<center>nginx/1.11.3</center>
</body>
</html>
如何绕过此自定义错误创建并接收我的原始错误消息?
这是by design。如果有多个后端(服务端点),ingress-nginx 会在收到来自后端服务的 502、503 或 504 响应状态时尝试下一个后端。当没有更多的后端可以尝试时,会产生自定义错误。
设置注解nginx.ingress.kubernetes.io/service-upstream: "true"
将改变nginx的行为指向一个后端,k8s集群服务ClusterIP。通常 nginx 会将所有服务端点作为后端服务器进行管理。
请注意,使用此注释会将负载平衡决策移至 Kubernetes 集群服务路由域,而不是 nginx 的逻辑。