Ubuntu 16.04でNginxリバースプロキシを使用してKeystone.jsサーバーをセットアップする

このチュートリアルでは、リバースプロキシを使用してWebサーバーをセットアップします。ここで使用するCMSは、Express.jsをベースにした有名なWebアプリケーションフレームワークであるKeystone.jsです。ここで使用するリバースプロキシは、無料でオープンソースのリバースプロキシであるNginxと、HTTPサーバーです。ここで使用するデータベースは、NoSQLドキュメントデータベースであるMongoDBです。これには、レコードが設定されたドメインが必要です。その設定がない場合は、先に進んで対処してから、このチュートリアルに戻ってください。

ノードのインストール

まず、Node.jsをインストールします。Node.jsは、Chrome V8 JavaScriptエンジンに基づくJavaScriptインタープリターです。

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

Nginxのインストール

次に、リバースプロキシであるNginxをインストールします。

sudo apt update
sudo apt install nginx

これにより、パッケージリストが更新され、Nginxがインストールされます。インストールが完了したら、ノードプロジェクトをセットアップします。

Keystoneプロジェクトの初期化

ノードプロジェクトを作成します。これを行うには、単に新しいフォルダを作成します。

mkdir website

次に、package.jsonファイルを作成します。これを行うには、単にnpm initターミナルで実行し、フィールドに入力し、「yes」と返信して確認します。package.jsonファイルを作成したら、次のノードモジュールをインストールします。

sudo npm install -g generator-keystone
sudo npm install -g yo

ダウンロードが完了したら、以下を実行します。

yo keystone

必須フィールドに入力します。それはのためにあなたを聞いてきますproject nametemplate engineemailコントロールパネルの、そして上のようにします。何を選択すればよいかわからない場合は、デフォルトで十分です。keystone設定を構成した後node keystone、アプリケーションを起動するために入力することにより、サーバーが実行されているかどうかをテストできます。デフォルトでは、アプリケーションはlocalhostポート上で実行されます3000。MongoDBがインストールされていない場合、データベースはすぐには利用できません。後でチュートリアルでインストールする方法を学ぶことができます。

Keystone.jsの基本的なディレクトリレイアウトは次のとおりです。

  • /lib -ここに、カスタムライブラリやその他のコードを保存します。

  • /models-ここに、アプリケーションのデータベースモデルを格納します。KeystoneJSは、MongoDBをデータベースプロバイダーとして使用します。

  • /public -ここに静的ファイル(CSS、JS、画像など)が保存されます。

  • /routes/api -これは、アプリケーションのAPIコントローラーが格納される場所です。

  • /routes.views -ここにアプリケーションビューコントローラが格納されます。

  • /templates -ここに、アプリケーションのすべてのテンプレートファイルが格納されます。

  • /updates -ここに移行スクリプトが保存されます。

  • package.json -これは、ジェネレーターが生成したnpm構成ファイルです。

  • keystone.js -メインの開始ファイル。ウェブサイトの起動時にこれを実行します。

データベースの初期化

前述したように、使用するデータベースはMongoDBです。これは、信頼性の高いNoSQLのドキュメント指向データベースです。MongoDBがすでにインストールされている場合は、このセクションをスキップできます。そうでない場合は、Ubuntu 16.04にインストールする方法を次に示します。

mongoDBパッケージに使用される公開鍵をインポートします。

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6

パッケージのインストールに使用するリストファイルを作成します。

echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list

を使用してパッケージリストを更新しますapt

sudo apt update

最後に、MongoDBをインストールします。

sudo apt install mongodb-org -y

このインストールが完了したら、MongoDBを起動します。

sudo service mongod start

これにより、ポートでMongoDBプロセスが開始されます27017

MongoDBはアプリケーション全体で使用され、モデルなどのモデルに使用する情報を格納するために利用されますUser。Keystoneは選択したデータベースとしてそれを使用します。現時点では、他のデータベースベンダーを使用することはできません。

PM2のインストール

PM2(プロセスマネージャー2)をインストールします。PM2は、Node.jsアプリケーション用のプロセスマネージャーで、npmモジュールの形式です。アプリケーションを管理し、バックグラウンドで実行する簡単な方法を提供します。それはNPMにあるので、インストールするために私たちがしなければならないすべては以下を実行することです。

sudo npm install pm2 -g

これはnpmにグローバルにインストールするように指示するので、システムのどこでも使用できます。

PM2でのアプリケーションの実行/管理

以前は、でWebアプリケーションを実行していましたnode keystone。PM2では、少し異なります。ここで、以下を使用してノードアプリを実行します。

pm2 start keystone.js

これにより、PM2アプリケーションがプロセスリストに追加され、小さなボックスが表示され、実際にオンラインであることを確認できます。idプロセスのラベルが付いたボックスに注意してください。これについては後で詳しく説明するので、これを近づけてください。

アプリケーションのログを確認します。

pm2 logs [id]

たとえば、pm2 logs 0これが最初のPM2アプリケーションである場合。

いつでもウェブアプリケーションを停止する。

pm2 stop [id]

アプリケーションを完全に削除します。

pm2 delete [id]

PM2には、アプリケーションの基本的な統計情報を表示したい場合に監視ダッシュボードがあり、これを使用してアクセスできます。

pm2 monit

これにより、RAM使用率、CPU使用率、稼働時間などの基本的な情報が表示されます。

PM2が提供する優れた機能はですwatching。基本的に、監視とは、PM2が開始ファイルと同じディレクトリにあるファイルの変更を自動検出し、アプリケーションを自動的に再起動するときです。これを有効にするには、単にアプリケーションを再起動しますが、監視フラグを渡します。

pm2 restart [id] --watch

監視を有効にした後で無効にするには、同じコマンドを再度実行するだけで、監視が無効になります。

このチュートリアルでは、監視をオフにしておきます。

リバースプロキシの設定

Nginxがインストールされていることを確認してください。何らかの理由でそうでない場合は、上記の手順を参照してください。

ファイアウォールの設定を調整します。Ubuntuではufw、公式のファイアウォールです。デフォルトでは、接続はポートでブロックされます80。Nginxの例外をポートに追加する必要があります80。これには、Webアプリケーションが実行されます。

sudo ufw allow 'Nginx HTTP'

Nginxサーバーが実行されていることを確認します。

systemctl status nginx

Activeセクションの下にactive (running)が表示されていれば、準備は完了です。そうでない場合は、サービスを再起動してみてください。

systemctl restart nginx

デフォルトのNginx構成ファイルを削除します。

sudo rm /etc/nginx/sites-available/default

新しいものを作成し、それを呼び出すだけnodeです。

sudo nano /etc/nginx/sites-available/node

以下をファイルに貼り付け、example.comあなたのウェブサイトのドメインに置き換えます。

listen 80;

server_name example.com;

    location / {

        proxy_set_header   X-Forwarded-For $remote_addr;

        proxy_set_header   Host $http_host;

        proxy_pass         "http://127.0.0.1:3000";
    }
}

proxy_passは、Keystoneアプリがローカルで実行されているIP(localhostポート上)を示していることに注意してください3000listen 80アプリの宛先ポート80です。この場合はport です。

次に、というフォルダへのシンボリックリンクまたはシンボリックリンクを作成する必要がありますsites-enabled。違いsites-enabledとはsites-availableつまりsites-enabled、実際にnginxのでロードされます。

sudo ln -s /etc/nginx/sites-available/node /etc/nginx/sites-enabled/node

これで、構成ファイルsites-availableを使用する準備が整い、からロードされsites-enabledます。設定を適用して有効にするには、Nginxを再起動するだけです。

sudo systemctl restart nginx

最後に、PM2アプリケーションを再起動します

pm2 restart [id]

