off*_*cer 5 nginx kubernetes kubernetes-ingress nginx-ingress
我在后端运行了三个服务,并且入口路由的定义如下:
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
Run Code Online (Sandbox Code Playgroud)
问题是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”处获得资源。
归档时间: |
|
查看次数: |
800 次 |
最近记录: |