And*_*ich 0 kubernetes google-kubernetes-engine kubernetes-ingress nginx-ingress
paths:
- backend:
serviceName: booknotes-front-end-service
servicePort: 80
path: /
- backend:
serviceName: booknotes-back-end-service
servicePort: 3000
path: /api
Run Code Online (Sandbox Code Playgroud)
这是我的 ingres-nginx 资源中的规则。我尝试将所有从开始的流量定向/api到我的后端服务,该服务正常工作,但是如果我后端的某些路由类似于 /api/users 它不起作用,我的后端发送响应未找到,当我在本地运行这条路线工作正常。此外,我尝试从我的 koa 路由中删除 /api 前缀并将其更改为/users,然后我也更改 path: /api为,path: /users并且这些东西正常工作。我应该怎么做才能修复它?如果您需要其他信息,请告诉我!
您使用的是哪个版本的 nginx-ingress?他们改变了定义路径的方式。
https://kubernetes.github.io/ingress-nginx/examples/rewrite/
从版本 0.22.0 开始,使用注释 nginx.ingress.kubernetes.io/rewrite-target 的入口定义不向后兼容以前的版本。在版本 0.22.0 及更高版本中,请求 URI 中需要传递到重写路径的任何子字符串都必须在捕获组中明确定义。
例如,您可以使用这样的定义。
kind: Ingress
metadata:
name: some-ingress-name
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
rules:
- http:
paths:
- path: /?(.*)
backend:
serviceName: booknotes-front-end-service
servicePort: 80
- path: /api/?(.*)
backend:
serviceName: booknotes-back-end-service
servicePort: 3000
Run Code Online (Sandbox Code Playgroud)
ili*_*efa -1
https://cloud.google.com/kubernetes-engine/docs/tutorials/http-balancer,第 6 节尝试将路径 /api 替换为 /api/* 并将 / 替换为 /*
| 归档时间: |
|
| 查看次数: |
1043 次 |
| 最近记录: |