如何从 istio 入口网关中删除或修改标头

时间:2021-02-22 10:50:27

标签: istio

Chrome 浏览器将我所有的域和子域请求重定向到 HTTPS,在我的情况下这是不需要的行为。 根据 https://www.chromium.org/hsts,这是 HSTS 策略已添加到 Chrome 浏览器的域和所有子域中。

我使用的是 Istio 版本 1.7.4,并注意到 Istio 入口网关添加了导致此问题的标头 strict-transport-security。

strict-transport-security: max-age=15552000; includeSubDomains

如何从入口网关中删除此标头?

1 个答案:

答案 0 :(得分:1)

您可以使用 VirtualService 添加或删除某些标题。

官方 Istio 文档中的示例展示了如何删除它:

<块引用>

标题

Envoy 将请求转发到目标服务或从目标服务转发响应时,可以操纵消息头。可以为特定路由目的地或所有目的地指定标头操作规则。以下 VirtualService 向路由到任何评论服务目标的请求添加了一个值为 true 的测试标头。它还删除了 foo 响应标头,但仅限于来自评论服务的 v1 子集(版本)的响应。

  • v1alpha3
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: reviews-route
spec:
  hosts:
  - reviews.prod.svc.cluster.local
  http:
  - headers:
      request:
        set:
          test: true
    route:
    - destination:
        host: reviews.prod.svc.cluster.local
        subset: v2
      weight: 25
    - destination:
        host: reviews.prod.svc.cluster.local
        subset: v1
      headers:
        response:
          remove:
          - foo # <-- HERE!
      weight: 75

其他资源: