Ubuntu 16.04でNode.js永続アプリケーションをセットアップする方法

Node.jsアプリケーションは、スケーリングする機能で人気があります。複数のサーバーで複数の同時プロセスを実行すると、レイテンシが低くなり、稼働時間が長くなります。複数のサーバーを管理する場合、Node.jsアプリケーションがクラッシュした場合に自動的に再起動させるのが最も簡単です。このチュートリアルでは、空のUbuntu 16.04インスタンスからアプリケーションの永続性をすばやく設定する方法を示します。

前提条件

  • Ubuntu 16.04 LTS x64で任意のサイズのVultrインスタンスを作成します。
  • rootユーザーでない場合は、実行sudo -sしてパスワードを入力します。起動時にプロセスマネージャが起動するように起動ファイルを変更するには、ルートアクセスが必要です。
  • Node.jsがインスタンスにインストールされていること、およびNode.jsのバージョンが8.9.3 LTS以降であることを確認します。これは、永続性マネージャーをスムーズに実行するために必要です。node -vインストールされているバージョンを確認するために使用します。Node.jsが正しいバージョンでない場合、次のコマンドでインストールされます。

Node.jsをインストールします。

$ sudo apt-get update
$ curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
$ sudo apt-get install -y nodejs

スワップパーティションを作成する

この手順はオプションですが、インストールに推奨されます。スワップパーティションは、RAMの補足に役立つハードディスクの一部です。512MB RAMインスタンスなどの小さいVultrインスタンスでは、スワップパーティションを作成するとパフォーマンスが向上します。スワップチュートリアルの自動バージョンについては、以下のコマンドを使用してください。

$ git clone https://github.com/teamtofu/server-tools.git tools
$ bash ./tools/swap.sh

一般的に、アプリケーションのパフォーマンスは向上するかもしれませんが、永続的なアプリケーションを設定する場合、4 GB以上のRAMを持つインスタンスではスワップの使用は必要ありません。RAMはスワップよりも応答性が高いため、RAMが多いインスタンスは、スワップに関係なくより良い結果をもたらす傾向があります。

糸をインストール

YarnはFacebookのNode.jsパッケージ用の使いやすいパッケージマネージャーです。これはNPMよりも高速であり、決定論的でもあります。これは、複数のサーバーを展開するときに特に役立ちます。

$ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
$ echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
$ sudo apt-get update && sudo apt-get install yarn

ただし、Yarnの代わりにNPMを使用でき、このチュートリアルのすべてのコマンドと同等のコマンドがあります。

Node.jsアプリケーションをインストールする

アプリケーションがgitリポジトリでホストされている場合は、それを複製して使用しますyarn install。アプリケーションには、次の手順で使用するサーバーエントリファイル(通常はserver.jsまたはindex.js)が必要です。

Process Manager 2をインストールする

Process Manager 2は、アプリケーションを自動再起動するパッケージです。Process Manager 2は非常に人気があり、Microsoft、PayPal、およびIntuitで使用されているため、安全で信頼できます。

$ yarn global add pm2

アプリケーションをプロセスとして追加する

アプリケーションはデーモン化(バックグラウンドで実行)され、startコマンドで自動再起動されます。

$ pm2 start [path to your entry.js] -i max

最大数のプロセスを自動的に起動する場合は、-i max引数を渡します。このVultrインスタンスの唯一の用途がアプリケーションの提供である場合は、これが推奨されます。複数のCPUを備えたVultrインスタンスの場合、複数のプロセスが起動され、Process Manager 2はこれらすべての個々のプロセスのロードバランサーとして機能します。

起動時にアプリケーションを自動的に起動します

アプリを起動したら、アプリケーションの構成を保存します。次に、起動コマンドを実行して、Ubuntuの起動時にプロセスマネージャー2をバックグラウンドで自動的に実行します。Ubuntu 16.04の場合、Process Manager 2はにバインドされsystemdます。

$ pm2 save
$ pm2 startup

これで、エラーが原因でNode.jsアプリケーションがクラッシュした場合は再起動し、Ubuntuが何らかの理由でクラッシュした場合は、プロセスがUbuntuで自動的に再起動します。プロセスはで再起動できpm2 gracefulReload all、Process Manager 2はで再起動できますpm2 update。起動時にProcess Manager 2が起動しないようにするには、を実行しpm2 unstartupます。

テスト中

入力rebootしてUbuntuの起動後にアプリケーションが提供されるかどうかを確認してみてください。アプリケーションは、Web用であり、ポート上で役立った場合は80、その後、curl http://localhost/開始ページのHTMLが表示されます。機能しない場合、コマンドpm2 statusは実行中のプロセスを表示し、開始コマンドを再発行できます。

アプリケーションの新しいバージョンをデプロイする

gitリポジトリーをプルするなどしてアプリケーションを更新する場合は、実行中のアプリケーションプロセスを更新するコマンドを発行する必要があります。

$ pm2 update

使用例

Parse Serverは、サービスとして人気のあるオープンソースプラットフォームであり、アプリケーションのバックエンドとして機能します。コードまたはリクエストの量のエラーが原因でバックエンドがクラッシュする可能性がありますが、他のサーバー(またはプロセス)が引き続き実行され、Parse Serverプロセスがすばやく再起動されるため、アプリケーションにダウンタイムは発生しません。



Leave a Comment

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。

LiteCartショッピングカートプラットフォームをUbuntu 16.04にインストールする方法

LiteCartショッピングカートプラットフォームをUbuntu 16.04にインストールする方法

LiteCartは、PHP、jQuery、およびHTML 5で記述された無料のオープンソースのショッピングカートプラットフォームです。シンプルで軽量、使いやすいeコマースソフトウォー

DebianでNFS共有をセットアップする

DebianでNFS共有をセットアップする

NFSはネットワークベースのファイルシステムであり、コンピューターはコンピューターネットワークを介してファイルにアクセスできます。このガイドでは、NFを介してフォルダーを公開する方法について説明します

Fedora 28にMatomo Analyticsをインストールする方法

Fedora 28にMatomo Analyticsをインストールする方法

別のシステムを使用していますか?Matomo(旧Piwik)は、Google Analyticsのオープンな代替手段であるオープンソースの分析プラットフォームです。Matomoのソースはoでホストされています

Ubuntu 14.10へのMcMyAdminのインストール

Ubuntu 14.10へのMcMyAdminのインストール

McMyAdminは、サーバーの管理に使用されるMinecraftサーバーコントロールパネルです。McMyAdminは無料ですが、複数のエディションがあり、一部はパイです

LinuxでTeamTalk Serverをセットアップする

LinuxでTeamTalk Serverをセットアップする

TeamTalkは、ユーザーが高品質のオーディオ/ビデオ会話、テキストチャット、ファイルの転送、および画面の共有を可能にする会議システムです。それは

CentOS 7サーバーにCyber​​Panelをインストールして構成する方法

CentOS 7サーバーにCyber​​Panelをインストールして構成する方法

別のシステムを使用していますか?はじめにCyber​​Panelは、オープンソースでありOpenLiteSpeedを使用する市場で最初のコントロールパネルの1つです。なんてこった

Ubuntu 17.04でRbenv、Rails、MariaDB、Nginx、SSL、およびPassengerを使用してRubyをインストールおよび構成する方法

Ubuntu 17.04でRbenv、Rails、MariaDB、Nginx、SSL、およびPassengerを使用してRubyをインストールおよび構成する方法

Ruby on Railsは、プログラマーの生産性を向上させるために開発されたRubyの人気のあるWebフレームワークです。ただし、さまざまな宝石と依存関係を取得する

Vultr VPSにアクセスする方法

Vultr VPSにアクセスする方法

Vultrは、VPSにアクセスして構成、インストール、および使用するためのいくつかの異なる方法を提供します。アクセス認証情報VPS arのデフォルトのアクセス認証情報

CentOS 7、Ubuntu 16.04、Debian 9にGolang 1.8.3をインストールする方法

CentOS 7、Ubuntu 16.04、Debian 9にGolang 1.8.3をインストールする方法

