【问题标题】:Kubernetes Ingress: NodeJS application shows blank pageKubernetes Ingress:NodeJS 应用程序显示空白页面
【发布时间】:2019-09-25 06:00:22
【问题描述】:

让我描述一下我今天面临的情况:

  1. 我收到了来自开发者的 NodeJS 应用程序映像并将其发布到 AKS(Azure Kubernetes Services)

此应用的清单中没有任何具体内容,这是在 80 端口上进行服务的简单部署。

  1. 我已经使用 helm 包配置了 Ingress,并从 helm repo 安装了一个通用的: stable/nginx-ingress 。安装后 - 我已经开始配置 Ingress。

  2. 在我的 yaml 下面:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: app-ingress
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/ssl-redirect: "false"
    nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
  rules:
  - http:
      paths:
      - backend:
          serviceName: ui-service
          servicePort: 80
        path: /(.*)
      - backend:
          serviceName: ui-service
          servicePort: 80
        path: /test-service/ui(/|$)(.*)

好的,我正在尝试打开页面:http://1.2.3.4/ - 一切正常,我看到将我重定向到的网页:

http://1.2.3.4/page1 ,如果我点击了某些东西 - http://1.2.3.4/page2 等等

但是,当我尝试使用以下方法打开同一个 Web 应用程序时:

http://1.2.3.4/test-service/ui,我在控制台出现空白页和错误:

Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://1.2.3.4/test-services/ui/static/css/test.css".

我发现有什么不同:

在第二种情况下,所有 JS 和 CSS 文件都有 content-type: text/html。

【问题讨论】:

    标签: node.js kubernetes kubernetes-ingress


    【解决方案1】:

    让我描述一下我是如何解决这个问题的:

    在YAML设置中,如你所见nginx.ingress.kubernetes.io/rewrite-target: /$1

    因此,对于根路径目录和应用程序 - 它应该是:

    nginx.ingress.kubernetes.io/rewrite-target: /
    

    例如.com/example/

    应该是:

    nginx.ingress.kubernetes.io/rewrite-target: /$1
    

    等等

    现在,网页显示正确。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-22
      • 1970-01-01
      • 1970-01-01
      • 2021-01-12
      • 2020-12-25
      • 2022-09-29
      • 1970-01-01
      相关资源
      最近更新 更多