我正在使用Nginx Ingress来kubernetes服务:
Nginx是否转换wss的请求:。。。对ws:?或Nginx是否要求后端也启用HTTPS?使其成为一个更简单的wss:。。。到wss:。。。如果是这样的话,那么后端的自签名证书可以吗?以及如何配置代理以成功连接到后端?
我目前有通过HTTP到后端的Web套接字(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/";。
使用以下URL从浏览器连接:
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