ホームページ  >  記事  >  運用・保守  >  NGINX PM2 VPS: 可用性と拡張性の高いアプリケーション サービス アーキテクチャを構築する

NGINX PM2 VPS: 可用性と拡張性の高いアプリケーション サービス アーキテクチャを構築する

WBOY
WBOYオリジナル
2023-09-27 08:09:39986ブラウズ

NGINX PM2 VPS: 构建高可用和可扩展的应用服务架构

NGINX PM2 VPS: 高可用性とスケーラブルなアプリケーション サービス アーキテクチャの構築

インターネット テクノロジの急速な発展に伴い、高可用性でスケーラブルなアプリケーション サービス アーキテクチャの構築はますます重要になっています。そしてさらに重要なこと。 NGINX、PM2、VPS は、この目標の達成に役立つ一般的に使用されるツールです。この記事では、NGINX、PM2、および VPS を使用して、可用性が高くスケーラブルなアプリケーション サービス アーキテクチャを構築する方法を紹介し、具体的なコード例を示します。

1. NGINX: 高性能リバース プロキシ サーバー

NGINX は、負荷分散、静的リソースのキャッシュ、SSL に使用できる高性能リバース プロキシ サーバーです。端末やその他の機能。以下は、すべてのトラフィックをバックエンド アプリケーション サーバーに転送する簡単な NGINX 構成例です。

http {
    upstream backend {
        server backend1.example.com;
        server backend2.example.com;
    }

    server {
        listen 80;
        server_name example.com;

        location / {
            proxy_pass http://backend;
        }
    }
}

上記の構成では、backend という名前のバックエンド サーバーを定義しました。グループには複数のバックエンド アプリケーション サーバーが含まれています。 。 proxy_pass ディレクティブは、トラフィックをバックエンド サーバー グループに転送します。

2. PM2: プロセス管理ツール

PM2 は、Node.js アプリケーションの管理と監視に役立つ強力なプロセス管理ツールです。以下は、簡単な PM2 構成例です。

{
    "apps": [{
        "name": "my-app",
        "script": "app.js",
        "instances": "max",
        "exec_mode": "cluster",
        "error_file": "logs/error.log",
        "out_file": "logs/out.log",
        "log_date_format": "YYYY-MM-DD HH:mm:ss",
        "env": {
            "NODE_ENV": "production"
        }
    }]
}

上記の構成では、my-app という名前のアプリケーションを定義し、アプリケーションのメイン ファイル app .js を指定しました。 。 instances はアプリケーションのインスタンスの数を指定し、exec_mode はアプリケーションの実行モードを指定します。さらに、アプリケーションのログ ファイル、環境変数などを構成することもできます。

3. VPS: 仮想専用サーバー

VPS は、物理サーバーを複数の仮想専用サーバーに分割できる仮想化技術です。 VPS は、アプリケーションのニーズを満たす独立したリソースを提供します。以下は簡単な VPS 構成例です:

{
    "name": "my-vps",
    "provider": "digitalocean",
    "region": "nyc3",
    "size": "s-1vcpu-1gb",
    "ssh_keys": ["my-public-key"],
    "backups": false
}

上記の構成では、my-vps という名前の VPS を定義し、VPS プロバイダー、リージョン、サイズ、SSH キー、バックアップを指定しました。およびその他の構成。

4. 高可用性でスケーラブルなアプリケーション サービス アーキテクチャを構築する

高可用性でスケーラブルなアプリケーション サービス アーキテクチャを構築するには、NGINX、PM2、および VPS を組み合わせます。以下は、単純なアプリケーション サービス アーキテクチャ図です。

          +---------+
          |   NGINX |
          +---------+
               |
          +---------+
          |   PM2   |
          +---------+
               |
          +---------+
          |   VPS   |
          +---------+
               |
          +---------+
          |   APP   |
          +---------+

上記のアーキテクチャでは、NGINX は外部リクエストを受信し、トラフィックをバックエンド PM2 クラスタに転送する役割を果たします。 PM2 は、Node.js アプリケーションのプロセスの管理と監視を担当します。 VPS は、アプリケーションの可用性と拡張性を確保するために独立したリソースを提供します。

5. 具体的なコード例

次は、NGINX、PM2、および VPS を使用して、可用性が高くスケーラブルなアプリケーション サービス アーキテクチャを構築する方法を示す具体的なコード例です。 。

まず、NGINX と PM2 を VPS にインストールし、NGINX のリバース プロキシを構成します。

# 安装 NGINX
sudo apt-get install nginx

# 安装 PM2
sudo npm install -g pm2

# 创建 NGINX 配置文件
sudo nano /etc/nginx/conf.d/my-app.conf

NGINX 構成ファイルに、次の内容を追加します。

upstream backend {
    server 127.0.0.1:3000;
    server 127.0.0.1:3001;
}

server {
    listen 80;
    server_name my-app.com;

    location / {
        proxy_pass http://backend;
    }
}

保存して終了します。ファイル。次に、Node.js アプリケーションを VPS にデプロイし、PM2 を使用してアプリケーションのプロセスを管理します。

# 在 VPS 上克隆应用代码
git clone https://github.com/my-app.git

# 进入应用目录
cd my-app

# 安装应用依赖
npm install

# 启动应用
pm2 start app.js -i max

ファイルを保存して終了します。最後に、NGINX サーバーを再起動します。

sudo systemctl restart nginx

これで、NGINX ドメイン名を介してアプリケーションにアクセスできる、可用性とスケーラブルなアプリケーション サービス アーキテクチャの構築に成功しました。

結論

この記事では、NGINX、PM2、および VPS を使用して、可用性とスケーラブルなアプリケーション サービス アーキテクチャを構築する方法を紹介します。これらのツールを適切に構成および管理することで、アプリケーションの可用性とパフォーマンスを向上させ、迅速な拡張を実現できます。これらのコード例が、読者が独自のアプリケーション サービス アーキテクチャを構築する際に役立つことを願っています。

以上がNGINX PM2 VPS: 可用性と拡張性の高いアプリケーション サービス アーキテクチャを構築するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。