用于响应内容操作的 Kubernetes Ingress Gateway
Kubernetes Ingress Gateway for Response Content Manipulation
在我们的 Kubernetes 集群中,我们需要在响应中进行字符串替换 body。 Istio 有没有响应内容修改这种东西。我只能找到 header 操纵。
Nginx Ingress Controller 能做到吗?
回复包含 html 内容,href 为:<>"/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
据我所知,istio 默认不提供主体修改。自定义特使过滤器甚至可能无法实现。
我开始研究其他 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: /
spec:
rules:
- http:
paths:
- backend:
serviceName: app1
servicePort: 8080
path: /app1/(.*)
在我们的 Kubernetes 集群中,我们需要在响应中进行字符串替换 body。 Istio 有没有响应内容修改这种东西。我只能找到 header 操纵。
Nginx Ingress Controller 能做到吗?
回复包含 html 内容,href 为:<>"/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
据我所知,istio 默认不提供主体修改。自定义特使过滤器甚至可能无法实现。
我开始研究其他 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: /
spec:
rules:
- http:
paths:
- backend:
serviceName: app1
servicePort: 8080
path: /app1/(.*)