Dar*_*iyN 2 node.js kubernetes kubernetes-ingress
让我描述一下我今天遇到的情况:
该应用程序的清单中没有任何具体内容,这是在 80 端口上提供服务的简单部署。
我已经使用 helm 包配置了 Ingress 并安装了 helm 存储库中的常用包: stable/nginx-ingress 。安装后 - 我已经开始配置 Ingress。
在我的 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(/|$)(.*)
Run Code Online (Sandbox Code Playgroud)
好的,我正在尝试打开页面: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".
Run Code Online (Sandbox Code Playgroud)
我发现有什么不同:
在第二种情况下,所有 JS 和 CSS 文件都具有内容类型:text/html。
让我描述一下我是如何解决这个问题的:
在 YAML 设置中,如您所见nginx.ingress.kubernetes.io/rewrite-target: /$1
因此,对于根路径目录和应用程序 - 它应该是:
nginx.ingress.kubernetes.io/rewrite-target: /
Run Code Online (Sandbox Code Playgroud)
例如.com/example/
它应该是:
nginx.ingress.kubernetes.io/rewrite-target: /$1
Run Code Online (Sandbox Code Playgroud)
ETC。
现在,网页已正确显示。
| 归档时间: |
|
| 查看次数: |
1852 次 |
| 最近记录: |