当通过HTTP路由到后端时,Nginx Ingress如何处理通过HTTPS(wss:...)的传入WebSocket连接?(ws:...)?

巧克力

我正在使用Nginx Ingress进行kubernetes服务:

Nginx是否将请求从wss:...转换为ws:...?还是Nginx是否要求后端也启用HTTPS?将其简化为wss:...到wss:...如果是这种情况,那么后端的自签名证书可以吗?以及如何配置代理以成功连接到该后端?

我目前有Web套接字通过HTTP到后端(ws:...到ws:...)工作,我真的不知道如何进入下一个级别并通过HTTPS来工作!我想这是这里的主要问题。

apiVersion: k8s.nginx.org/v1
kind: VirtualServer
metadata:
  name: xxxx-virtual-server
  namespace: {{ .Values.tenantName }}
  labels:
    {{- include "xxxx.labels" . | nindent 4 }}
  {{- with .Values.ingress.annotations }}
  annotations:
    {{- toYaml . | nindent 4 }}
  {{- end }}
spec:
  host:  {{ .Values.tenantName }}.x.cloud
  tls:
    secret: aks-ingress-tls
  upstreams:
  - name: aaa-upstream
    service: aaa-service
    port: 5000
  - name: bbb-upstream-socket
    service: bbb-service-socket
    port: 80
  routes:  
  - path: /
    matches:
    - conditions:
      - header: Upgrade
        value: websocket
      action:
        pass: bbb-upstream-socket 
    action:
      pass: aaa-upstream
巧克力

我终于完成了这项工作,所以对于其他想知道同一件事的人来说,这就是我发现的东西。

我正在使用Nginx Ingress进行kubernetes服务:

Nginx是否将请求从wss:...转换为ws:...是的,它可以:-)

Nginx是否要求后端也启用HTTPS:不,不是。

基本上,我们将套接字设置为侦听URL“ / ws /”。

使用以下网址从浏览器进行连接:

wss://test.cytrack.cloud/ws/

然后使用Nginx Ingress虚拟服务器自定义资源,我们添加:

apiVersion: k8s.nginx.org/v1
kind: VirtualServer
metadata:
  name: abc-virtual-server
  namespace: abcd
spec:
  host:  abcde
  tls:
    secret: aks-ingress-tls
  upstreams:
  - name: abc-upstream-socket
    service: abc-service-socket
    port: 80
    read-timeout: 300s
    send-timeout: 300s
  - path: /ws/
    action:
      pass: abc-upstream-socket

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

Related 相关文章

热门标签

归档