ホームページ  >  記事  >  バックエンド開発  >  データベースの負荷分散と拡張を実現する PHP メソッド

データベースの負荷分散と拡張を実現する PHP メソッド

王林
王林オリジナル
2023-05-15 20:51:241001ブラウズ

インターネット アプリケーションとアクセス数が増加し続ける現在の環境では、データベースの負荷分散パフォーマンスを向上させる方法がすべての技術者の焦点になっています。中でもPHPはよく使われる開発言語であり、データベースの負荷分散や拡張をどのように実現するかが話題となっています。

この記事では、実践的なアプリケーションの経験を組み合わせて、環境の準備方法、LNMP の構成方法、負荷分散の実装方法など、PHP を使用してデータベースの負荷分散の拡張を実現する方法を紹介します。

  1. 環境の準備

データベース負荷分散の拡張を実行する前に、十分な数のサーバーとハードウェア構成があることを確認する必要があります。単一障害点を避けるために、ロード バランサーとデータベース サーバーを分離することをお勧めします。容量の拡張を実現するには、サーバーをネットワーク設定とハードウェアで構成し、必要なソフトウェアとツールをインストールする必要があります。

  1. LNMP の構成

環境の準備ができたら、次の手順に従って LNMP をインストールできます。

まず、Linux システムをインストールします。 CentOS または Ubuntu の安定バージョンを使用することをお勧めします。

次に、Apache、PHP、MySQL (AMP) をインストールします。 yum や apt-get などのパッケージ マネージャーを使用してインストールすることもできます。

3 番目に、Nginx をインストールします。次のコマンドを使用してインストールできます。

yum install nginx

4 番目に、構成ファイルをインストールします。

設定ファイルをインストールする前に、PHP テスト ファイルを作成する必要があります。次のように:

<?php
phpinfo();
?>

次に、ファイルをサーバーの DocumentRoot ディレクトリに保存します。次のコマンドを使用できます:

cd /usr/local/nginx/html
vi phpinfo.php

開いたファイルに次のコードを追加します:

location / {
  root html;
  index index.php index.html index.htm;
}
location ~ .php$ {
  fastcgi_pass 127.0.0.1:9000;
  fastcgi_index index.php;
  fastcgi_param SCRIPT_FILENAME /srv/www/htdocs$fastcgi_script_name;
  include fastcgi_params;
}

ファイルを保存して閉じます。

その後、次のように、PHP テスト ファイルを Apache から Nginx のテスト ディレクトリに移動します。

mv /usr/local/apache/htdocs/phpinfo.php /usr/local/nginx/html

最後に、サービスを開始してテストします。

Apache と Nginx を再起動します。

/etc/init.d/httpd restart
/etc/init.d/nginx restart

次のようにブラウザで Nginx テスト ファイルを開きます。

http://IPAddress/phpinfo.php

は PHP のインストール情報を表示し、LNMP 環境が正常に動作していることを証明します。ビルドに成功しました。

  1. 負荷分散の実装

LNMP 環境の構成が完了したら、負荷分散を構成する必要があります。

まず、2 つの Web サーバーを含む「php」という名前のクラスターを作成します。 Nginx の構成ファイルを開き、次のコードを追加します。

http {
  upstream php_backend {
    server localhost:8888 weight=1;
    server localhost:9999 weight=2;
  }
}

上記のコードは、「php_backend」という名前のクラスターを作成し、ローカル ホストが 2 つの Web サーバー (localhost:8888 と localhost:9999) を指すようにするために使用されます。このうち、weight=2 は、weight=1 のサーバーよりも重みが大きい、つまりクライアントのリクエストに応答するサーバーとして選択される可能性が高いことを意味します。

次に、Nginx HTTP サーバーを開き、クラスター ロード バランサーを Vhost に追加します。

server {
  listen 80;
  server_name localhost;
  location / {
    proxy_pass http://php_backend;
  }
}

上記のコードは、Nginx HTTP サーバーを有効にし、クラスター ロード バランサーを Vhost に追加するために使用されます。これにより、リクエストが 2 つの Web サーバーに分散されます。もちろん、複数の Web サーバーをクラスターに追加することもできます。

最後に、Nginx を再起動して設定を有効にします。

/etc/init.d/nginx restart

上記の手順を完了すると、ロード バランサーは重みに基づいてリクエストを Web サーバーに自動的に分散し、ロード バランシングを実現します。

つまり、PHP を使用してデータベースの負荷分散拡張を実現すると、アプリケーションの線形拡張のパフォーマンスと信頼性を大幅に向上させることができます。上記の手順を通じて、LNMP 環境を使用してロード バランシングを実現する方法を理解できたと思います。この記事が役立つことを願っています。

以上がデータベースの負荷分散と拡張を実現する PHP メソッドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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