前回とほとんど同じ内容になってしまいました。node といえば nginx!! だと思うので順序は反対になっちゃいましたが。
今回は以下の記事で紹介された dochub というプロダクトを nginx + node.js で公開してみます。例によって環境は OS X Mountain Lion です。
多数の言語のAPIドキュメントを一元管理「DocHub」 – MOONGIFT|オープンソース・ソフトウェア紹介を軸としたITエンジニア、Webデザイナー向けブログ
http://www.moongift.jp/2012/07/20120728-2/
dochub のインストール
dochub は node.js で動きます。node.js についての詳しい説明は省きますが、要するに昨今流行しているサーバーサイド Javascript の先駆けとなったものです。
一応 node.js のインストールから手順を載せておきます。
# homebrew で node.js をインストール $ brew -v install node # npm (Perl で言う、cpanm みたいなもの)をインストール $ curl https://npmjs.org/install.sh | sh # dochub をダウンロード $ git clone [email protected]:rgarcia/dochub $ cd dochub # 依存モジュールをインストール $ npm install # 試しに起動してみる $ node web.js # http://localhost:5000/ でアクセスできるはず
node.js 自体のコンパイルに結構時間がかかりますが、dochub のインストール自体は簡単ですねー。
dochub の起動スクリプト
launchctl で自動起動させる起動スクリプトを書きます。
#!/bin/sh DIR=$(cd $(dirname $0);pwd) PORT=18522 NODE=/usr/local/bin/node APP=/Library/WebServer/Applications/dochub/web.js cd $DIR PORT=$PORT $NODE $APP
パスやポート番号は適宜変えてください。実行権限も忘れずに。
launchctl の設定
.plist
ファイルを用意します。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>KeepAlive</key> <true/> <key>Label</key> <string>delphinus.dochub-run</string> <key>ProgramArguments</key> <array> <string>/Library/WebServer/Applications/dochub/web.run</string> </array> <key>RunAtLoad</key> <true/> </dict> </plist>
前回の記事のものを一部修正しただけです。
nginx の設定
前回とほとんど同じなので、更に省略します。
(省略) http { (省略) upstream dochub { server 127.0.0.1:18522; } (省略) server { listen 80; server_name dochub.remora.cx; access_log /var/log/nginx/dochub-access.log; error_log /var/log/nginx/dochub-error.log; location / { proxy_pass http://dochub; break; } } }
サーバーの起動/再起動
dochub を起動し、nginx を再起動します。
# node の起動 $ sudo launchctl load /Library/LaunchDaemons/delphinus.dochub-run.plist # nginx の再起動 $ sudo launchctl unload /Library/LaunchDaemons/homebrew.mxcl.nginx.plist $ sudo pkill nginx $ sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.nginx.plist
後は、DNS の設定で dochub.remora.cx
のサブドメインを使えるようにすれば、http://dochub.remora.cx が開けるようになっているはずです。
まとめ
というわけで、サーバーの公開まであっという間に出来てしまいました。
尤も、このプロダクトは最初の記事にありますと折り、社内 LAN などでドキュメント置き場として利用するために作られており、インターネットに公開するサーバーに置く意味は余りありません。(ネットに繋がるんだったら本家のドキュメントページを見ればいいしね)
まあ練習ってことで。