DevOpsでNginxを使用してWebアプリを自動デプロイする

Webサーバーは、Webアプリケーションの機能において重要な役割を果たし、ユーザーの要求に応答する速度を制御します。

Nginxは、主に負荷分散リバースプロキシ、およびキャッシングを目的とした、安定した高性能のWebサーバーです。メールプロキシサーバーおよびHTTPサーバーとして構成できます。非スレッドでイベント駆動型のアーキテクチャを備えているため、非同期で非ブロッキングのモデルを使用します。簡単に言うと、Nginxウェブサーバーはウェブアプリのページ読み込み時間を大幅に短縮します。

この記事では、2つの人気のあるWebサーバーであるNginxとApacheの機能、利点、および効率を比較します。また、Nginxの構造と、それを使用してNode.jsアプリケーションを自動デプロイする方法についても説明します。

Webアプリのインスタンスをサーバーに手動でデプロイすることは、開発者にとって単調で時間がかかる可能性があります。プロセスを自動化すると、この問題は解決します。

それ以上の苦労なしに、始めましょう。

前提条件

このチュートリアルに従うには、次のものがあることを確認してください。

NB、 Ubuntu 20.04オペレーティングシステム、およびNode.jsv10.19.0がこのチュートリアルで使用されました

Nginxアーキテクチャの概要

多くのWebサーバーは、シングルスレッドメカニズムに依存しています。これにはいくつかの欠点があり、その1つは、CPUを集中的に使用するアプリケーションの処理が不十分であることです。シングルスレッドメカニズムのプロセスで複数のスレッドが実行されている場合、各コードまたは命令は個別に順番に処理されます。スレッドは大量のメモリを消費するため、この方法でスレッドを処理すると、必ずアプリケーションのパフォーマンスが低下し、ページの読み込み時間が長くなります。

ただし、Nginxは、スレッド化されていないイベント駆動型アーキテクチャを使用しているため、複数のリクエストを同時に非同期に処理できます。Nginxは、構成の読み取りと検証、およびポートのバインドにマスタープロセスを使用します。マスタープロセスは、キャッシュローダープロセス、キャッシュマネージャープロセス、ワーカープロセスなどの子プロセスを生成します。

一方、ワーカープロセスは着信要求を非ブロッキング方式で処理し、ディレクティブに次のように自動パラメーターを設定することで簡単に構成できます。

worker_processes auto;

次の図は、いくつかのワーカープロセスとユーザーの要求と応答を含むNginxマスタープロセスを示しています。

 

マスタープロセスは、ワーカープロセスの数を開始および維持する責任があります。ワーカープロセスを使用すると、Nginxは何千ものネットワーク接続またはリクエストを処理できます。

NginxはApacheよりも優れていますか?

W3 Techsによる最近の世界的な調査によると、NginxはWebサイトの33.0%で使用されており、Apacheは31.1%で使用されています。どちらのWebサーバーも非常に人気がありますが、機能とパフォーマンスに影響を与える重要な違いがあります。

NginxとApacheのどちらがWebサイトに適しているかを判断する際に留意すべき、クライアント要求と静的コンテンツ配信の2つの考慮事項があります。

クライアントの要求

Apacheは、構成ファイルにある組み込みのマルチプロセッシングモジュール(プリフォークおよびワーカーMPM)を使用してクライアント要求を処理します。これらのモジュールを使用すると、各スレッドとプロセスが一度に1つの接続または要求を処理します。多くの場合、Apacheは、トラフィックが少ないアプリケーションや同時リクエストの数が少ないアプリケーションに適しています。

Nginxは、イベント駆動型の非同期のノンブロッキングワーカープロセスを使用してクライアントリクエストを処理します。このプロセスは、数千の接続またはリクエストを同時に処理できます。Nginxは、トラフィックの多いアプリケーションや、一度に多数のリクエストを受け取るアプリケーションに適しています。

静的コンテンツ配信

Nginxは、リバースプロキシの性質があるため、Apacheよりも高速に静的コンテンツを提供できます。Apacheで静的コンテンツを提供するには、そのファイルとプロジェクトのディレクトリに簡単な構成を追加する必要があります。http.conf

