基于 nginx-ingress 路径的 Angular 应用程序

问题描述

我有一个 angular 应用程序,它使用 Nginx-alpine 作为基本映像进行 dockerized。我的基础设施托管在 AKS 集群版本 1.18.14 上。和 nginx-ingress 将流量路由到 pods k8s.gcr.io/ingress-Nginx/controller:v0.44.0 。下面是我的入口

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
Metadata:
  name: ingress
  namespace: default
  annotations:
    kubernetes.io/ingress.class: Nginx
    Nginx.ingress.kubernetes.io/ssl-redirect: "false"
    Nginx.ingress.kubernetes.io/use-regex: "true"
    Nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
 rules:
  - http:
     paths:
      - path: /?(.*)
        backend:
        serviceName: portal
        servicePort: 80

当我使用 ip-address/ 应用程序加载应用程序时。 但是,如果我想在下面的 nginx-ingress 应用程序中添加路径,则不会加载。

 - path: /myportal(/|$)(.*)
        backend:
          serviceName: my-portal
          servicePort: 80

当我点击 ip-address/myportal 时,应用无法加载。我应该做哪些改变

解决方法

您的 yaml 配置似乎有误。

应该是:

  paths:
  - backend:
      serviceName: my-portal
      servicePort: 80
    path: /myportal(/|$)(.*)

代替:

 - path: /myportal(/|$)(.*)
        backend:
          serviceName: my-portal
          servicePort: 80

确保缩进到位且语法正确。使用 this example 作为参考。