首页 > 解决方案 > ALB 入口路径模式和重写

问题描述

错误:

当我们/*在 vue web 应用程序的入口路径中使用时,子路径显示为404. 但是根路径工作正常。

重现步骤:

我们有这个入口:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: my-app-ingress
  namespace: dev-env
  annotations:
    alb.ingress.kubernetes.io/scheme: internet-facing
    external-dns.alpha.kubernetes.io/hostname: myhostname.com
    kubernetes.io/ingress.class: alb
    alb.ingress.kubernetes.io/certificate-arn: ---our certificate arn---

spec:

  rules:
    - http:
        paths:
          - backend:
              service:
                name: my-web-app
                port:
                  number: 30001
            path: /*
            pathType: Prefix

预期结果:

当我访问https://myhostname.com/loginhttps://myhostname.com/clients 它应该将我重定向到特定页面。(但现在它显示 404。但是,如果我访问https://myhostname.com没有问题)

环境

附加上下文

它是一个单页应用程序(vue)。当我们从应用程序的导航栏访问子路径时,没有问题。只有当我们尝试直接访问子路径或刷新非根页面时才会出现问题。我假设像我们在 nginx-controller 中所做的那样,使用 ALB 入口进行重写是不可能的。在这种情况下,解决方案可能是什么?

标签: kubernetes-ingressamazon-eksaws-application-load-balancer

解决方案


推荐阅读