プログラム関係の備忘録。技術系記事1000記事以上を目指すブログ

Express(Node.jsアプリ)を本番環境向けにpm2で動かす

  • 2020年6月6日
  • 2020年6月6日
  • node.js
  • 1592view
  • 1件

始めに

pm2というnpmのパッケージを利用して、本番環境向けにnode.jsアプリを動かす方法です。以前は、pm2と同じくプロセスの永続化ができるforeverというパッケージを使っていたのですが、pm2のほうがなにやら便利だしちょっとかっこいい系(語彙力..)なので、今回はpm2の使い方を簡単に紹介したいと思います。

pm2のインストール

npmでグローバルインストールするだけ

npm i pm2 -g

pm2の設定ファイルを作成

ファイル名はなんでも良いですが、わかりやすいようにconfigフォルダにpm2.jsonというファイルを作成。

そのファイル内で以下の様に指定します。

{
  "name" : "アプリ名",
  "script" : "./bin/www",
  "env": {
    "NODE_ENV" : "development"
  },
  "env_development": {
    "NODE_ENV" : "development"
  },
  "env_staging": {
    "NODE_ENV" : "staging"
  },
  "env_production": {
    "NODE_ENV" : "production"
  }
}

直接スクリプトを指定してスタートすることもできますが、このように設定ファイルを用意しておくことで引数を指定することができます。

pm2でアプリケーションを立ち上げてみる

以下のコマンドで、先ほどのjsonファイルを指定してpm2を起動します。

pm2 start ./config/pm2.json --env development

無事にdevelopment環境でExpressが起動することが確認できるかと思います。

pm2で立ち上げたアプリケーションの停止

設定ファイルに書いたnameを指定して操作ができます

pm2 stop "アプリ名"

その他の基本的なコマンド

ホットデプロイ

開発環境で起動しているときにソースの変更を検知して再起動してくれる

pm2 start *** --watch

再起動

pm2 restart ***

起動中のプロセスを確認

pm2 list

モニタリング

pm2 monit

ログの表示

pm2 logs

ログの消去

pm2 flush

最後に

冒頭でなんかかっこいいと書いたのはpm2 monitでみれる画面ですね。
使ってみた感じとてもよかったのでぜひとも使ってみてください。