簡體   English   中英

Nginx-Ingress 有時無法重寫路徑

[英]Nginx-Ingress fails to rewrite path sometimes

該錯誤很少發生。 大多數情況下,路徑重寫按預期工作,當錯誤被觸發時,人們會得到一個default backend - 404 HTML 頁面。 我檢查了 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(/|$)(.*) 

我從來沒有親身經歷過這個錯誤,但至少有兩個人經歷過。 據我所知,如果你只是 go 到相同的 URL 再次它將 go 離開。

我在這里不知所措,非常感謝任何幫助。

結果證明這是與我們的應用程序交互的 Nginx 錯誤配置。 一旦知道如何觸發它,就很容易修復。 以前我試圖僅從日志中調試它。 所需要的只是更新 Nginx 配置(特別是服務器片段)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM