nebula-graph-studio v3.7 在 k8s traefik 网关路由下, 报 Websocket URL empty 错误

nebula-graph-studio 版本: v3.7

以下是我的 traefik 以及 ingress 配置

---
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
  name: default-headers
  namespace: database
spec:
  headers:
    browserXssFilter: true
    contentTypeNosniff: true
    forceSTSHeader: true
    stsIncludeSubdomains: true
    stsPreload: true
    stsSeconds: 15552000
    customFrameOptionsValue: SAMEORIGIN
    customRequestHeaders:
      X-Forwarded-Proto: https
      Connection: keep-alive, Upgrade
      Upgrade: WebSocket
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
  name: database-tls-secret
  namespace: database
spec:
  secretName: database-tls-secret
  commonName: database-tls-secret
  isCA: false
  privateKey:
    algorithm: ECDSA
    size: 256
  dnsNames:
    - nebula-studio.fleur.cn
  issuerRef:
    name: ca-issuer
    kind: ClusterIssuer
    group: cert-manager.io
---
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: nebula-studio
  namespace: database
  annotations: 
    app.kubernetes.io/instance: nebula-studio
    app.kubernetes.io/name: nebula-studio
    kubernetes.io/ingress.class: traefik-external
spec:
  entryPoints:
    - websecure
  routes:
    - match: Host(`nebula-studio.fleur.cn`)
      kind: Rule
      services:
        - name: nebula-studio-service
          port: 7001
          passHostHeader: true
      middlewares:
        - name: default-headers
  tls:
    secretName: database-tls-secret

报错如下

先在一个 pod 里手撸 nginx 把 http 走通?在走通 https,再做 traeffic 的 等价配置?

请问这个通讯错误是发生在 studio 与 graphd 之间,还是发生在浏览器与 studio 之间?

感觉是 browser 里的 spa code访问 studio 的后端(http/ws or https/wss)

cc @hetao

对的,这是访问 studio 自己的服务出错

1 个赞

可以参考

https://medium.com/localhost-run/using-nginx-to-host-websockets-and-http-on-the-same-domain-port-d9beefbfa95d

要 set upgrade header 才能 host websocket

这里,studio的 websocket 的 url 是 /nebua_ws

@hetao 没错吧?从浏览器 console 里看访问的是这个

@abby-cyber-fairy 也许我们可以加一个文档,给出 nginx 里配置 studio 3.7 的例子

2 个赞

好的,这段时间比较忙没来得及验证,过几天有空再看看效果, 感谢回复~

现在应该是确定了 https 会有问题,已经有 issue 了,估计是这个造成你的这个问题

1 个赞