首页 > 其他分享 >seafile onlyoffice k8s traefik Cross origin requests are only supported for protocol schemes

seafile onlyoffice k8s traefik Cross origin requests are only supported for protocol schemes

时间:2022-08-31 15:33:06浏览次数:127  
标签:origin schemes protocol traefik supported wss only

这个问题我实际上是用答案倒推寻找的原因

完整报错:

has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome-extension, edge, https, chrome-untrusted.

找到了 github 上的一个相同问题 issue: DocumentServer,但是这里的解决方案是使用的 docker-compose,实际在 k8s 集群中,通过 traefik ingress/ingressroute 没办法直接用相同的操作解决。

于是找到了 traefik 中相同的配置项,官方提供了各种 middleware 配置项,经过测试 customRequestHeaders 就是我们需要的。

apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
  name: doc-server-traefik-headers
  namespace: production
spec:
  headers:
    #accessControlAllowOriginList:  //经过测试并不影响
    #- "*"
    customRequestHeaders:
      X-Forwarded-Proto: "https"

然后在 ingress/ingressroute 中指定此 middleware 即可。

这个时候倒推一下,其实原因应该是请求的时候直接将 wss 作为协议转发了,然后被请求这端不直接支持 wss,于是有了上面的报错,我们在这里配置 X-Forwarded-Proto 也就是覆盖掉转发的来源协议,这样就解决了协议的问题。本身 wss 就是通过 https/http 升级而来,可根据实际情况选择。

标签:origin,schemes,protocol,traefik,supported,wss,only
From: https://www.cnblogs.com/saryta/p/16643285.html

相关文章