you21979の日記

実験ネタとか。仮想化とかnodejsで嵌った所とかおもしろかったところとかいろいろ

node.jsをサーバーとして立ち上げるときにやること1

1.daemon

foreverを使うのがよいが0.8~しかサポートしなくなった

0.6系を使うならstart-stop-daemonを使う

https://github.com/jiem/start-stop-daemon

 

これで以下のコマンドで制御できる

node --expose_gc ./daemon.js start

node --expose_gc ./daemon.js stop

 

2.ユーザー切り替え

setgidでroot「0」だったらlisten後にsetuidでほかのユーザーに切り替える

1024番以下で起動するのにrootで起動しなくてはならないが

攻撃者にプロセス乗っ取られた場合に被害を少なくするため

 

3.clusterを使う

CPUの数分nodeを立ち上げる

CPUの数立ち上げないとCPU効率がもったいない

クアッドコアなら5000接続*4で同時20000接続とか。

 

4.高負荷サーバーの場合

gc()を定期的に呼ぶ

0.6、0.8系は呼んだほうがいいんじゃないかな