Jay*_* K. 2 nginx reactjs kubernetes create-react-app kubernetes-ingress
我目前正在尝试将 React SPA 设置为 Kubernetes 上的部署/服务。就像我当前运行的后端服务一样,我希望能够在 Ingress 后面访问它。
因为 SPA 只是一堆静态文件,所以我通过 nginx 公开这些文件。部署中运行的容器安装了 nginx 来提供静态资产(nginx -g daemon off在 docker 文件中)。如果我使用 a 公开部署,则效果完全正常LoadBalancer,但如果我使用 Ingress,则没有任何响应。在入口后面提供静态资产时,有什么需要考虑的特殊事项吗?或者有任何已知的参考资料/资源可以做到这一点?
这是我的 ingress.yml:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: web-ingress
annotations:
kubernetes.io/ingress.global-static-ip-name: web-static-ip
nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
rules:
- host: api.my-domain.com
http:
paths:
- backend:
serviceName: web-backend-service
servicePort: 80
- host: app.my-domain.com
http:
paths:
- backend:
serviceName: web-frontend-service
servicePort: 80
Run Code Online (Sandbox Code Playgroud)
您需要在集群上部署入口控制器,入口资源才能真正生效。这是Nginx 入口控制器的安装指南。提供静态内容的入口示例如下所示。
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: web-ingress
annotations:
kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/add-base-url: "true"
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: api.my-domain.com
http:
paths:
- backend:
serviceName: web-backend-service
servicePort: 80
- host: app.my-domain.com
http:
paths:
- backend:
serviceName: web-frontend-service
servicePort: 80
Run Code Online (Sandbox Code Playgroud)
这是有关如何使用 Nginx ingress 在 Minikube 上提供 Angular 8 应用程序的指南。
| 归档时间: |
|
| 查看次数: |
9930 次 |
| 最近记录: |