文档

【Header Manipulation】请求/响应头变换

更新时间:

在转发请求或响应之前,可以添加或删除请求和响应标头。如果您需要在不更改应用代码的情况下修改请求或者响应的Header,可以使用虚拟服务来实现。本文介绍如何配置请求/响应头变换。

前提条件

已完成准备工作,并部署httpbin服务和sleep服务。具体操作,请参见准备工作

操作步骤

  1. 验证服务配置。

    1. 在ACK集群对应的KubeConfig环境下,执行以下命令,进入sleep环境开启bash。

      kubectl exec -it deploy/sleep -- sh
    2. 执行以下命令,向httpbin服务发送请求。

      curl -I httpbin:8000

      预期输出:

      HTTP/1.1 200 OK
      Server: gunicorn/19.9.0
      Date: Mon, 28 Aug 2023 06:15:30 GMT
      Connection: keep-alive
      Content-Type: text/html; charset=utf-8
      Content-Length: 9593
      Access-Control-Allow-Origin: *
      Access-Control-Allow-Credentials: true
  2. 使用istioctl工具,执行以下命令,为httpbin服务开启L7 Waypoint。

    istioctl x waypoint apply --service-account httpbin
  3. 使用以下内容,创建虚拟服务,配置httpbin应用的流量规则,添加对Header的修改配置。具体操作,请参见管理虚拟服务

    apiVersion: networking.istio.io/v1beta1
    kind: VirtualService
    metadata:
      name: httpbin-vs
      namespace: default
    spec:
      hosts:
        - httpbin
      http:
        - route:
            - destination:
                host: httpbin
              headers:
                response:
                  add:
                    httpbin: hello
                  remove:
                    - x-envoy-upstream-service-time
  4. 验证配置是否生效。

    1. 在ACK集群对应的KubeConfig环境下,执行以下命令,进入sleep环境开启bash。

      kubectl exec -it deploy/sleep -- sh
    2. 执行以下命令,向httpbin服务发送请求。

      curl -I httpbin:8000

      预期输出:

      HTTP/1.1 200 OK
      server: istio-envoy
      date: Fri, 11 Aug 2023 03:42:31 GMT
      content-type: text/html; charset=utf-8
      content-length: 9593
      access-control-allow-origin: *
      access-control-allow-credentials: true
      httpbin: hello

      预期输出表明虚拟服务中对Header的配置生效,即删除了x-envoy-upstream-service-time字段,并添加了httpbin: hello

  • 本页导读 (1)
文档反馈