GolangはGoogleが開発したプログラミング言語です。汎用性、シンプルさ、信頼性のおかげで、Golangは最も人気のあるものの1つになりました

Debian、CentOS、およびFreeBSDでSudoを使用する方法

Debian、CentOS、およびFreeBSDでSudoを使用する方法

LinuxおよびUnixのシステム管理者の間では、sudoユーザーを使用してサーバーにアクセスし、コマンドをルートレベルで実行することは非常に一般的です。sudの使用

Ubuntu 16.04 LTSにDokuWikiをインストールする方法

Ubuntu 16.04 LTSにDokuWikiをインストールする方法

別のシステムを使用していますか?DokuWikiは、データベースを必要としないPHPで記述されたオープンソースのWikiプログラムです。データをテキストファイルに保存します。ドクウィク

DebianでのChrootのセットアップ

DebianでのChrootのセットアップ

この記事では、Debianでchroot jailをセットアップする方法を説明します。私はあなたがDebian 7.xを使っていると思います。Debian 6または8を実行している場合、これは機能する可能性があります、bu

DebianにPiVPNをインストールする方法

DebianにPiVPNをインストールする方法

はじめにDebianでVPNサーバーを設定する簡単な方法は、PiVPNを使用することです。PiVPNは、OpenVPNのインストーラーおよびラッパーです。それはあなたのための簡単なコマンドを作成します

Ubuntu 18.04 LTSにCyber​​Panelをインストールして構成する方法

Ubuntu 18.04 LTSにCyber​​Panelをインストールして構成する方法

別のシステムを使用していますか?はじめにCyber​​Panelは、オープンソースでありOpenLiteSpeedを使用する市場で最初のコントロールパネルの1つです。なんてこった

Ubuntu 16.04 LAMP VPSにBigTree CMSをインストールする方法

Ubuntu 16.04 LAMP VPSにBigTree CMSをインストールする方法

別のシステムを使用していますか?BigTree CMS 4.2は、高速で軽量な無料のオープンソースのエンタープライズグレードのコンテンツ管理システム(CMS)であり、

Debian 9でソースからBrotliをビルドする方法

Debian 9でソースからBrotliをビルドする方法

別のシステムを使用していますか?Brotliは、Gzipよりも圧縮率が高い新しい圧縮方法です。そのソースコードはGithubで公開されています。ティ

PleskサーバーでHTTP / 2を有効にする方法

PleskサーバーでHTTP / 2を有効にする方法

PleskはネイティブのHTTP / 2サポートを備えています。PleskでのHTTP / 2のロールアウトは、他のコンポーネントに比べてはるかに簡単ですが、その導入プロセスには慎重な計画が必要です

FreeBSD 12にosTicketをインストールする方法

FreeBSD 12にosTicketをインストールする方法

別のシステムを使用していますか?osTicketは、オープンソースのカスタマーサポートチケットシステムです。osTicketのソースコードはGithubで公開されています。このチュートリアルでは

CentOS 7にApacheをインストールする方法

CentOS 7にApacheをインストールする方法

CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1におけるBlacklistdのインストール方法について詳しく解説します。この方法を通じて、強力なセキュリティ対策を実装できます。

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

サーバーマネージャーを使用して、Windows Serverの管理が向上します。セキュリティリスクを軽減し、効率的な管理を実現します。

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。

DebianでSnortを設定する方法

DebianでSnortを設定する方法

Snortは無料のネットワーク侵入検知システムです。最新の方法で、SnortをDebianにインストールし、設定する手順を紹介します。ネットワークのセキュリティを強化しましょう。

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsサーバーでWebサイトを実行している場合、電子メールも受信できるようにするためにhMailServerを使用する方法を解説します。

Ubuntu 19.04にFiveMサーバーをインストールする方法

Ubuntu 19.04にFiveMサーバーをインストールする方法

FiveMサーバーをUbuntu 19.04にインストールするための詳細なガイド。必要条件からインストール、起動、トラブルシューティングまで、すべてのステップを含みます。

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。

ヘルスケア2021における人工知能の影響

ヘルスケア2021における人工知能の影響

ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。