我有一个在默认路径上侦听的反应 Web 应用程序,我希望将我的 API 后端包含在同一个 URL 上。
我的入口片段如下:
http:
paths:
- backend:
serviceName: atsweb
servicePort: 80
path: /(.*)
- backend:
serviceName: atsapi
servicePort: 80
path: /api(/|$)(.*)
我的 API 有一堆在/api/之后路由的函数,我有一个测试页面,mydomain.io/api/values 我无法访问。我的前端服务工作正常。
只是路径不正确吗?
我已经部署了一个独立的 API,只是为了检查容器端口/服务端口是否正确。
看起来您从 复制了示例。您的入口注释是什么?检查重写,因为它看起来像是进行重定向。尽管如此,适用于的入口如下所示:
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: your-ingress
namespace: default
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/ssl-redirect: "false"
spec:
rules:
- http:
paths:
- path: /
backend:
serviceName: atsweb
servicePort: 80
- path: /api/
backend:
serviceName: atsapi
servicePort: 80
检查是否有重写注释。这会将您的 uri 完全追加到下一个代理。因此,让mydomain.io/api/values
去atsapi:80/api/values