![](/img/trans.png)
[英]Two Flask apps on different paths with Kubernetes Ingress resource (nginx)
[英]Hosting two web apps with nginx ingress in Kubernetes
我有一個 kubernetes 集群在 Azure Kubernetes 服務 (AKS) 中運行。 我一直在關注一系列研討會,並設置了 NGINX 入口 controller。 現在我正在使用 nip.io 來訪問我的網站。 他們讓我創建一個入口資源來公開前端:
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: ratings-web-ingress
annotations:
kubernetes.io/ingress.class: nginx
spec:
rules:
- host: frontend.<redacted ip>.nip.io
http:
paths:
- backend:
serviceName: ratings-web
servicePort: 80
path: /
這工作正常。 我可以瀏覽 nip.io 地址,一切正常。 我想擴展它並創建一個單獨的站點。 我想要它在同一個地址,只是在/foo
我試圖創建一個入口資源:
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: foo-web-ingress
annotations:
kubernetes.io/ingress.class: nginx
spec:
rules:
- host: frontend.<redacted ip>.nip.io
http:
paths:
- backend:
serviceName: foo-web
servicePort: 80
path: /foo
當我瀏覽frontend.<redacted ip>.nip.io/foo
我從 nginx 中找不到 404。 我嘗試根據另一個 SO 帖子添加以下注釋:
nginx.ingress.kubernetes.io/rewrite-target: /
現在,當我瀏覽/foo
時,它會響應,但所有內容都是空白的。 在 web 應用程序中,它引用了根級別的所有內容,例如:
<link href="/assets/css/bootstrap.min.css" rel="stylesheet" type="text/css" />
當它看到這條路徑時,我認為它會轉到原始網站,所以我得到嚴格的 MIME 類型錯誤或 404 錯誤。
我需要做什么才能在不同路徑的同一 nginx 入口 controller 上托管兩個網站?
Ingress controller 在合並這兩個入口時會感到困惑,正確的順序應該是什么,因為為同一主機定義了多個入口資源。
從文檔中引用,您可以使用單個入口資源作為扇出。
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: simple-fanout-example
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
kubernetes.io/ingress.class: nginx
spec:
rules:
- host: <redacted ip>.nip.io
http:
paths:
- path: /foo
backend:
serviceName: foo-web
servicePort: 80
- path: /bar
backend:
serviceName: bar-web
servicePort: 80
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.