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サーバーを設定するのに役立つことを願っています。



Leave a Comment

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の未来は、日々成長を続けています。