NginxとApacheの主な違いを確認したので、実践的なデモンストレーションに進み、Nginxを使用してWebアプリケーションを自動デプロイする方法を学びましょう。

ハンズオンデモ:Nginxを使用したアプリの自動デプロイ

Nginx Webサーバーを使用してアプリケーションをデプロイするために、最初にファイルにいくつかの構成を行い/etc/Nginx/Nginx.conf ます。

構成ファイルは、クライアント要求を処理するためのディレクティブを定義するために使用されるいくつかのコンテキストで構成されています。

  • 主なコンテキスト
  • イベントコンテキスト
  • HTTPコンテキスト
  • サーバーコンテキスト
  • ロケーションコンテキスト
  • アップストリームコンテキスト
  • メールコンテキスト

入門

Nginxをインストールすることから始めましょう:

まず、ターミナルで、パッケージリポジトリを更新します。

sudo apt-get update

次に、次のコマンドを実行してNginxをインストールします。

sudo apt-get install Nginx

このコードを実行すると、続行するかどうかを尋ねる質問が表示されます。Yと入力し、 Enterキーを押して確認します。

これで、画面に次のように表示されます。

インストール後、次のステップはファイアウォールを有効にすることです。

sudo ufw enable

上記のコマンドを実行すると、次のアクティベーションメッセージが表示されます。

インストールが成功したことを確認するには、次のコマンドを実行します。

Nginx -v

これにより、インストールしたばかりのバージョンのNginxにログインします。

ファイアウォールで使用可能なアプリケーションのリストを表示するには、次のコマンドを実行します。

sudo ufw app list

画面に記録されたNginx Full、、に注意してください。これは、ポート80とポート443の両方が追加されたことを意味します。Nginx HTTPNginx HTTPS

Nginx HTTPNginxがリッスンするデフォルトのポートであるポート80を開きます。Nginx HTTPSポート443を開きます。これは、ネットワークトラフィックを迂回させ、接続を保護するために使用されます。Nginx Full両方のポートを許可します。

次に、次のコマンドを使用して両方のポートを有効にします。

sudo ufw allow 'Nginx Full'

次に、同様のコマンドを実行して、HTTPとHTTPSの両方を許可します。

sudo ufw allow 'Nginx HTTP'sudo ufw allow 'Nginx HTTPS'

allowとのルールが追加されているNginx Fullことに気付くでしょうNginx HTTP

次のコマンドを使用してステータスを確認し、、、Nginx FullおよびNginx HTTPNginx HTTPSすべて許可されていることを確認します。

sudo ufw status

次のコマンドを使用して、Nginxサーバーのステータスを確認することもできます。

sudo systemctl status Nginx

このコードをNginx.service実行すると、active状態で実行されていることがわかります。master process実行中、、、process IDおよびmain PID:も表示されます。

これにより、Nginxサーバーが正常に実行されていることが確認されます。

このチュートリアルでは、単純なNode.jsアプリケーションを使用します。

まず、GitHubからアプリケーションのクローンを作成します。

git clone https://github.com/debemenitammy/Log_Node_App.git

次に、依存関係をインストールします。

npm install

次に、選択したコードエディタでアプリケーションを開きます。アプリケーションのディレクトリで次のコマンドを実行します。

nodemon app.js

port 3000ターミナルウィンドウに表示されているように、アプリケーションはで実行されます。

これで、アプリケーションがローカルで実行されます。先に進む前に、OSにOpenSSHサーバーとsshキーが設定されていることを確認してください。また、チュートリアルで使用するように、ドメイン名とホスティングを利用できるようにします。

ドメイン名がサーバーを指すようにNginxを構成する

このステップでは、ドメイン名がサーバーを指すように構成を追加します。まず、ホスティングプロバイダーのDNSにレコードを作成する必要があります。次に、次のコマンドを使用して、セキュアシェルプロトコルとサーバーのIPアドレスを使用してサーバーにログインする必要があります。

