簡體   English   中英

Kubernetes 入口:NodeJS 應用程序顯示空白頁

[英]Kubernetes Ingress: NodeJS application shows blank page

讓我描述一下我今天面臨的情況:

  1. 我從開發人員那里收到了 NodeJS 應用程序映像並將其發布到 AKS(Azure Kubernetes 服務)

此應用程序的清單中沒有任何具體內容,這是在 80 端口上提供服務的簡單部署。

  1. 我已經使用 helm package 配置了 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/ - 一切正常,我看到 web 頁面將我重定向到:

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 文件都有內容類型:text/html。

讓我描述一下我是如何設法解決這個問題的:

在 YAML 設置中,可以看到nginx.ingress.kubernetes.io/rewrite-target: /$1

因此,對於根路徑目錄和應用程序 - 它應該是:

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

例如.com/example/

它應該是:

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

等等

現在,web 頁面顯示正確。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM