ホームページ >運用・保守 >Nginx >Nginx サーバーのコンテナ化された展開とクラスター管理の詳細なガイド

Nginx サーバーのコンテナ化された展開とクラスター管理の詳細なガイド

PHPz
PHPzオリジナル
2023-08-06 11:03:151880ブラウズ

Nginx サーバーのコンテナ化デプロイメントとクラスター管理の詳細ガイド

はじめに:
クラウド コンピューティングとコンテナ テクノロジの発展により、コンテナ化デプロイメントはエンタープライズ アプリケーションの開発とデプロイメントの一般的な方法になりました。高性能 Web サーバーおよびリバース プロキシ サーバーとして、Nginx はコンテナ化を通じて展開および管理することもできます。この記事では、Nginx サーバーをコンテナ化し、クラスター管理によって高可用性を向上させる方法を詳しく紹介します。

1. 準備
まず、Docker 環境をインストールし、Docker サービスが開始されていることを確認する必要があります。次に、Nginx Docker イメージを構築するための Dockerfile ファイルを作成する必要があります。以下は簡単な Dockerfile の例です。

FROM nginx:latest
COPY nginx.conf /etc/nginx/nginx.conf
COPY default.conf /etc/nginx/conf.d/default.conf
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

この Dockerfile は、まず最新の Nginx イメージをベース イメージとして選択し、次に事前に準備した Nginx 構成ファイルとデフォルトの仮想ホスト構成ファイルをコピーします。最後に、コンテナのポート 80 が公開され、Nginx サーバーがフォアグラウンド モードで実行されます。

2. Docker イメージをビルドする
Dockerfile を準備したら、docker build コマンドを使用して Docker イメージをビルドできます。 Dockerfile を現在のディレクトリに保存すると仮定すると、次のコマンドを使用して Dockerfile をビルドできます。

docker build -t my_nginx .

このコマンドは、Dockerfile に基づいて my_nginx という名前の Docker イメージをビルドします。ビルドが完了したら、docker image コマンドを使用して既存のイメージ リストを表示し、my_nginx イメージが正常にビルドされたことを確認できます。

3. 単一の Nginx コンテナーを実行する
これで、my_nginx イメージに基づいて Nginx コンテナーを作成し、実行できます。 docker run コマンドを使用して、この操作を実行できます。

docker run -d -p 80:80 my_nginx

このコマンドは、新しい Nginx コンテナーをバックグラウンドで実行し、コンテナーのポート 80 をホストのポート 80 にマップします。ブラウザから http://localhost にアクセスすると、Nginx サーバーが正しく動作しているかどうかを確認できます。

4. Nginx クラスターの構築
Nginx サーバーの高可用性を向上させるために、Docker のクラスター管理ツールを使用して Nginx クラスターを構築できます。この記事では、Docker Swarm を使用してクラスター管理を実装します。

まず、Swarm 管理ノードを初期化する必要があります。次のコマンドを実行して、現在のノードを Swarm 管理ノードとして設定できます:

docker swarm init

次に、次のコマンドを実行して 2 つのワーカー ノード (ホスト) を作成できます:

docker swarm join-token worker

実行後上記のコマンドを実行すると、次のような出力が生成されます:

docker swarm join --token xxxxxxxxxxxxxxxx

この出力を使用して、2 つのワーカー ノードを Swarm クラスターに追加する必要があります:

docker swarm join --token xxxxxxxxxxxxxxxx

このようにして、 2 つのワーカー ノードが正常に追加されました。Swarm クラスターに参加します。次に、Nginx サービスを作成する必要があります。次のコマンドを使用して、Nginx サービスを作成できます。

docker service create --name nginx --replicas 3 -p 80:80 my_nginx

このコマンドは、クラスター内に nginx という名前のサービスを作成し、3 つのレプリカを指定します。このサービスは、これらのレプリカを自動的に作成してクラスター内のさまざまなノードに配布し、Nginx クラスターを構築します。 docker service ls コマンドを使用すると、クラスター内のすべてのサービスとそのステータスを表示できます。

5. クラスター管理操作
Nginx クラスターを確立したら、いくつかの基本的なクラスター管理操作を実行できます。

  1. 拡張と縮小
    次のコマンドを使用して、Nginx サービスの拡張と縮小を実現できます:
docker service scale nginx=5
docker service scale nginx=2

最初のコマンドは nginx サービスです。レプリカの数は 5 に拡張され、2 番目のコマンドはレプリカの数を 2 に減らします。

  1. サービスの更新
    Nginx イメージまたは構成ファイルを更新する必要がある場合、次のコマンドを使用してサービスを更新できます:
docker service update --image my_nginx:latest nginx

このコマンドは、 update nginx サービスのイメージは最新バージョンです。同様に、 docker service update コマンドを使用して、サービスの他の構成パラメーターを更新することもできます。

  1. サービスのスケーラビリティ管理
    次のコマンドを使用して、サービスのスケーラビリティを表示および管理できます:
docker service ps nginx
docker service inspect --pretty nginx

最初のコマンドは、すべての nginx サービスのステータスを表示します。 2 番目のコマンドは、ノードの割り当てやレプリカの実行ステータスなど、nginx サービスの詳細情報を表示します。

結論:
展開とクラスター管理のために Nginx サーバーをコンテナ化することで、より高い可用性と柔軟性を実現できます。この記事では、Docker を使用して Nginx イメージを構築し、単一のコンテナーを実行し、Docker Swarm を使用して Nginx クラスターを構築および管理する方法を詳しく紹介します。読者がこの記事を通じて Nginx コンテナーのデプロイメントとクラスター管理について学び、それを実際のシナリオに適用して拡張できるようになることを願っています。

以上がNginx サーバーのコンテナ化された展開とクラスター管理の詳細なガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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