現在の位置: ホーム> 最新記事一覧> Webサービスの弾力性スケーリング機能を改善するためにDockerコンテナでnginxプロキシを構成する方法

Webサービスの弾力性スケーリング機能を改善するためにDockerコンテナでnginxプロキシを構成する方法

M66 2025-06-19

Webサービスの弾力性スケーリング機能を改善するためにDockerコンテナでnginxプロキシを構成する方法

クラウドコンピューティングの時代では、Webサービスが高可用性と高性能を確保することが非常に重要です。弾性スケーリングは、動的にスケーリングすることにより、トラフィックの変更に適応するための効果的なソリューションです。 DockerとNginxの組み合わせにより、Webサービスの容易な負荷分散と弾力性のあるスケーリング機能のための強力なアーキテクチャソリューションが提供されます。

基本的なWebサービスを構築します

まず、テストするために簡単なWebサービスを構築する必要があります。ここでは、node.jsとexpress.jsフレームワークを使用して、シンプルな「Hello World」アプリケーションを作成します。これがアプリケーションのコードです。

const express = require( 'express');
const app = express();

app.get( '/'、(req、res)=> {
    res.send( 'hello、world!');
});

app.listen(3000、()=> {
    console.log( 'サーバーはポート3000'で実行されています);
});

次に、Dockerを使用してこのアプリケーションをコンテナ化する必要があります。次のコンテンツを使用して、プロジェクトのルートディレクトリにDockerFileを作成します。

#dockerfile
ノードから:アルパイン

workdir /app

パッケージをコピー*.json ./

NPMインストールを実行します

コピー 。 。

3000を公共します

cmd ["node"、 "app.js"]]

このdockerfileは、node.jsイメージのアルパインバージョンを定義し、ワーキングディレクトリを設定し、依存関係をインストールし、コンテナの起動時にnode.jsアプリケーションを実行します。

Dockerコンテナを構築および実行します

次のコマンドでDockerコンテナを構築して実行します。

$ docker build -t myapp。
$ docker run -dp 3000:3000 myapp

実行後、コンテナは3000ポートをマップし、ホストのIPアドレスを介してアプリケーションにアクセスできます。

nginxプロキシサーバーを構成します

Webサービスの負荷分散と弾性スケーリングを実現するには、nginxをリバースプロキシサーバーとして構成する必要があります。まず、nginxをインストールし、その構成ファイルを編集します。

$ sudo apt-getアップデート
$ sudo apt-get install nginx
$ sudo nano/etc/nginx/conf.d/default.conf

nginx構成ファイルに、次のものを追加します。

#/etc/nginx/conf.d/default.conf
上流のapp_servers {
    #ここにDockerコンテナIPとポート情報を入力すると、複数のサーバーがある可能性があります<CONTAINER_IP>:3000;
}

サーバー{
    匂いく80;

    位置 / {
        proxy_pass http:// app_servers;
        proxy_set_headerホスト$ host;
        proxy_set_header x-real-ip $ remote_addr;
    }
}

ここでは、dockerコンテナインスタンスを含む「app_servers」グループを定義します。 Nginxはこれらのコンテナインスタンスにプロキシリクエストを行い、負荷分散を達成します。

nginxサービスを再起動します

構成ファイルを保存および終了した後、NGINXサービスを再起動して新しい構成を適用します。

$ sudo service nginx restart

弾性膨張と収縮を達成します

Nginxの負荷分散を構成することにより、コンテナの拡張は非常に簡単になります。コンテナインスタンスを追加する必要がある場合、新しいDockerコンテナインスタンスを実行するだけで、Nginxは新しいコンテナへのトラフィックを自動的に認識して配布します。

要約します

Webアプリケーションをコンテナ化し、Nginxプロキシサーバーを構成することにより、非常に利用可能で高性能の弾性スケーリングアーキテクチャを実装できます。 DockerとNginxの組み合わせにより、単純なコンテナ化されたソリューションを提供するだけでなく、負荷分散とトラフィック管理がより柔軟で効率的になります。この記事が、Webサービスの弾性スケーリング機能を改善するために、DockerコンテナでNginxプロキシサーバーを構成する方法を理解するのに役立つことを願っています。