#node.js #kubernetes #websocket #nginx-ingress
#node.js #kubernetes #веб-сокет #nginx-вход
Вопрос:
Я развернул приложение узла в k8s с сокетом. Я использовал aws NLB с завершением TLS при входе.
Я перепробовал много решений, но все еще могу решить эту проблему.
Входной файл
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: app-node-ingress
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/websocket-services: app-node-socket
nginx.org/websocket-services: app-node-socket
cert-manager.io/cluster-issuer: "letsencrypt-prod"
kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/proxy-send-timeout: "3600"
nginx.ingress.kubernetes.io/proxy-read-timeout: "3600"
nginx.ingress.kubernetes.io/proxy-connect-timeout: "3600"
nginx.ingress.kubernetes.io/secure-backends: "true"
nginx.ingress.kubernetes.io/ssl-redirect: "true"
nginx.ingress.kubernetes.io/proxy-http-version: "1.1"
nginx.ingress.kubernetes.io/configuration-snippet: |
proxy_set_header HOST $host;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy false;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_redirect off;
spec:
tls:
- hosts:
- testdomain.com
secretName: letsencrypt-prod
rules:
- host: testdomain.com
http:
paths:
- path: /socket.io
backend:
serviceName: app-node-socket
servicePort: 8000
- path: /
backend:
serviceName: app-node
servicePort: 5000
Но все равно вызывает
WebSocket connection to '<URL>' failed: WebSocket is closed before the connection is established.
Любая помощь будет оценена.