【发布时间】:2023-03-19 17:17:01
【问题描述】:
我使用 MERN 制作了一个全栈 Web 应用程序,并使用 Kubernetes 集群进行部署。
应用程序运行良好,除了一个问题。也就是说,我(作为用户)能够从浏览器访问 API,例如 www.domain-name/api/orders 这给了我 JSON 响应.
这是我不想要的。我需要隐藏/限制它。
我正在使用 NGINX-INGRESS 进行路由:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-service
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/use-regex: 'true'
spec:
rules:
- host: shopify.dev
http:
paths:
- path: /api/users/?(.*)
backend:
serviceName: auth-srv
servicePort: 3000
- path: /api/orders/?(.*)
backend:
serviceName: orders-srv
servicePort: 3000
- path: /?(.*)
backend:
serviceName: client-srv
servicePort: 3000
由于请求 /api 和 /*(前端)都是通过 nginx-ingress 路由的,这应该是这样工作的吗? 有什么办法解决这个问题?
【问题讨论】:
标签: node.js docker kubernetes devops nginx-ingress