複数Webアプリを1つのホストで立ち上げる方法
expressを使うとわりかし簡単にWebアプリを作れます。
で、いくつもつくって立ち上げ続けたいのですが、ポートをいちいち分けてアクセスするのもイケてないです。
そんな時に使うのがnode-http-proxyを使います。
node-http-proxy自体は結構色々出来るんですが、タイトル通りのことしかしない場合の方法をメモしておきます。
$ npm install http-proxy -g $ npm link http-proxy
- ~/usr/Router/app.js
var httpProxy = require('http-proxy') , options = { router : { 'hoge' : 'localhost:8001', 'fuga' : 'localhost:8002' //勝手に増やせばよい } } , proxyServer = httpProxy.createServer(options) , apacheUID; proxyServer.listen(80); process.setuid(apacheUID);
こうしておけば、ルーティングしてくれます。あとは、アプリを適当なポートで立ち上げるだけです。
ざ・簡単!
nodeの実行ユーザの変更
あ、あと、嬉しそうにexpressでwebアプリとか作って、「ダサいから」という理由で80(<1024)ポートで上げたくなりますが、sudoとかしてroot権限でやったりしたら大変です。
ちゃんと以下のようにしてapache程度にしておきましょう。
上のコードで言うと最後の行がそれです。
process.setuid()
で変えることができます。
あ、サーバを立ち上げる前に変えちゃうと80番使えなくなります。