在我们的Kubernetes集群中,我们需要在响应主体中进行字符串替换。Istio中是否有这样的东西用于修改响应内容。我只能找到标题操作。
Nginx入口控制器能做到这一点吗?
response包含html内容,hrefs为:<>"/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
我开始研究其他Ingress控制器,发现NGINX Ingress可以进行响应操作。这是一个入口路由I设置,用于进行内容操作。在这里分享:
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/(.*)
AFAIK,istio默认不提供主体修改。使用自定义特使过滤器甚至可能无法实现。