ssh root@<your_ip_address>

このコードを実行すると、ログインします。

パッケージリポジトリを更新し、サーバーにNodeとnpmをインストールします。

sudo apt update
curl -sL https://deb.nodesource.com/setup_16.x -o nodesource_setup.sh
sudo apt install nodejs
sudo apt install npm

次に、インストールが成功したことを確認します。

node -version
npm -version

次に、アプリケーションを保持するディレクトリを作成して、アプリケーションをサーバーに追加します。プロンプトで、次のようにディレクトリtestとそのディレクトリを作成cdします。

次に、次のコマンドを使用してGitHubからアプリケーションのクローンを作成します。

git clone https://github.com/debemenitammy/Log_Node_App.git

この時点で、アプリケーションはサーバーに正常に複製されていますが、依存関係とノードモジュールを追加する必要があります。依存関係をcdアプリケーションLog_Node_Appにインストールするには、次のようにします。

cd Log_Node_App
npm install

次に、アプリケーションを実行します。

node app.js

アプリケーションが次の場所で実行されていることに気付くでしょうport 3000

ブラウザで、次のURLに移動します<your_ip_address>:3000。プレースホルダーをサーバーのIPアドレスに置き換えます。

ブラウザにアプリケーションが表示されます。

CTRL + Cを使用してアプリケーションを終了します。

アプリケーションをバックグラウンドで実行する場合は、本番プロセスマネージャー(PM2)をインストールできます。

npm install -g pm2

PM2をインストールした後、次のコマンドを使用して、アプリケーションのバックグラウンドでの実行を開始します。

pm2 start app.js

onlineアプリケーションがバックグラウンドで実行を開始したことを示すステータスの次の画面が表示されます。

アプリケーションが実行されていることを確認するには、次のURLでブラウザを更新します<your_ip_address>:3000

PM2で実行されているアプリケーションのステータスを確認する場合は、次のコマンドを使用してください。

pm2 status

そのコマンドの出力は、前に使用したコマンドの出力と同じpm2 start app.jsです。緑のonlineステータスに注意してください。

再起動が発生したときにアプリケーションが確実に実行されるようにするには、次のコマンドを使用します。

pm2 startup ubuntu

このコマンドは、以下を端末に記録します。

次のコードを使用してファイアウォールを有効にし、許可しますssh

ufw enable
ufw allows ssh

次に、ファイアウォールが有効になっていることを確認します。

ufw status

次に、アプリケーションをで実行するように設定する必要がありますport 80。これは、HTTPポートであり、Nginxのデフォルトポートでもあります。次のコマンドを実行します。

ufw allow http

アプリケーションをHTTPSでも実行できるようにするには、次のコマンドを実行します。

ufw allow https

次に、許可されているポートを表示します。

ufw status

ポート443とポート80は正常に許可されています。今後は、ポート3000で実行されているアプリケーションをポート80で実行するようにレンダリングするために、Nginxをリバースプロキシサーバーとして設定します。

Nginxをアプリケーションのリバースプロキシとして構成する

Nginxを使用すると、サーバーのIPアドレスを実行してアプリケーションにアクセスできます。

この時点で、Nginxがインストールされており、にあるデフォルトの構成ファイルにアクセスできます/etc/Nginx/sites-available/default

この構成ファイルを編集するには、次のコマンドを実行します。

sudo nano /etc/Nginx/sites-available/default

このコードを実行すると、ファイルはデフォルト構成で開かれます。

server次に、ブロックに到達するまで、ブロックを超えて構成ファイルをスクロールしますlocation

ブロックに、location次の構成を追加します。

proxy_pass http://localhost:3000; 
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;

これらの構成は、ポート80にアクセスしたときに、ポート3000で実行されるアプリケーションがロードされるようにNginxをリバースプロキシとして設定していることを示しています。

次に、ドメイン名をに追加し、server_nameポート設定と一緒にNginxが検索する対象を設定します。Nginxがサーバー名として空の名前を使用することを希望する場合は、をserver_nameデフォルトのままにしておくことができます。

ブロックに、server次のようにドメイン名を追加します。

Nginx構成ファイルに加えた変更を保存するには、CTR + Xコマンドを使用して、プロンプトでyesと入力します。次に、プロンプトが表示されたら、Enterキーを押して構成ファイルを保存します。

Nginxに構成を追加するときはいつでも、次のコマンドを実行して、構成が成功したかどうかを確認することをお勧めします。

sudo Nginx -t

コマンドの出力は、構成ファイルのテストが成功したことを示しています。

これで、サービスを再起動して、構成に加えた変更を適用できます。次に、以前のワーカープロセスがNginxによってシャットダウンされ、新しいワーカープロセスが開始されます。

次のコマンドを使用してサービスを再起動します。

sudo service Nginx restart

このコマンドは、端末への出力をログに記録しません。

Nginxサービスが再起動されたので、Nginxに追加されたすべての構成が正常に機能するかどうかを確認できます。次のように、ブラウザにサーバーのIPアドレスを追加します。

上のブラウザウィンドウのスクリーンショットから、アプリケーションがサーバーのIPアドレスで実行されていることがわかります。

これで、アプリケーションを自動デプロイするようにNginxが正常に設定されました。

結論

このチュートリアルでは、Nginxを使用してDevOpsにNode.jsアプリケーションを自動デプロイする方法を示しました。また、NginxとApacheの主な違いのいくつかを確認し、特定のアプリケーションに最適なWeb​​サーバーを決定する方法についても説明しました。ドメイン名がサーバーのIPアドレスを指す方法と、Nginxをリバースプロキシサーバーとして設定し、サーバーのIPアドレスでアプリケーションをレンダリングする方法について説明しました。

これらのNginx自動デプロイプロセスがどのように機能するかを確認したので、Nginxを使用して独自のアプリケーションを構成してみてください。ハッピーコーディング!

ソース:https ://blog.logrocket.com/how-to-auto-deploy-web-app-nginx-devops/

#nginx  #apache  #devops  #nodejs 

What is GEEK

Buddha Community

DevOpsでNginxを使用してWebアプリを自動デプロイする

DevOpsでNginxを使用してWebアプリを自動デプロイする

Webサーバーは、Webアプリケーションの機能において重要な役割を果たし、ユーザーの要求に応答する速度を制御します。

Nginxは、主に負荷分散リバースプロキシ、およびキャッシングを目的とした、安定した高性能のWebサーバーです。メールプロキシサーバーおよびHTTPサーバーとして構成できます。非スレッドでイベント駆動型のアーキテクチャを備えているため、非同期で非ブロッキングのモデルを使用します。簡単に言うと、Nginxウェブサーバーはウェブアプリのページ読み込み時間を大幅に短縮します。

この記事では、2つの人気のあるWebサーバーであるNginxとApacheの機能、利点、および効率を比較します。また、Nginxの構造と、それを使用してNode.jsアプリケーションを自動デプロイする方法についても説明します。

Webアプリのインスタンスをサーバーに手動でデプロイすることは、開発者にとって単調で時間がかかる可能性があります。プロセスを自動化すると、この問題は解決します。

それ以上の苦労なしに、始めましょう。

前提条件

このチュートリアルに従うには、次のものがあることを確認してください。

NB、 Ubuntu 20.04オペレーティングシステム、およびNode.jsv10.19.0がこのチュートリアルで使用されました

Nginxアーキテクチャの概要

多くのWebサーバーは、シングルスレッドメカニズムに依存しています。これにはいくつかの欠点があり、その1つは、CPUを集中的に使用するアプリケーションの処理が不十分であることです。シングルスレッドメカニズムのプロセスで複数のスレッドが実行されている場合、各コードまたは命令は個別に順番に処理されます。スレッドは大量のメモリを消費するため、この方法でスレッドを処理すると、必ずアプリケーションのパフォーマンスが低下し、ページの読み込み時間が長くなります。

