2016-10-29 11 views
5

Meine Einrichtung ist cloudflare -> nginx -> node.js Server. Ich habe bestätigt, dass es sich nicht um den node.js-Server handelt. Das Problem scheint die Kombination von Cloudflare und Nginx zu sein. Es funktioniert nur mit nginx und node.js.WebSockets trennen Verbindung mit Nginx und Cloudflare

Dies ist, was Nginx für die Websocket-Verbindung protokolliert: 162.158.75.125 - - [29/Oct/2016: 00: 01: 47 +0000] "GET/HTTP/1.1" 101 1047 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537,36 (KHTML, wie Gecko) Chrom/53.0.2785.143 Safari/537,36"

nginx config:

server { 
    listen 443 ssl; 
    server_name vectorwar.io; 
    ssl_certificate /etc/nginx/ssl/cert.pem; 
    ssl_certificate_key /etc/nginx/ssl/key.pem; 

    location/{ 
     proxy_pass  http://localhost:7000; 
     proxy_set_header Host  $host; 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_http_version 1.1; 
     proxy_set_header Upgrade $http_upgrade; 
     proxy_set_header Connection "upgrade"; 
     proxy_read_timeout 31104000s; 
     proxy_connect_timeout 31104000s; 
     proxy_send_timeout 31104000s; 

    } 
} 
+0

[Kann ich webSockets mit CloudFare verwenden] (https://support.cloudflare.com/hc/en-us/articles/200169466-Can-I-use-CloudFlare-with-WebSockets-)? – jfriend00

+0

Das löst mein Problem nicht. – user1781498

+0

Vielleicht eine Auszeit irgendwo in der Leitung? Wie lange bleibt es offen, wenn die WebSocket still ist? Sendet das Senden einer Nachricht im Ping/Pong-Stil die WS-Verbindung regelmäßig, um zu verhindern, dass die Verbindung getrennt wird? – Brian

Antwort

2

Haben Sie versucht, die Websocket ohne SSL einrichten?

Ich hatte Erfahrungen, wo Websockets über SSL automatisch nach ~ 45 Sekunden trennen. Mit einer unsicheren Verbindung wurde das behoben. Nicht ideal natürlich, aber Sie könnten versuchen, zu sehen, ob das zumindest die Trennungsprobleme löst.

+0

nein habe das nicht versucht. – user1781498

+0

Es sieht so aus, als ob ich alle paar Sekunden ein Paket senden kann, das verhindert, dass das Zeitlimit überschritten wird. – user1781498