これで、ブラウザーでドメインに移動できるWelcome to Keystoneようになり、ログイン用のパネルのある画面が表示されます。

表示されていれば、Node.js本番用ウェブサーバーが正常に設定されています。そうでない場合は、ステップを誤って実行した可能性があり、戻って各ステップを注意深く実行する必要がある場合があります。

Nginxの詳細については、NginxのWebサイトにアクセスしてください

このチュートリアルがお役に立てば幸いです。これがVultr VPSでの運用用に独自のWebサーバーを設定するのに役立つことを願っています。



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

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

別のシステムを使用していますか?Neosは、CMSとアプリケーションフレームワークをコアとするコンテンツアプリケーションプラットフォームです。このガイドでは、インストール方法を説明します

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

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

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

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

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

別のシステムを使用していますか?BlogoText CMSは、シンプルで軽量な無料のオープンソースコンテンツ管理システム(CMS)とシンプルなブログエンジンです。

Fedora 29にWonderCMSをインストールする方法

Fedora 29にWonderCMSをインストールする方法

別のシステムを使用していますか?WonderCMSは、PHPで書かれたオープンソースの高速で小さなフラットファイルCMSです。WonderCMSソースコードはGithubでホストされています。このガイドは

Debian 9にNeos CMSをインストールする方法

Debian 9にNeos CMSをインストールする方法

別のシステムを使用していますか?Neosは、CMSとアプリケーションフレームワークをコアとするコンテンツアプリケーションプラットフォームです。このガイドでは、インストール方法を説明します

CentOS 7 LAMP VPSにTextPattern CMSをインストールする方法

CentOS 7 LAMP VPSにTextPattern CMSをインストールする方法

別のシステムを使用していますか?TextPattern CMS 4.6.2はシンプルで柔軟な無料のオープンソースコンテンツ管理システム(CMS)であり、Webデザイナーが

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

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

別のシステムを使用していますか?10月1.0 CMSは、Laravelフレームワーク上に構築されたシンプルで信頼性の高い無料のオープンソースコンテンツ管理システム(CMS)です。

FreeBSD 11 FAMP VPSにOmeka Classic 2.4 CMSをインストールする方法

FreeBSD 11 FAMP VPSにOmeka Classic 2.4 CMSをインストールする方法

別のシステムを使用していますか?Omeka Classic 2.4 CMSは、デジタルを共有するための無料のオープンソースのデジタル出版プラットフォームおよびコンテンツ管理システム(CMS)です。

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

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

別のシステムを使用していますか?Automadは、オープンソースのファイルベースのコンテンツ管理システム(CMS)であり、PHPで記述されたテンプレートエンジンです。Automadソースコードi

Directus 6.4 CMSをFreeBSD 11 FAMP VPSにインストールする方法

Directus 6.4 CMSをFreeBSD 11 FAMP VPSにインストールする方法

別のシステムを使用していますか?Directus 6.4 CMSは、強力で柔軟な無料のオープンソースヘッドレスコンテンツ管理システム(CMS)であり、開発者に提供します。

FreeBSD 11にPyroCMSをインストールする方法

FreeBSD 11にPyroCMSをインストールする方法

別のシステムを使用していますか?PyroCMSは、PHPで記述されたオープンソースのCMSです。PyroCMSソースコードはGitHubでホストされています。このガイドでは、entirをよく歩いてください

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

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

別のシステムを使用していますか?Microweberは、オープンソースのドラッグアンドドロップCMSとオンラインショップです。MicroweberのソースコードはGitHubでホストされています。このガイドはあなたを示します

Ubuntu 16.04へのMicroweberのインストール

Ubuntu 16.04へのMicroweberのインストール

別のシステムを使用していますか?Microweberは、オープンソースのドラッグアンドドロップCMSとオンラインショップです。MicroweberのソースコードはGitHubでホストされています。このガイドはあなたを示します

CentOS 7 LAMP VPSにImpressPages CMS 5.0をインストールする方法

