ホームページ  >  記事  >  PHPフレームワーク  >  ThinkPHP6 での Nginx 負荷分散の使用

ThinkPHP6 での Nginx 負荷分散の使用

WBOY
WBOYオリジナル
2023-06-20 09:04:191719ブラウズ

Web サイトへのアクセスが増加するにつれ、単一サーバーでは大量の同時トラフィックに耐えられなくなることが多くなり、この問題を解決するために負荷分散が登場しました。負荷分散は、Web サイトの可用性と安定性を向上させるために、トラフィックを複数のサーバーに分散する技術です。ここでは、ThinkPHP6 で Nginx を使用して負荷分散を実現する方法を紹介します。

  1. Nginx のインストール

まず、Nginx をインストールする必要があります。 Linux システムを例に挙げると、次のコマンドを使用してインストールできます。

sudo apt update
sudo apt install nginx

インストールが完了したら、次のコマンドを使用して Nginx を起動できます。

sudo systemctl start nginx

サーバーの IP アドレスまたはドメイン名を選択すると、デフォルトの Nginx ようこそページが表示されるはずです。

  1. 負荷分散の構成

Nginx を使用して負荷分散を実装する前に、最初にバックエンド サーバーを構成する必要があります。ここでは例として 2 つのサーバー、192.168.1.2 と 192.168.1.3 を取り上げます。

Nginx 構成ファイルで負荷分散を構成します。次のコマンドを使用して、デフォルトの nginx.conf ファイルを開くことができます。

sudo nano /etc/nginx/nginx.conf

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

upstream backend {
  server 192.168.1.2;
  server 192.168.1.3;
}

ここでは、トラフィックを 2 つのネットワークに分散するために、アップストリームという名前のバックエンドが定義されています。コンピューター、サーバー、実際の状況に応じて複数のサーバーを追加できます。

次に、server ブロック内に location ブロックを追加します。以下に簡単な ThinkPHP6 の例を示します。

server {
  listen 80;
  server_name example.com;

  location / {
    proxy_pass http://backend;
    proxy_set_header Host $host;
  }
}

example.com という名前の仮想ホストがここで定義されており、定義されたバックエンド上流にリクエストを送信するためにプロキシが使用されています。実際の状況に応じて、server_name と location を変更できます。

  1. Nginx の再起動

設定が完了したら、有効にするために Nginx を再起動する必要があります。

sudo systemctl restart nginx

次に、example.com にアクセスして、リクエストを有効にします。に割り当てられます。2 つのサーバー上で負荷分散が実現されます。

  1. テスト

いくつかのストレス テスト ツールを使用して、負荷分散の効果をテストできます。ここでは、Apache Bench を例として取り上げます。

まず、Apache Bench をインストールする必要があります。 Ubuntu システムを例に挙げると、次のコマンドを使用してインストールできます。

sudo apt-get update
sudo apt-get install apache2-utils

インストールが完了したら、次のコマンドを使用してテストできます。

ab -n 10000 -c 100 http://example.com/

ここで、-n はを表します。リクエストの数、-c は同時実行数を表します。次のパラメータはリクエストされた URL を表します。

テスト完了後、各サーバーのアクセスログを確認すると、リクエストが2台のサーバーに分散され、負荷分散効果が大幅に向上していることがわかります。

概要

Nginx を使用して ThinkPHP6 で負荷分散を実現すると、Web サイトの可用性と安定性を向上させることができます。シンプルな構成で負荷分散を実現できるため、同時トラフィックが多くてもWebサイトをスムーズに動作させることができます。

以上がThinkPHP6 での Nginx 負荷分散の使用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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