gpt4 book ai didi

mod-rewrite - k8s nginx 入口重写目标注释未按预期工作

转载 作者:行者123 更新时间:2023-12-02 11:30:01 26 4
gpt4 key购买 nike

在 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 提供服务,该 UI 期望路径为 / ,否则它假定它是一个逻辑路径并尝试将请求转发到正确的微服务。

路径的重写没有像我期望的那样工作。它不会取代 /config// .我是不是误会了 the example ?

在 nginx Controller 的日志中,我看到:
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/ ?

最佳答案

你误解了这个例子。随着您对重写目标的配置请求 /将改写为 /config/ ,而不是相反。所以你需要切换路径:使用/config作为重写目标,并设置 /规则中的路径。

所以重写目标总是外部请求去的地方,即对服务/pod 的请求去的规则路径。

关于mod-rewrite - k8s nginx 入口重写目标注释未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47789079/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com