ただし、Nginxは、スレッド化されていないイベント駆動型アーキテクチャを使用しているため、複数のリクエストを同時に非同期に処理できます。Nginxは、構成の読み取りと検証、およびポートのバインドにマスタープロセスを使用します。マスタープロセスは、キャッシュローダープロセス、キャッシュマネージャープロセス、ワーカープロセスなどの子プロセスを生成します。

一方、ワーカープロセスは着信要求を非ブロッキング方式で処理し、ディレクティブに次のように自動パラメーターを設定することで簡単に構成できます。

worker_processes auto;

次の図は、いくつかのワーカープロセスとユーザーの要求と応答を含むNginxマスタープロセスを示しています。

 

マスタープロセスは、ワーカープロセスの数を開始および維持する責任があります。ワーカープロセスを使用すると、Nginxは何千ものネットワーク接続またはリクエストを処理できます。

NginxはApacheよりも優れていますか?

W3 Techsによる最近の世界的な調査によると、NginxはWebサイトの33.0%で使用されており、Apacheは31.1%で使用されています。どちらのWebサーバーも非常に人気がありますが、機能とパフォーマンスに影響を与える重要な違いがあります。

NginxとApacheのどちらがWebサイトに適しているかを判断する際に留意すべき、クライアント要求と静的コンテンツ配信の2つの考慮事項があります。

クライアントの要求

Apacheは、構成ファイルにある組み込みのマルチプロセッシングモジュール(プリフォークおよびワーカーMPM)を使用してクライアント要求を処理します。これらのモジュールを使用すると、各スレッドとプロセスが一度に1つの接続または要求を処理します。多くの場合、Apacheは、トラフィックが少ないアプリケーションや同時リクエストの数が少ないアプリケーションに適しています。

Nginxは、イベント駆動型の非同期のノンブロッキングワーカープロセスを使用してクライアントリクエストを処理します。このプロセスは、数千の接続またはリクエストを同時に処理できます。Nginxは、トラフィックの多いアプリケーションや、一度に多数のリクエストを受け取るアプリケーションに適しています。

静的コンテンツ配信

Nginxは、リバースプロキシの性質があるため、Apacheよりも高速に静的コンテンツを提供できます。Apacheで静的コンテンツを提供するには、そのファイルとプロジェクトのディレクトリに簡単な構成を追加する必要があります。http.conf

NginxとApacheの主な違いを確認したので、実践的なデモンストレーションに進み、Nginxを使用してWebアプリケーションを自動デプロイする方法を学びましょう。

ハンズオンデモ:Nginxを使用したアプリの自動デプロイ

Nginx Webサーバーを使用してアプリケーションをデプロイするために、最初にファイルにいくつかの構成を行い/etc/Nginx/Nginx.conf ます。

構成ファイルは、クライアント要求を処理するためのディレクティブを定義するために使用されるいくつかのコンテキストで構成されています。

  • 主なコンテキスト
  • イベントコンテキスト
  • HTTPコンテキスト
  • サーバーコンテキスト
  • ロケーションコンテキスト
  • アップストリームコンテキスト
  • メールコンテキスト

入門

Nginxをインストールすることから始めましょう:

まず、ターミナルで、パッケージリポジトリを更新します。

sudo apt-get update

次に、次のコマンドを実行してNginxをインストールします。

sudo apt-get install Nginx

このコードを実行すると、続行するかどうかを尋ねる質問が表示されます。Yと入力し、 Enterキーを押して確認します。

これで、画面に次のように表示されます。

インストール後、次のステップはファイアウォールを有効にすることです。

sudo ufw enable

上記のコマンドを実行すると、次のアクティベーションメッセージが表示されます。

インストールが成功したことを確認するには、次のコマンドを実行します。

Nginx -v

これにより、インストールしたばかりのバージョンのNginxにログインします。

ファイアウォールで使用可能なアプリケーションのリストを表示するには、次のコマンドを実行します。

sudo ufw app list

画面に記録されたNginx Full、、に注意してください。これは、ポート80とポート443の両方が追加されたことを意味します。Nginx HTTPNginx HTTPS

