【raspberry-pi】nginx + passenger + node.js 環境作成メモ (1)の続き
node.js インストール
- nodebrewを使用
- http://nodejs.org/dist/を確認して、linux-arm-pi のパッケージが置いてあるバージョンだと install-binary できて早い
- passengerから実行したときに node が見つからない、となったので /usr/local/bin にシンボリックリンクを作成した
$ cd /usr/local/bin
$ sudo ln -s ~/.nodebrew/current/bin/node .
テストアプリ
$ mkdir passenger_node_test
$ mkdir passenger_node_test/public
$ mkdir passenger_node_test/tmp
$ cd passenger_node_test
$ vi app.js
app.js
var http = require('http');
var server = http.createServer(function(req, res) {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end("hello world!\n");
});
server.listen(3000);
nginx設定
/opt/nginx/conf/nginx.conf
server {
listen 80;
server_name xxx.xxx.jp;
location / {
root html;
index index.html index.htm;
}
location /test {
root /home/pi/projects/passenger_node_test/public;
passenger_enabled on;
}
}
テストアプリは上記設定で動作することを確認した。
socket.ioを使用したアプリだと、サーバールートへ配置した場合は動作するが、サブディレクトリへの配置ではうまくいかない。
やり方はあるようだが面倒くさそう。
【追記】
別ポートで動かすのがとりあえず楽そう。
server {
listen 8000;
root /home/pi/projects/socket-io-sample/public;
passenger_enabled on;
}