一般来说,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
型
任何想法如何进一步调试,或如何修复它?
1条答案
按热度按时间5lhxktic1#
我认为你应该在nginx yaml文件中添加如下注解。
nginx.ingress.kubernetes.io/proxy-buffer-size:“128k”
另外,您还应该更改由云平台提供的负载均衡器的请求头大小,如上述大小。