【发布时间】:2020-08-31 02:03:15
【问题描述】:
我有一个在 Azure Kubernetes 服务 (AKS) 中运行的 kubernetes 集群。我一直在关注一系列研讨会,并设置了 NGINX 入口控制器。现在我正在使用 nip.io 来访问我的网站。他们让我创建一个入口资源来公开前端:
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: ratings-web-ingress
annotations:
kubernetes.io/ingress.class: nginx
spec:
rules:
- host: frontend.<redacted ip>.nip.io
http:
paths:
- backend:
serviceName: ratings-web
servicePort: 80
path: /
这很好用。我可以浏览 nip.io 地址,一切正常。
我想扩展它并创建一个单独的站点。我希望它在同一个地址,就在/foo
我尝试创建一个入口资源:
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: foo-web-ingress
annotations:
kubernetes.io/ingress.class: nginx
spec:
rules:
- host: frontend.<redacted ip>.nip.io
http:
paths:
- backend:
serviceName: foo-web
servicePort: 80
path: /foo
当我浏览 frontend.<redacted ip>.nip.io/foo 时,我得到一个 404 not found from nginx。
我尝试根据另一个 SO 帖子添加以下注释:
nginx.ingress.kubernetes.io/rewrite-target: /
现在当我浏览/foo 时,它会响应,但所有内容都是空白的。在网络应用程序中,它引用了根级别的所有内容,例如:
<link href="/assets/css/bootstrap.min.css" rel="stylesheet" type="text/css" />
当它看到这条路径时,我认为它会转到原始网站,所以我收到严格的 MIME 类型错误或 404 错误。
我需要怎么做才能在同一个 nginx 入口控制器上以不同的路径托管两个网站?
【问题讨论】:
-
您能否提供在 AKS 中部署两个网站的 YAML?您是否检查是否可以使用端口转发访问网站?
标签: nginx kubernetes kubernetes-ingress azure-aks