【问题标题】:Unable to create route rule with kubernete nginx ingress controller无法使用 kubernetes nginx 入口控制器创建路由规则
【发布时间】: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


【解决方案1】:

这是我如何将基本路径添加到完全不支持它的服务的示例。以及处理重定向到没有基本路径的 url 的解决方案。

annotations:
  kubernetes.io/ingress.class: nginx
  # catch $1 from 'path' capture group
  nginx.ingress.kubernetes.io/rewrite-target: /$1
  # handle redirects
  # nginx.ingress.kubernetes.io/proxy-redirect-from: http://<host>/
  # nginx.ingress.kubernetes.io/proxy-redirect-to: /<basePath>/
  nginx.ingress.kubernetes.io/configuration-snippet:
    proxy_set_header Accept-Encoding "";
    sub_filter_last_modified off;

    # add base path to all static resources
    sub_filter '<head>' '<head> <base href="/<basePath>/">';
    sub_filter 'href="/' 'href="';
    sub_filter 'src="/' 'src="';

    # set types of files to 'sub-filter'
    sub_filter_once off;
    sub_filter_types text/html text/css text/javascript application/javascript;
...
    - path: /<basePath>/?(.*)

【讨论】:

    猜你喜欢
    • 2021-01-04
    • 2020-07-15
    • 2020-12-28
    • 1970-01-01
    • 2018-05-14
    • 1970-01-01
    • 1970-01-01
    • 2021-12-23
    • 1970-01-01
    相关资源
    最近更新 更多