gpt4 book ai didi

nginx - 仅使用 nginx Ingress 重写特定路由

转载 作者:行者123 更新时间:2023-12-04 21:30:54 25 4
gpt4 key购买 nike

我的后端运行了三个服务,入口路由定义如下:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: myapp-ingress
annotations:
kubernetes.io/ingress.class: nginx
certmanager.k8s.io/cluster-issuer: letsencrypt-prod
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
tls:
- hosts:
- myapp.westeurope.cloudapp.azure.com
secretName: acme-crt-secret
rules:
- host: myapp.westeurope.cloudapp.azure.com
http:
paths:
- path: /
backend:
serviceName: myapp-mvc
servicePort: 80
- path: /api
backend:
serviceName: myapp-api
servicePort: 80
- path: /identity
backend:
serviceName: myapp-identity
servicePort: 80

问题是 myapp-api 已经在监听对 /api/v1/myresource 的请求。 .使用当前配置,myapp-api 服务只处理对 myapp.westeurope.cloudapp.azure.com/api/api/v1/myresource 的请求。 (请注意 .../api/api/...)。

是否可以向 /api 提供请求?通过 myapp-api 服务,但将这些请求重写为 /在不创建另一个 Ingress 的情况下为服务?因此,myapp-api 应该向 myapp.westeurope.cloudapp.azure.com/api/v1/myresource 提供请求。 .

最佳答案

您有两个选择:

a) 更改 API 的端口并让它在该端口上提供/服务。

b) 更改您的应用程序,使其在“/v1/myresource”上提供 API,并通过 Ingress 为其提供 URL 的“api”部分。

无论哪种方式,您都可以在“myapp.westeurope.cloudapp.azure.com/api/v1/myresource”中获得资源。

关于nginx - 仅使用 nginx Ingress 重写特定路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51820476/

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