CentOS 7 LAMP VPSにImpressPages CMS 5.0をインストールする方法

別のシステムを使用していますか?ImpressPages CMS 5.0は、シンプルで効果的な無料のオープンソース、ユーザーフレンドリーなMVCベースのコンテンツ管理システム(CMS)です。

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

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

別のシステムを使用していますか?WonderCMSは、PHPで書かれたオープンソースの高速で小さなフラットファイルCMSです。WonderCMSソースコードはGithubでホストされています。このガイドは

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

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

別のシステムを使用していますか?Directus 6.4 CMSは、強力で柔軟な無料のオープンソースヘッドレスコンテンツ管理システム(CMS)であり、開発者に提供します。

FreeBSD 11 FAMP VPSにRedaxscript 3.2 CMSをインストールする方法

FreeBSD 11 FAMP VPSにRedaxscript 3.2 CMSをインストールする方法

別のシステムを使用していますか?Redaxscript 3.2 CMSは、最新で超軽量の無料のオープンソースのコンテンツ管理システム(CMS)です。

TYPO3 CMSをUbuntu 16.04にインストールする方法

TYPO3 CMSをUbuntu 16.04にインストールする方法

別のシステムを使用していますか?TYPO3は無料でオープンソースのエンタープライズコンテンツ管理システムです。PHPで記述され、MySQLを使用してデータを格納します。打ち間違え

Fedora 26 LAMP VPSにTextPattern CMS 4.6.2をインストールする方法

Fedora 26 LAMP VPSにTextPattern CMS 4.6.2をインストールする方法

別のシステムを使用していますか?TextPattern CMS 4.6.2はシンプルで柔軟な無料のオープンソースコンテンツ管理システム(CMS)であり、Webデザイナーが

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

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

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

macOS Catalina 10.15.4サプリメントの更新により、解決するよりも多くの問題が発生しています

macOS Catalina 10.15.4サプリメントの更新により、解決するよりも多くの問題が発生しています

最近、Appleは問題を修正するための補足アップデートであるmacOS Catalina 10.15.4をリリースしましたが、このアップデートにより、Macマシンのブリックにつながる問題がさらに発生しているようです。詳細については、この記事をお読みください

原子力が必ずしも悪ではないことを証明する5つの例

原子力が必ずしも悪ではないことを証明する5つの例

原子力は、過去の出来事のために私たちが決して尊重しないことを常に軽蔑していますが、それは必ずしも悪ではありません。詳細については、投稿をお読みください。

AIはどのようにしてプロセス自動化を次のレベルに引き上げることができますか?

AIはどのようにしてプロセス自動化を次のレベルに引き上げることができますか?

これを読んで、人工知能が小規模企業の間でどのように人気を博しているか、そして人工知能がどのように成長し、競合他社に優位に立つ可能性を高めているかを理解してください。

ジャーナリングファイルシステムとは何ですか、そしてそれはどのように機能しますか?

ジャーナリングファイルシステムとは何ですか、そしてそれはどのように機能しますか?

私たちのコンピューターは、ジャーナリングファイルシステムと呼ばれる組織化された方法ですべてのデータを保存します。これは、検索を押すとすぐにコンピューターがファイルを検索して表示できるようにする効率的な方法です。https://wethegeek.com/?p = 94116&preview = true

ビッグデータは人工知能をどのように変えていますか?

ビッグデータは人工知能をどのように変えていますか?

ビッグデータと人工知能は流行語ですが、それらがどのように相互に関連しているか知っていますか?さて、この記事を最後まで読んで、同じことを知ってください。

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でNginxをセットアップしてライブHLSビデオをストリーミングする

UbuntuでNginxをセットアップしてライブHLSビデオをストリーミングする

HTTPライブストリーミング(HLS)は、Apple Inc.によって実装された非常に堅牢なストリーミングビデオプロトコルです。HLSは、ファイアウォール、プロキシ、