Kubernetes ingress给出502 Bad Gateway,即使Pod日志显示200响应(在特定用例中)

ktca8awb  于 2023-11-17  发布在  Kubernetes
关注(0)|答案(1)|浏览(109)

一般来说,GET和POST都是有效的。
但是POST到一个特定的用例给出了响应代码502,即使Pod日志显示响应代码200。我不知道如何进一步调试。

预期行为

Request URL: https://example.foo/api/rpc/request-password-reset
Request Method: POST
Status Code: 200 OK

字符串
Pod日志

26/Oct/2023:07:35:22 +0000 "POST /api/rpc/request-password-reset" 200

预期行为(使用无效凭据登录)

Request URL: https://example.foo/api/login
Request Method: POST
Status Code: 401 Unauthorized


Pod日志

26/Oct/2023:07:59:41 +0000 "POST /api/login" 401

非预期行为(使用有效凭据登录)

Request URL: https://example.foo/api/login
Request Method: POST
Status Code: 502 Bad Gateway


Pod日志

26/Oct/2023:07:40:15 +0000 "POST /api/login" 200


在这里,您可以看到不匹配的响应代码。
我还禁用了一个cookie的设置,这将发生,仍然发生代码不匹配。
日志的其余部分不显示任何关键或错误事件。
这是入口

# see https://kubernetes.github.io/ingress-nginx/user-guide/fcgi-services/

apiVersion: v1
kind: ConfigMap
metadata:
  name: {{ .Release.Name }}
data:
  SCRIPT_FILENAME: "/home/api/public/index.php"

---

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: {{ .Release.Name }}
  annotations:
    nginx.ingress.kubernetes.io/backend-protocol: "FCGI"
    nginx.ingress.kubernetes.io/fastcgi-index: "index.php"
    nginx.ingress.kubernetes.io/fastcgi-params-configmap: {{ .Release.Name }}
spec:
  ingressClassName: nginx
  rules:
    - host: {{ .Values.host }}
      http:
        paths:
          - path: /api
            pathType: Prefix
            backend:
              service:
                name: {{ .Release.Name }}
                port:
                  name: fastcgi


任何想法如何进一步调试,或如何修复它?

5lhxktic

5lhxktic1#

我认为你应该在nginx yaml文件中添加如下注解。
nginx.ingress.kubernetes.io/proxy-buffer-size:“128k”
另外,您还应该更改由云平台提供的负载均衡器的请求头大小,如上述大小。

相关问题