Nginx HTTPNginxがリッスンするデフォルトのポートであるポート80を開きます。Nginx HTTPSポート443を開きます。これは、ネットワークトラフィックを迂回させ、接続を保護するために使用されます。Nginx Full両方のポートを許可します。

次に、次のコマンドを使用して両方のポートを有効にします。

sudo ufw allow 'Nginx Full'

次に、同様のコマンドを実行して、HTTPとHTTPSの両方を許可します。

sudo ufw allow 'Nginx HTTP'sudo ufw allow 'Nginx HTTPS'

allowとのルールが追加されているNginx Fullことに気付くでしょうNginx HTTP

次のコマンドを使用してステータスを確認し、、、Nginx FullおよびNginx HTTPNginx HTTPSすべて許可されていることを確認します。

sudo ufw status

次のコマンドを使用して、Nginxサーバーのステータスを確認することもできます。

sudo systemctl status Nginx

このコードをNginx.service実行すると、active状態で実行されていることがわかります。master process実行中、、、process IDおよびmain PID:も表示されます。

これにより、Nginxサーバーが正常に実行されていることが確認されます。

このチュートリアルでは、単純なNode.jsアプリケーションを使用します。

まず、GitHubからアプリケーションのクローンを作成します。

git clone https://github.com/debemenitammy/Log_Node_App.git

次に、依存関係をインストールします。

npm install

次に、選択したコードエディタでアプリケーションを開きます。アプリケーションのディレクトリで次のコマンドを実行します。

nodemon app.js

port 3000ターミナルウィンドウに表示されているように、アプリケーションはで実行されます。

これで、アプリケーションがローカルで実行されます。先に進む前に、OSにOpenSSHサーバーとsshキーが設定されていることを確認してください。また、チュートリアルで使用するように、ドメイン名とホスティングを利用できるようにします。

ドメイン名がサーバーを指すようにNginxを構成する

このステップでは、ドメイン名がサーバーを指すように構成を追加します。まず、ホスティングプロバイダーのDNSにレコードを作成する必要があります。次に、次のコマンドを使用して、セキュアシェルプロトコルとサーバーのIPアドレスを使用してサーバーにログインする必要があります。

ssh root@<your_ip_address>

このコードを実行すると、ログインします。

パッケージリポジトリを更新し、サーバーにNodeとnpmをインストールします。

sudo apt update
curl -sL https://deb.nodesource.com/setup_16.x -o nodesource_setup.sh
sudo apt install nodejs
sudo apt install npm

次に、インストールが成功したことを確認します。

node -version
npm -version

次に、アプリケーションを保持するディレクトリを作成して、アプリケーションをサーバーに追加します。プロンプトで、次のようにディレクトリtestとそのディレクトリを作成cdします。

次に、次のコマンドを使用してGitHubからアプリケーションのクローンを作成します。

git clone https://github.com/debemenitammy/Log_Node_App.git

この時点で、アプリケーションはサーバーに正常に複製されていますが、依存関係とノードモジュールを追加する必要があります。依存関係をcdアプリケーションLog_Node_Appにインストールするには、次のようにします。

cd Log_Node_App
npm install

次に、アプリケーションを実行します。

node app.js

アプリケーションが次の場所で実行されていることに気付くでしょうport 3000

ブラウザで、次のURLに移動します<your_ip_address>:3000。プレースホルダーをサーバーのIPアドレスに置き換えます。

ブラウザにアプリケーションが表示されます。

CTRL + Cを使用してアプリケーションを終了します。

アプリケーションをバックグラウンドで実行する場合は、本番プロセスマネージャー(PM2)をインストールできます。

npm install -g pm2

PM2をインストールした後、次のコマンドを使用して、アプリケーションのバックグラウンドでの実行を開始します。

pm2 start app.js

onlineアプリケーションがバックグラウンドで実行を開始したことを示すステータスの次の画面が表示されます。

アプリケーションが実行されていることを確認するには、次のURLでブラウザを更新します<your_ip_address>:3000

PM2で実行されているアプリケーションのステータスを確認する場合は、次のコマンドを使用してください。

pm2 status

