2013-12-21 6 views
11

Ich versuche, Nodejs mit Nginx einzurichten. Aber wenn der Client versuchen, es keine Verbindung herstellen kann mit ...WebSocket Verbindung fehlgeschlagen mit Nginx, Nodejs und socket.io

WebSocket connection to 'ws://www.mydomain.com/socket.io/1/websocket/KUv5G...' failed: Error during WebSocket handshake: 'Connection' header value is not 'Upgrade': keep-alive socket.io.js:2371 

Wie websocket Komunikation aktivieren?

meine aktuellen nginx Config

upstream mynodejsapp { 
    server 127.0.0.1:3000 max_fails=0 fail_timeout=10s weight=1; 
    ip_hash; 
    keepalive 512; 
    } 
    server { 
    listen 80; 
    listen [::]:80 default_server ipv6only=on; 
    index index.html; 
    server_name mydomain.com www.mydomain.com; 
    keepalive_timeout 10; 
    gzip on; 
    gzip_http_version 1.1; 
    gzip_vary on; 
    gzip_comp_level 6; 
    gzip_proxied any; 
    gzip_buffers 16 8k; 
    gzip_disable "MSIE [1-6]\.(?!.*SV1)"; 
    location/{  
     proxy_pass http://mynodejsapp; 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header X-Forwarded-Proto $scheme; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header Host $host; 
     proxy_set_header X-NginX-Proxy true; 
     proxy_set_header Upgrade $http_upgrade; 
     proxy_set_header Connection "Upgrade"; 
     proxy_cache_bypass $http_upgrade; 
     proxy_http_version 1.1; 
     proxy_redirect off; 
     proxy_next_upstream error timeout http_500 http_502 http_503 http_504; 
     proxy_connect_timeout 5s; 
     proxy_read_timeout 20s; 
     proxy_send_timeout 20s; 
     proxy_buffers 8 32k; 
     proxy_buffer_size 64k; 
    } 
    location ~ ^/(images/|img/|javascript/|js/|css/|stylesheets/|flash/|media/|static/|robots.txt|humans.txt|favicon.ico) { 
     root /var/www/mynodejsapp; 
     access_log off; 
     expires 1h; 
    } 
    fastcgi_param APPLICATION_ENV production; 
    } 

Antwort

20

erste, aktualisieren Sie Ihren nginx Server 1.3 oder höher.

Sekunde, mein nginx conf funktioniert. Sie können meinem conf folgen.

server { 
    listen  80; 
    server_name jn.whattoc.com; 

    location/{ 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header Host $http_host; 
     proxy_set_header X-NginX-Proxy true; 

     proxy_pass http://127.0.0.1:4050/; 
     proxy_redirect off; 

       proxy_http_version 1.1; 
     proxy_set_header Upgrade $http_upgrade; 
     proxy_set_header Connection "upgrade"; 
    } 
} 
+1

Danke !, Ihr Tipp zum Upgrade hat den Trick! Ich bin auf nginx Version: '' 'nginx/1.4.4''' jetzt. –

+0

Yep Aktualisierung von 1,1 bis 1,6 hat den Trick. –

Verwandte Themen