Webサーバー
Node.JS
PiのWebサーバーの代替として使用でき、スタンドアロンまたは単一ページのWebアプリケーションを簡単に作成できます。
しかし、あなたの情報だけのために、ほとんどの現実世界のアプリケーションでは、モダンnginx
で軽量、lighttpd
またはチャンキーだがフル機能のサーバーを使用することをお勧めしますapache2
!次に、node.jsをスクリプト化してサイトを補完します。
明らかに、可能性は無限であり、すべてはあなたが達成したいものに依存します。
ラズベリーパイ?
Raspberry Piは、これらのWebサーバーを実行できます。また、深刻な合併症なしでNodeを実行でき、複雑な調整なしで非常に高速です。
Raspberry Piは非常に優れた機能を備えていますが、メモリ分割を最小限のグラフィックスとほとんどのRAM に切り替えることをお勧めします。IDEの使用を忘れて、すべてをSSH経由で行うだけです。本当にもっとジュースが必要な場合は、BCMチップにヒートシンクを置き、安全だと感じたらオーバークロックします。別のオプションは、複数のPiをクラスターとして使用して負荷分散を支援することです。クラスタリングについて、ここから掘り始めることができます。
しかし、本当にnode.jsを使用する必要がありますか?
Node.JS
は、小さなデータチャンクをDBに保存、キャッシュ、または最小限のサーバーオーバーヘッドでリードバックする必要がある数百、数千のリクエストを取得する(または予想する)ときに使用することを目的としていました。したがって、クライアントでJSを使用してドライブしますがNode.JS
、実際にはC / C ++によってドライブされます。それでは、カスタムモジュールまたは基本コードの特定の変更が必要な場合はどうなりますか?
Webページを提供するアプリケーションでは、node.jsは通常、たとえば単一のリクエストでApacheを上回ることはありません。node.jsの非ブロック機能は、1日のほとんどの間に1秒あたり数千のリクエストがある場合に最適です。これは、apacheがブロックしてクラッシュする場所です。
実世界の例
Ebay-オークション中、最後の30秒間のカウントダウンがある場合。ページを精力的に更新し、入札単価を引き上げるのに使用した複数のユーザーを含めることができます。node.jsが優れているのは、今日はこれ以上リフレッシュする必要がないためです。これは、JSがすべてのクライアントから頻繁に(300ミリ秒から600ミリ秒)node.jsにアジャックスし、「実際のオークション」エクスペリエンスを提供できるためです。Ebayはnode.jsだけで実行されるのではなく、非常に複雑な負荷分散されたサーバーファームで実行されます。
Pi *でNode.jsをビルドしてインストールするには:
明らかに、他のノードの代わりにnode.jsを使用しても何も問題はありません。Piのようなきちんとした小さなデバイスでノードを学習するのに最適な方法です。したがって、このように自分でコードをコンパイルできます。
$ sudo apt-get install git-core build-essential libssl-dev
$ mkdir ~/nodeDL && cd ~/nodeDL
$ git clone https://github.com/joyent/node.git
$ git checkout v0.6.15 (to checkout the most recent stable version at time of writing)
更新:ノードの最新バージョン(現在のバージョンはv0.8.18)は、以下の特別な手順なしでビルドできます
次にarmv6
、コンパイルにアーキテクチャを使用するようコンパイラーに指示する必要があります。
$ export CCFLAGS='-march=armv6'
$ export CXXFLAGS='-march=armv6'
and then edit deps/v8/SConstruct around the line 82 mark, to add “-march=armv6”:
'all': {
'CCFLAGS': ['$DIALECTFLAGS', '$WARNINGFLAGS', '-march=armv6'],
'CXXFLAGS': ['-fno-rtti', '-fno-exceptions', '-march=armv6'],
},
次に、157マーク付近から始まる行をコメントアウトして、vfp3とシミュレーターのパーツを削除します。これはJSONのようなオブジェクトなので、CPPDEFINES
行のコンマを忘れずに削除してください!
'armeabi:softfp' : {
'CPPDEFINES' : ['USE_EABI_HARDFLOAT=0']
# 'vfp3:on': {
# 'CPPDEFINES' : ['CAN_USE_VFP_INSTRUCTIONS']
# },
# 'simulator:none': {
# 'CCFLAGS': ['-mfloat-abi=softfp'],
# }
},
次に、通常のconfigure、make、make installプロセス、NB OpenSSL libpathの場所を手動で指定する必要がありました。
$ ./configure --openssl-libpath=/usr/lib/ssl
$ make (to compile node (This took 103 minutes!))
$ sudo make install
これで、Node.JSが正常にインストールされました!
$ node -v should show you the version number
$ npm -v should show you the version of the Node Package Manager
*参考文献と元の記事
しかし、他の回答で指摘されているように、機能するプリコンパイル済みバイナリをダウンロードするだけです。
結論
Piの良い部分は悪くありません。Piで何でも実行できます。ただ、生産レベルのパフォーマンスを期待しないでください。