yo_waka's blog

418 I'm a teapot

Nginx1.3でWebsocketをリバースプロキシするメモ

Nginx1.3(2013/04/10時点では開発版)からWebsocketのリバースプロキシを通せるようになったということで、Socket.IOへリバースプロキシさせようとしたけどけどなかなか上手くいかなくて、ようやく上手く動いたのでメモっておく。

Nginxのバージョンは1.3.14です。

http {
    upstream socketio {
        server localhost:3000;
    }
    server {
        listen  80;
        charset  UTF-8;
        server_name  _; # all accept

        location /socket.io {
            proxy_set_header  Host $host;
            proxy_set_header  X-Real-IP $remote_addr;
            proxy_set_header  X-Forwarded-Host $host;
            proxy_set_header  X-Forwarded-Server $host;
            proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header  X-Nginx-Proxy true;

            proxy_pass  http://socketio;

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

"upgrade"は小文字でないとダメ。ここを最初"Upgrade"にしててハマったという。。