gpt4 book ai didi

vue.js - Vue.js进入Kubernetes集群,刷新后Nginx Ingress返回404

转载 作者:行者123 更新时间:2023-12-02 11:46:39 25 4
gpt4 key购买 nike

我正在尝试将Vue.js前端服务运行到启用nginx-ingress的kubernetes集群中。该应用程序有4条路由,/,/ foo /,/ bar和/ about。如果我访问该应用程序并以/以外的任何方式刷新页面,则会从nginx入口收到404错误。

我正在使用kubernetes v1.18.2版本(客户端和服务器)。集群是按种类创建的(docker程序中的kubernetes),我按照https://kind.sigs.k8s.io/docs/user/ingress/#ingress-nginx中的文档设置了入口。我正在使用的示例应用程序就是这个:https://github.com/ovitor/foo

这是使用的部署,服务和入口。

apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: foo
name: foo
spec:
replicas: 1
selector:
matchLabels:
app: foo
template:
metadata:
labels:
app: foo
spec:
containers:
- image: vcml10/foo:latest
name: foo
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
labels:
app: foo
name: foo
spec:
ports:
- name: http
port: 80
protocol: TCP
selector:
app: foo
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: foo-ingress
spec:
rules:
- http:
paths:
- path: /
backend:
serviceName: foo
servicePort: 80

我做错了什么?

最佳答案

我认为这是因为您只有/的路径。

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: foo-ingress
spec:
rules:
- http:
paths:
- path: /
backend:
serviceName: foo
servicePort: 80

如果要使其适用于 / /foo/ /bar and /about,则必须添加其他路径。
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: foo-ingress
spec:
rules:
- http:
paths:
- path: /
backend:
serviceName: foo
servicePort: 80
- path: /foo
backend:
serviceName: foo
servicePort: 80
- path: /bar
backend:
serviceName: foo
servicePort: 80
- path: /about
backend:
serviceName: foo
servicePort: 80



如nginx入口文档所述使用 regex
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: test-ingress
annotations:
nginx.ingress.kubernetes.io/use-regex: "true"
spec:
rules:
- host: test.com
http:
paths:
- path: /foo/.*
backend:
serviceName: test
servicePort: 80

另外,您可以看看 rewrite annotation

希望这可以帮助。

关于vue.js - Vue.js进入Kubernetes集群,刷新后Nginx Ingress返回404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61920045/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com