我正在尝试在本地 Minikube 上设置 Nginx Ingress,但在实际匹配的路径上遇到问题。我设置了两个服务,我希望每个服务在同一个域中提供不同的路径。一个是基于 Django 的 API 后端,另一个是基于 Node 的前端。我的入口配置如下:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: test
spec:
rules:
- host: test.local
http:
paths:
- path: /
backend:
serviceName: frontend
servicePort: 3000
- path: /api
backend:
serviceName: backend
servicePort: 8000
- path: /admin
backend:
serviceName: backend
servicePort: 8000
- path: /static
backend:
serviceName: backend
servicePort: 8000
如果我http://test.local/
在浏览器中导航到,Node 前端成功地为该路由提供服务。如果我导航到http://test.local/admin/
,则 Django 后端成功地为该路由提供服务,并更正重定向到,http://pingpong.local/admin/login/?next=/admin/
因为我没有登录(这也从 Django 后端正确提供)。但是,没有任何 CSS 加载,因为http://test.local/static/
出于某种原因由 Node 前端提供服务。路由下的所有/api
内容也由 Node 前端提供服务。
我能够找到的任何文档、示例或其他资源似乎都没有表明我在这里做错了什么,所以我有点茫然地弄清楚它为什么会起作用。