gpt4 book ai didi

https - Kubernetes https入口400响应

转载 作者:行者123 更新时间:2023-12-02 12:04:15 26 4
gpt4 key购买 nike

我有一个裸机kubernetes集群(1.13),并且正在运行nginx入口 Controller (通过 Helm 部署到默认 namespace v0.22.0中)。

我在另一个尝试使用Nginx Controller 的命名空间中有一个入口。

#ingress.yaml
kind: Ingress
apiVersion: extensions/v1beta1
metadata:
name: myapp
annotations:
kubernetes.io/backend-protocol: https
nginx.ingress.kubernetes.io/enable-rewrite-log: "true"
nginx.ingress.kubernetes.io/rewrite-target: "/$1"
spec:
tls:
- hosts:
- my-host
secretName: tls-cert
rules:
- host: my-host
paths:
- backend:
servicename: my-service
servicePort: https
path: "/api/(.*)"

Nginx Controller 成功找到了入口,并说存在端点。如果达到终点,我将得到400,没有任何内容。如果我打开 custom-http-headers,那么我将从nginx收到404;我的服务没有受到影响。根据 re-write logging,URL已正确重写。

我也直接从 pods 内部点击了服务,效果也很好。
#service.yaml
kind: Service
apiVersion: v1
metadata:
name: my-service
spec:
ports:
- name: https
protocol: TCP
port: 5000
targetPort: https
selector:
app: my-app
clusterIP: <redacted>
type: ClusterIP
sessionAffinity: None

可能出什么问题了?

编辑:全面禁用https仍会产生相同的400错误。但是,如果我的应用程序正在等待HTTPS请求,而nginx正在发送HTTP请求,则请求将到达该应用程序(但它无法处理它们)

最佳答案

如果请求 header 无效(如其中的特殊字符),则Nginx将静默失败并显示400。您可以使用tcpdump进行调试。

关于https - Kubernetes https入口400响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56169066/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com