NginxIngress有时无法重写路径



错误很少发生。大多数情况下,路径重写的工作方式与预期的一样,当触发错误时,人们会得到一个default backend - 404HTML页面。我检查了Nginx Ingress日志,路径没有被重写,而是传递给了upstream-default-backend,而不是我的服务。

这是我的入境清单。

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: palette-dev-ingress
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: /palette/$2
cert-manager.io/cluster-issuer: letsencrypt
nginx.ingress.kubernetes.io/affinity: "cookie"
nginx.ingress.kubernetes.io/affinity-mode: "persistent"
nginx.ingress.kubernetes.io/session-cookie-name: "stickycookie" # secure cookie
nginx.ingress.kubernetes.io/session-cookie-expires: "172800"
nginx.ingress.kubernetes.io/session-cookie-max-age: "172800"
nginx.ingress.kubernetes.io/session-cookie-path: "/" 
nginx.ingress.kubernetes.io/client-max-body-size: 50m 
nginx.ingress.kubernetes.io/proxy-body-size: 50m 
nginx.ingress.kubernetes.io/server-snippet: |
location = / { 
return 302 /palette ;
} 
spec:
tls:
- hosts:
- dev.example.cloud
- dev.example.com
secretName: tls-secret
rules:
- host: dev.example.cloud
http:
paths:
- backend:
serviceName: palette-service
servicePort: 8080
path: /palette(/|$)(.*) 
- host: dev.example.com
http:
paths:
- backend:
serviceName: palette-service
servicePort: 8080
path: /palette(/|$)(.*) 

我个人从未经历过这种错误,但至少有另外两个人经历过。据我所知,如果你再次访问同一个URL,它就会消失。

我在这里不知所措,非常感谢任何帮助。

这是一个与我们的应用程序交互的Nginx错误配置。一旦知道如何触发它,就很容易修复。以前我试图单独从日志中调试它。所需要的只是更新Nginx配置(特别是服务器片段(

最新更新