【问题标题】:Add custom header to all responses from Traefik on Azure's Service Fabric将自定义标头添加到来自 Azure Service Fabric 上 Traefik 的所有响应
【发布时间】:2019-01-11 05:50:05
【问题描述】:

我已经在 Azure Service Fabric 集群上部署了 Traefik。一切正常,就像在 Traefik(使用 SFC 的 API)中找到其他访客服务并动态创建前端和后端配置文件一样。所以我没有静态配置任何前端。

有没有办法告诉 Traefik 为来自所有前端的所有响应添加自定义标头?

【问题讨论】:

    标签: azure-service-fabric traefik


    【解决方案1】:

    Traefik 具有用于匹配前端规则的自定义标头功能,如 here 所述。

    根据规则应用自定义标题...

    可以通过前端配置自定义标头,以向符合前端规则的请求或响应添加标头

    因为您使用的是动态配置,所以您需要将这些规则添加到服务中,而不是在 traeffik 配置中进行设置。

    类似:

    <StatelessServiceType ServiceTypeName="WebServiceType">
      <Extensions>
          <Extension Name="Traefik">
            <Labels xmlns="http://schemas.microsoft.com/2015/03/fabact-no-schema">
              <Label Key="traefik.frontend.rule.example2">PathPrefixStrip: /a/path/to/strip</Label>
              <Label Key="traefik.enable">true</Label>
              <Label Key="traefik.frontend.headers.customRequestHeaders">heaver:value</Label>
            </Labels>
          </Extension>
      </Extensions>
    </StatelessServiceType>
    

    AFAIK,没有办法以全局方式应用于所有响应。

    【讨论】:

    • 我不认为这是在回答我的问题。据我了解,“StatelessServiceType”是在服务清单文件中定义的。正如我所提到的,我在 SFC 中没有客户服务的服务清单。 Traefik 使用 SFC 的 API 发现它们。
    • 这只是一个例子,你可以通过SF API而不是manifest来设置标签,工作逻辑是一样的。
    【解决方案2】:

    已接受答案中建议的 XML 不适用于 SFC 上动态发现的服务。不过我确实接受了它,因为它指出它可以通过 API 来完成。

    为了他人的利益,要调用 API,可以使用“sfctl”(Service Fabric 的 CLI)或直接使用 cUrl 调用 API。

    我无法让 CLI 工作 (https://github.com/Microsoft/service-fabric-cli/issues/175),但我使用 cUrl 成功了:

    curl -kv -X PUT -H 'Content-Type: application/json' -d '{"PropertyName": "traefik.frontend.headers.customResponseHeaders","Value": {"Kind": "String","Data": "Access-Control-Allow-Origin: https://some_value"}}' --cert /Users/me/client_cert.crt --key /Users/me/client_cert.key https://****.westus2.cloudapp.azure.com:19080/Names/full/service/name/$/GetProperty?api-version=6.0 --http1.1
    

    参考:https://docs.microsoft.com/en-us/rest/api/servicefabric/sfclient-api-putproperty

    【讨论】:

      猜你喜欢
      • 2021-12-28
      • 2019-06-10
      • 1970-01-01
      • 2013-12-19
      • 1970-01-01
      • 2019-02-06
      • 1970-01-01
      • 2018-10-04
      • 2018-02-26
      相关资源
      最近更新 更多