我正在使用与 Docker-for-Mac 捆绑在一起的 Kubernetes。我正在尝试配置一个 Ingress,它将以 /v1/ 开头的 http 请求路由到我的后端服务,并将 /ui/ 请求路由到我的 Angular 应用程序。
我的问题似乎是请求的 HTTP 方法被入口 (NGINX) 从 POST 更改为 GET。
我尝试了各种重写规则,但没有成功。我什至从 Docker-for-Mac 切换到 Minikube,但结果是一样的。
如果我使用没有路径的简单入口(只是默认后端),那么服务将获取正确的 HTTP 方法。下面的入口有效:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress
spec:
backend:
serviceName: backend
servicePort: 8080
Run Code Online (Sandbox Code Playgroud)
但这个入口并没有:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress
annotations:
kubernetes.io/ingress.class: "nginx"
spec:
rules:
- http:
paths:
- path: /v1
backend:
serviceName: backend
servicePort: 8080
- path: /ui
backend:
serviceName: webui
servicePort: 80
Run Code Online (Sandbox Code Playgroud)
当我调试“后端”服务时,我发现 HTTP 请求是 GET 而不是 POST。
我在某处读到 …