【发布时间】:2021-08-24 03:21:26
【问题描述】:
我正在做一个项目,我需要一个有角度的前端和一个带有弹簧引导的后端。 我为他们制作了 2 个 docker 映像,并使用如下入口将请求分发到正确的服务:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: smf-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- http:
paths:
- path: /api
pathType: Prefix
backend:
service:
name: rest-service
port:
number: 80
- path: /
pathType: Prefix
backend:
service:
name: ng-service
port:
number: 4200
如您所见,所有匹配 '/api*' 的请求都被重定向到 rest-service,这是我的 spring boot 应用程序。
如果我向入口发出请求,例如“/api/helloworld”,在到达 spring 端点之前如何修改此请求? spring 是否会收到相同的请求,调用映射到 '/api/helloworld' 的端点?
我问这个是因为我在 spring 中将端点映射到 '/api/some_endpoint' ,但是每次我尝试从浏览器访问这些 url 时,我都会得到 spring 错误页面 (404)。 为了实现这种行为,我在我的 Spring Boot 应用程序中设置了以下属性:
server.servlet.context-path=/api
这是错的吗?为什么?你能给我解释一下解决办法吗?
【问题讨论】:
-
请在您的问题中添加以下输出 kubectl get svc -o wide 和 kubectl get ep
标签: java spring spring-boot docker kubernetes