【发布时间】:2019-01-21 18:40:42
【问题描述】:
我正在尝试使用 kubernetes nginx 入口控制器:(quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.22.0)。下面是我的入口对象。
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: cc-store-ingress
annotations:
kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/rewrite-target: /$1
nginx.ingress.kubernetes.io/add-base-url: "true"
#nginx.ingress.kubernetes.io/configuration-snippet: |
# sub_filter "http://my-ip:30021/" "http://my-ip:30021/app/";
# sub_filter_once off;
spec:
#tls:
#- secretName: tls-secret
rules:
- host: my-ip
http:
paths:
- path: /app/?(.*)
backend:
serviceName: appsvc
servicePort: 7201
当我尝试通过入口访问此服务时,我点击了一个空白页面,我理解这是因为响应(少数 java 脚本、css 和其他的集合)返回到 my-ip:30021/ 而不是 my-ip :30021/应用程序。 (检查 nginx 日志初始连接给出 200 响应随后加载 css 和 js 失败并出现 404)
有没有办法克服这个问题? “sub_filter”和 add-base-url 注释都没有帮助。
有什么方法可以实现响应的路径重写。使用任何其他入口控制器(而不是 nginx)可以更容易克服吗?
【问题讨论】:
-
尝试删除
Rewrite Target并更新它会改变行为。附加入口/入口控制器日志也可能很有用。
标签: nginx kubernetes kubernetes-ingress