【问题标题】:Kubernetes Ingress Gateway for Response Content Manipulation用于响应内容操作的 Kubernetes Ingress Gateway
【发布时间】:2020-07-01 03:31:32
【问题描述】:

在我们的 Kubernetes 集群中,我们需要在响应正文中进行字符串替换。 Istio 中是否有这样的东西用于响应内容修改。我只能找到标题操作。

Nginx Ingress Controller 可以做到这一点吗?

响应包含带有 href 的 html 内容:"/static/myimages/logo.png" 我们想修改此响应以在其前面加上 "/myapp/static/myimages/logo.png"

有没有人推荐可以重写此内容的网关。 你有样品要分享吗?

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: resource-manager
spec:
  hosts:
  - "*"
  gateways:
  - myapp-gateway
  http:
  - match:
    - uri:
       prefix: /myapp/
      rewrite:
       uri: "/"
    route:
     - destination:
        host: myapp.voting.svc.cluster.local
        port:
          number: 9099
       headers:
        response:
         add:
          foo: bar

【问题讨论】:

    标签: kubernetes kubernetes-ingress istio nginx-reverse-proxy nginx-ingress


    【解决方案1】:

    我开始查看其他 Ingress Controller,发现 NGINX-Ingress 可以进行响应操作。这是我设置的进行内容操作的入口路由。在这里分享:

    apiVersion: extensions/v1beta1 
    kind: Ingress 
    metadata: 
      name: app1-ingress 
      namespace: app1 
      annotations:
        nginx.ingress.kubernetes.io/configuration-snippet: |
          sub_filter '<title>My title' '<title>My updated title'; #This changes title that Chrome Shows on Top
        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: app1
              servicePort: 8080
            path: /app1/(.*)
    

    【讨论】:

      【解决方案2】:

      AFAIK,默认情况下 istio 不提供 body 修改。甚至可能无法使用自定义特使过滤器。

      【讨论】:

      • 感谢您的回答。您是否可以建议我们实现目标的其他选择?
      猜你喜欢
      • 1970-01-01
      • 2020-06-14
      • 1970-01-01
      • 1970-01-01
      • 2021-06-30
      • 1970-01-01
      • 2019-09-15
      • 1970-01-01
      • 2019-11-13
      相关资源
      最近更新 更多