WebSocketは、HTTPとはプロトコルが異なるため、nginxでリバースプロキシさせた場合に、xhr-pollingしか通さず、Websocketでエラーが発生してしまいます。
HTTP/1.1では、HTTP/1.1以外のプロトコルに切り替えるUpgradeヘッダがありますが、Nginxデフォルトの設定では、Upgradeヘッダが付与されていないため、Upgaradeヘッダに付与する必要があります。
※ Nginx1.1ぐらいまでは、UpgaradeヘッダがWebSocketのには対応していないようです。
server { listen 80; server_name localhost; root /usr/share/nginx/html; #charset koi8-r; #access_log /var/log/nginx/host.access.log main; proxy_redirect off; # for WebSocket proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; # その他の設定 : : }
おすすめ書籍