首页 > 解决方案 > 用于响应内容操作的 Kubernetes Ingress Gateway

问题描述

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

Nginx 入口控制器可以做到这一点吗?

响应包含带有 hrefs 的 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

标签: kuberneteskubernetes-ingressistionginx-reverse-proxynginx-ingress

解决方案


我开始查看其他 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/(.*)

推荐阅读