http - Kubernetes Ingress 有两个命名空间,将 /api/ 重写为 development/api/
问题描述
我有两个命名空间的 Kubernetes 应用程序:项目生产和项目开发。它包含 React 前端、Express 后端和两个数据库。这是我的入口文件之一。第二个几乎一样。
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress
namespace: project-development
labels:
name: ingress
annotations:
kubernetes.io.ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: /$1
nginx.ingress.kubernetes.io/use-regex: "true"
spec:
rules:
- http:
paths:
- path: "/development/api/?(.*)"
pathType: Prefix
backend:
service:
name: express-clusterip
port:
name: express-port
- path: "/development/?(.*)"
pathType: Prefix
backend:
service:
name: react-clusterip
port:
name: react-port
我需要我的前端在路径上可见:
- 生产 -> 本地主机/生产(/)
- 开发 -> 本地主机/开发(/)
问题之一(不是主要问题)是没有 / 的路径不起作用。第二个是我在上面两条路径上的前端都是可见的,但是我从它们发送的 axios 请求具有相同的路径:http://localhost/api/ 我想重写来自 react 的请求以通过 nginx 表达:
- [命名空间项目开发] http://localhost/api/ -> http://localhost/development/api
- [命名空间项目-生产] http://localhost/api/ -> http://localhost/production/api
有没有办法做到这一点?
解决方案
你的正则表达式是错误的,你想要path: "/development/(api/.*)"
第一个。
推荐阅读
- r - R 变量索引
- python-3.6 - 无法在 pypy3 中安装 cx_Oracle
- javascript - 从 Angular 将文件添加到 Azure 存储 Blob
- flutter - 如何在颤动的按钮的右上角获得可点击的图标?
- c# - DelegatingHandler中如何手动返回json内容
- r - 如何创建我自己的 .pbf 路线以在 Open Trip Planner 中制作图表
- twilio - 录制完成后执行 Twiml
- botframework - 如何记录用户和机器人的成绩单
- javascript - 我如何从另一个文件 vue 添加图像
- pyqt - 如何在单击按钮“添加”时显示文本标签以及绘制圆圈