我在Kubernetes上部署了Vue JS。我需要在此页面上配置nginx路由:
https://router.vuejs.org/guide/essentials/history-mode.html#example-server-configurations
配置如下所示:
location / {
try_files $uri $uri/ /index.html;
}
如何将该配置转换为入口kubernetes yaml配置?
我试过了,但是不起作用
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /index.html
name: backoffice
namespace: default
selfLink: /apis/extensions/v1beta1/namespaces/default/ingresses/backoffice
spec:
rules:
- host: dev.abc.com
http:
paths:
- backend:
serviceName: backoffice-svc
servicePort: 443
path: /
我试着做了这样的注解,但还是不行:
nginx.ingress.kubernetes.io/app-root: /app1
3条答案
按热度按时间3zwjbxry1#
Ingress可能如下所示:
这在Kubernetes Ingress-Nginx文档中有很好的解释。
或者,您也可以在注解中使用配置代码段:
sxissh062#
很有可能,我今天遇到了和你一样的情况。由于nginx入口控制器在另一个隔离的pod中,在nginx入口控制器中生成的nginx规则无法检测到你的服务上的文件和资源。它只是将请求转发到你的服务。放置try_files指令的正确位置应该在你的服务的pod中。
我的工作案例如下:在我的服务pod里有一个nginx容器,我把“try_files $uri $uri//index. html;“文件夹在/etc/nginx/conf.d/默认配置文件中
7d7tgy0s3#
对我来说,最好的方法是更新我的docker文件以加载自定义nginx.conf,设置如下:
之后,我只是修改了我的docker文件来加载这个nginx.conf,如上面的代码:
然后只需部署您的映像,它应该工作正常,而不会触及您的入口。