Node.js のための HTTP サーバ

このエントリーをはてなブックマークに追加

Python では SimpleHTTPServer という機能があり、Webサーバーを簡単に利用することができる。

しかしこれを利用していると、アクセスがあるたびにターミナルにログが出力されてしまう。ログを見たいときは便利かもしれないのだが、ログが必要ない時だってある。

それに、最近は Grunt を使って自動でタスクを動かす機会も増えているので、 Grunt と同じ Node.js で動かせる HTTP サーバはないかと探してみた。すると、 http-server というのがあるということがわかった。

Python の SimpleHTTPServer 利用方法

まずは Python の SimpleHTTPServer の利用時コマンドを見てみよう

$ python -m SimpleHTTPServer

Python は Mac ユーザーにとっては最初から入っている言語でもあるので、一番利用しやすいのではないでしょうか。いろんな人もこれを使うようにかいていますし。

http-server の使い方

ようやく本題の http-server 、まずはインストールから

http-server のインストール

$ npm install http-server -g

-g のオプションを付けてグローバルにインストール。

そして、基本的な起動方法は下記

基本的な使い方

$ http-server [path] [options]

例えば httpd ディレクトリをルートにして、ポート 8000 でアクセスするようにする場合

$ http-server ./httpd -p 8000

となる。ポートの指定をしない場合はデフォルトで 8080 になるようだ。

ちなみに、この Node.js での http-server は Stack Overflow をみると、

http-server for node.js is very convenient, and is a lot faster than Python's SimpleHTTPServer.

引用元:command line - Faster alternative to Python's SimpleHTTPServer - Stack Overflow

だとか。

速いかどうかはわからないのですが、 Grunt を使っているような場合は、こちらの利用も選択肢にあるといいかもしれないです。

バックグラウンドでの起動

最後におまけ、 http-server のコマンドを単純にたたいただけでは、CTRL-C を入力するまでターミナルの画面にずっと起動状態が表示される。

これをターミナルのバックグラウンドで起動させたままにしておきたい場合は、入力コマンドの一番最高日に、 & をいれておく。

$ http-server -p 8000 &

終了したい場合は、起動時に表示された数字を kill コマンドで終了させる。

$ kill xxxxx
参考:
http-server
nodeapps/http-server