【发布时间】:2018-05-27 02:38:31
【问题描述】:
在 Minikube 中运行,我有以下入口,以及必要的后端:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: my-ingress
annotations:
kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- http:
paths:
- path: /config/
backend:
serviceName: api-gateway
servicePort: web
目的是为网关的 Web UI 提供服务,它期望路径为 /,否则它假定它是逻辑路径并尝试将请求转发到正确的微服务。
路径的重写没有像我预期的那样工作。它不会用/ 替换/config/。我是不是误会the example?
在我看到的 nginx 控制器的日志中:
192.168.99.1 - [192.168.99.1] - - [13/Dec/2017:08:54:11 +0000] "GET /config HTTP/1.1" 301 185 "-" "curl/7.55.1" 78 0.000 [-] - - - -
192.168.99.1 - [192.168.99.1] - - [13/Dec/2017:08:54:11 +0000] "GET /config/ HTTP/1.1" 404 154 "-" "curl/7.55.1" 79 0.010 [dev-api-gateway-web] 172.17.0.10:8080 143 0.010 404
这告诉我对 /config 的请求被重写为 /config/ 并导致 404。
如何将/config 重写为/?
【问题讨论】:
标签: mod-rewrite nginx kubernetes