そのコマンドの出力は、前に使用したコマンドの出力と同じpm2 start app.jsです。緑のonlineステータスに注意してください。

再起動が発生したときにアプリケーションが確実に実行されるようにするには、次のコマンドを使用します。

pm2 startup ubuntu

このコマンドは、以下を端末に記録します。

次のコードを使用してファイアウォールを有効にし、許可しますssh

ufw enable
ufw allows ssh

次に、ファイアウォールが有効になっていることを確認します。

ufw status

次に、アプリケーションをで実行するように設定する必要がありますport 80。これは、HTTPポートであり、Nginxのデフォルトポートでもあります。次のコマンドを実行します。

ufw allow http

アプリケーションをHTTPSでも実行できるようにするには、次のコマンドを実行します。

ufw allow https

次に、許可されているポートを表示します。

ufw status

ポート443とポート80は正常に許可されています。今後は、ポート3000で実行されているアプリケーションをポート80で実行するようにレンダリングするために、Nginxをリバースプロキシサーバーとして設定します。

Nginxをアプリケーションのリバースプロキシとして構成する

Nginxを使用すると、サーバーのIPアドレスを実行してアプリケーションにアクセスできます。

この時点で、Nginxがインストールされており、にあるデフォルトの構成ファイルにアクセスできます/etc/Nginx/sites-available/default

この構成ファイルを編集するには、次のコマンドを実行します。

sudo nano /etc/Nginx/sites-available/default

このコードを実行すると、ファイルはデフォルト構成で開かれます。

server次に、ブロックに到達するまで、ブロックを超えて構成ファイルをスクロールしますlocation

ブロックに、location次の構成を追加します。

proxy_pass http://localhost:3000; 
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;

これらの構成は、ポート80にアクセスしたときに、ポート3000で実行されるアプリケーションがロードされるようにNginxをリバースプロキシとして設定していることを示しています。

次に、ドメイン名をに追加し、server_nameポート設定と一緒にNginxが検索する対象を設定します。Nginxがサーバー名として空の名前を使用することを希望する場合は、をserver_nameデフォルトのままにしておくことができます。

ブロックに、server次のようにドメイン名を追加します。

Nginx構成ファイルに加えた変更を保存するには、CTR + Xコマンドを使用して、プロンプトでyesと入力します。次に、プロンプトが表示されたら、Enterキーを押して構成ファイルを保存します。

Nginxに構成を追加するときはいつでも、次のコマンドを実行して、構成が成功したかどうかを確認することをお勧めします。

sudo Nginx -t

コマンドの出力は、構成ファイルのテストが成功したことを示しています。

これで、サービスを再起動して、構成に加えた変更を適用できます。次に、以前のワーカープロセスがNginxによってシャットダウンされ、新しいワーカープロセスが開始されます。

次のコマンドを使用してサービスを再起動します。

sudo service Nginx restart

このコマンドは、端末への出力をログに記録しません。

Nginxサービスが再起動されたので、Nginxに追加されたすべての構成が正常に機能するかどうかを確認できます。次のように、ブラウザにサーバーのIPアドレスを追加します。

上のブラウザウィンドウのスクリーンショットから、アプリケーションがサーバーのIPアドレスで実行されていることがわかります。

これで、アプリケーションを自動デプロイするようにNginxが正常に設定されました。

結論

このチュートリアルでは、Nginxを使用してDevOpsにNode.jsアプリケーションを自動デプロイする方法を示しました。また、NginxとApacheの主な違いのいくつかを確認し、特定のアプリケーションに最適なWeb​​サーバーを決定する方法についても説明しました。ドメイン名がサーバーのIPアドレスを指す方法と、Nginxをリバースプロキシサーバーとして設定し、サーバーのIPアドレスでアプリケーションをレンダリングする方法について説明しました。

これらのNginx自動デプロイプロセスがどのように機能するかを確認したので、Nginxを使用して独自のアプリケーションを構成してみてください。ハッピーコーディング!

ソース:https ://blog.logrocket.com/how-to-auto-deploy-web-app-nginx-devops/

#nginx  #apache  #devops  #nodejs