「Express」をnode.jsと一緒にインストールし設定、構築し、現在動作しているNginxに追加で組み込むような形で進めていきます。 ※サーバーOS:CentOS7 Webサーバー:Nginx 1.11.3
DEVELOPER
Y.M.
yumコマンドからインストールすることも可能ですが、node.jsのバージョン管理ソフト、nvmを使って任意でバージョンを切り替えられるようにしてきましょう。
今後の開発内容、環境によって変更できるようにします。
nvmをインストールします。
$ curl https://raw.githubusercontent.com/creationix/nvm/master/install.sh | sh
インストール完了です。
次にnvmを使ってnode.jsインストールします。
あらかじめインストール可能なバージョンを下記コマンドで確認しておきましょう。
インストール可能なバージョン一覧が表示されます。
$ nvm ls-remote
nvmを使って任意のバージョンをインストールします。
本記事をリリースした時点では7.10.0が最新版でした。
最新版の7.10.0をインストールします。
$ nvm install 7.10.0
インストールが完了したら、下記コマンドでインストールを確認します。
$ node -v
nvmでは複数のバージョンのnode.jsがインストールできます。
例えば7.5.0をインストールする場合、7.10.0をインストールしたときと同じ要領でコマンドを実行します。
$ nvm install 7.10.0
インストール完了後、下記コマンドで使用するnode.jsのバージョンを変更することができます。
一連の手順としては変更する必要はありませんが、一度試してみてください。
$ nvm use 7.5.0
バージョン確認用のコマンドを入れてみましょう。
バージョンが7.5.0に切り替わっているはずです。
$ node -v
node.jsをインストールすると、npmというものも一緒にインストールされています。
npmはNodeのパッケージマネージャでさまざまな機能などをインストールするために必要なものです。
次のステップに進むためにnpmをアップデート、もしくはインストールされていない場合はグローバルインストールしておきます。
$ npm update -g npm
もしくは
$ npm install -g npm
node.jsをわかりやすく手軽に開発、実行するためにExpressを使っていきます。
Expressはnode.jsにおける人気のフレームワークで、資料や情報も多く、比較的わかりやすくnode.jsを利用できます。
先程アップデート、インストールしたnpmコマンドでExpressをグローバルインストールします。
$ sudo npm install express -g
インストールが完了したらバージョンを確認してみます。
$ express --version
バージョン情報が出力されればインストールは完了です。
さっそくExpressを使っていきましょう。
今回は最終的にNginxからウェブ上に公開できるように進めていきます。
アプリケーションのディレクトリはWebサーバーの運用や構造に即した形で作成するのが適切です。
$ cd
$ express -e sample
$ cd sample
$ npm install
cdコマンドで任意ディレクトリ(Webを公開しているディレクトリ群など)に移動します。
expressコマンドでsampleという名前のアプリが自動的に作成されます。
cdコマンドでsampleディレクトリに移動します。
npmコマンドでライブラリをローカルインストールします。
作成したアプリケーションを実行してみましょう。
下記のコマンドで実行できます。
$ node app.js
Node.js is listening to PORT:3000
と表示されると思います。しかし、この状態では他のコマンドを受け付けなくなります。
これを改善するため、アプリを裏側で待機させるようにする(デーモン化)ためにforeverを導入します。
いったんcontrol + Cでアプリケーションを中断します。
デーモン化とは
要求があったときプログラムをいつでも実行できるように待機状態にすることです。
foreverをインストールします。
こちらもnpmを使ってforeverをグローバルインストールをします。
$ sudo npm install forever -g
インストール後、foreverで再びアプリを実行します。
$ forever start app.js
これで実行が通りました。
ここまでできたら、ウェブブラウザで確認するためにサーバーの設定を進めます。
公開しているドメイン上でサブドメイン作って公開することを前提に設定を進めていきます。
ネームサーバーなどの設定はあらかじめ設定しておきましょう。
ここからnginxの設定を進めます。
※nginxは基本設定が済んでいる状態が前提となります。インストールはTIPS vol.37をご覧ください。
Nginxのリバースプロキシ機能を使ってnode.jsを設定します。
confには下記のような記述で設定します。
upstream sampleApp {
server localhost:3000;
}
server {
listen 80;
server_name api.example.jp;
access_log /var/log/nginx/api.example.jp.log;
location / {
proxy_pass http://sampleApp/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
access_logやドメイン名は任意です。こちらはapi.example.jpというサブドメインで設定しています。
ポイントとしてはupstream部分とproxy_passの部分を揃えることです。
これらを設定しnginxのreloadを行います。
$sudo systemctl reload nginx
設定したドメインにアクセスしてみましょう。
テストサイトが表示されれば完了です。
node.jsを実行するために現状運用しているnginxに追加設定をし、ひとまずnode.jsを実行するためを目的で設定を進めました。
実際に機能を作っていくにはnode.js、Expressを学習していく必要があります。
実用的な内容はこれから勉強を進めていきたいと考えています。
出典:nodejs
出典:phiary「nvm(Node Version Manager) で Node.js をインストールしよう♪」
出典:Qiita@ogwmtnr(Mitsunori Ogawa)「Node.js + Express + forever を構成して nginx から流す」
出典:Qiita@nkjm(中嶋 一樹)「ゼロからはじめるExpress + Node.jsを使ったアプリ開発」
今日もあなたに気づきと発見がありますように
画面を回転してください