Vagrant使ってnode.jsとか色々ぶっこんでいくついでに解説とかしていくんで夜露死苦!
前回はMEAN Stackの話を書きました。
今回はVagrantを使って作った仮想環境に、node.jsとか色々突っ込んでいこうと思います。
Vagrantのインストール
とりあえず、下記サイトを見てやれば、
VirtualboxのインストールからWebページの表示まで完遂出来ます。
boxファイルのインストールやApacheの設定なども載っています。
web帳 | VirtualBoxとVagrantで開発環境を構築
※今回はCentOS6.4をインストールしました
仮想環境にnode.jsを入れる
node.jsをインストールするにはEPELリポジトリが必要なので、下記のコマンドを実行します。
EPELリポジトリとは、CentOSに元から入っているリポジトリでは提供されていないパッケージが、yumでインストール出来るようになるリポジトリです。
EPELリポジトリにnode.jsが入っているのでインストールが可能になります。
node.jsの特徴
nodeは厳密に言うとプログラミング言語では無い
nodeはサーバーサイドJavaScriptです。
用途としては、ApacheとかのWebサーバー構築ソフトと置き換えて使うイメージです。
シングルスレッドでしか動かない
シングルスレッドなので、どんどんアクセスを受け付けてしまいます。
そのため、速く処理できないとパンクします。
対義語はマルチスレッド。
シングルスレッドでも速く動かすために、ノンブロッキングI/Oとイベントループというモデルを採用している
ノンブロッキングI/O(非同期IO)とは↓
コンピュータ内部のCPUと周辺装置のデータ入出力(I/O)において、データの送受信の完了を待たずに他の処理を開始する方式。並列処理の一種。
非同期I/Oでは、I/O処理と並列に、データの送受信が完了していなくても可能な処理を進め、送受信が済まないと進められない処理にたどりついた場合に、そこで送受信の完了を待つ。
これに対し、正常に送受信が完了したかどうかの結果を待ち、送受信処理に完了してから残りの処理を行う方式を同期I/O(ブロッキングI/O)という。
IT用語辞典より
イベントループとは、受けたリクエストを1つ1つ処理していくモデルです。
1つずつしか処理しないので、メモリを圧迫せずに済みます。
これに対し、複数のリクエストをまとめて処理するのがスレッドモデル。
ノンブロッキングI/Oとイベントループの特徴を活かすと
AさんとBさんが同時にリクエストを投げた場合、
Aさんがリクエストした処理に時間がかかっていたとしても、その完了を待たずにBさんがリクエストした処理に移れます。
Gitをインストール
たぶん入れておいた方が良いのでGitを入れます。
GitをインストールするにはRPMforgeが必要なので先にインストールします。
※CentOS7からはGitがデフォで入っているようです。
RPMforgeとは、EPELリポジトリと同じでyumを強くするようなリポジトリです。
RPMforgeリポジトリがインストール出来たら、Gitをインストールします。