2014年03月01日

Node.JS+socket.ioでSSL通信に対応させる

プロキシサーバとしてnginxを利用しました。
nginxとsocket.ioの連携メモ、SSLの場合。

以下はnginxの設定

upstream node {
least_conn;
server 127.0.0.1:3000 fail_timeout=20s;
}

server {
listen 80;
listen 443 ssl;
server_name yourdomain.com

#SSL証明書
ssl_certificate 証明書の場所;
ssl_certificate_key 鍵の場所;

#httpsにリダイレクトする
if ($ssl_protocol = "") {
rewrite ^ https://$host$request_uri? permanent;
}

#Node.js用とsocket.ioのxhr-pilloing用
location / {
proxy_pass https://node;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X_FORWARDED_PROTO https;
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_redirect off;
}

#socket.ioでWebsocketで接続する用
location /socket.io/1/websocket/ {
proxy_pass https://node;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection upgrade;
proxy_set_header Host $host;
}
}

Node.JS側は


//node server
http = require('https');
options.key = fs.readFileSync("鍵の場所");
options.cert = fs.readFileSync("証明書の場所");
options.passphrase = "パスフレーズ";
server = http.createServer(options, app);

//socket.io
var io = socketio.listen(server, {secure : true});

posted by Syuhei Hiya at 00:47| Comment(0) | TrackBack(0) | メモ
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/88577754
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック
Powered by さくらのブログ