ホームページ >バックエンド開発 >PHPチュートリアル >リバース プロキシを使用して PHP での大量の同時リクエストの負荷を軽減する方法

リバース プロキシを使用して PHP での大量の同時リクエストの負荷を軽減する方法

PHPz
PHPzオリジナル
2023-08-10 11:17:061105ブラウズ

リバース プロキシを使用して PHP での大量の同時リクエストの負荷を軽減する方法

リバース プロキシを使用して PHP での大量の同時リクエストの負荷を軽減する方法

今日のインターネット アプリケーションでは、大量の同時リクエストが一般的な課題となっています。 PHP アプリケーションで多数の同時リクエストを処理すると、サーバーに大きな負荷がかかり、パフォーマンスの低下やサービスのクラッシュにつながる可能性があります。この問題を解決するには、リバース プロキシを使用して負荷を分散し、サーバーのパフォーマンスと安定性を向上させることができます。この記事では、リバース プロキシを使用して PHP での同時リクエストの負荷を軽減する方法を紹介し、いくつかのコード例を示します。

1. リバース プロキシとは

リバース プロキシとは、クライアントのリクエストを内部サーバーに転送し、サーバーの応答をクライアントに返すことを指します。フォワード プロキシとは対照的に、フォワード プロキシは、クライアントに代わってターゲット サーバーにデータを要求し、そのデータをクライアントに返すプロキシ サーバーです。

リバース プロキシを使用する利点は、内部サーバーの実際の IP アドレスを隠してセキュリティを向上させることができると同時に、負荷分散アルゴリズムに従ってリクエストを複数のサーバーに分散できることです。これにより、システム全体のパフォーマンスと可用性が向上します。

2. リバース プロキシ サーバーとしての Nginx

Nginx は、リバース プロキシ サーバーとしても使用できる軽量で高性能な Web サーバーです。以下では、事例を使用して、Nginx をリバース プロキシ サーバーとして使用して、PHP の大量の同時リクエストの負荷を軽減する方法を示します。

  1. Nginx のインストール

まず、サーバーに Nginx をインストールする必要があります。 Ubuntu を例として、次のコマンドを使用してインストールします。

sudo apt-get update
sudo apt-get install nginx
  1. Configure Nginx reverse proxy

次の内容を Nginx 構成ファイル /etc に追加します。 / nginx/sites-enabled/default:

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://php_server;
        proxy_set_header Host $http_host;
    }
}

upstream php_server {
    server 127.0.0.1:8000;
}

上記の設定では、example.com がドメイン名、http://php_server がドメイン名です。 your PHP アプリケーション サーバーのアドレス。 127.0.0.1:8000 は例の PHP アプリケーションサーバーのアドレスとポートですが、実際の状況に応じて変更する必要があります。

  1. Nginx サービスの再起動

構成が完了したら、次のコマンドを使用して Nginx サービスを再起動します:

sudo service nginx restart

3. PHP-FPM を使用します。 PHP リクエストを処理する

PHP-FPM (FastCGI Process Manager) は、PHP リクエストを処理するために使用される、PHP 用の FastCGI プロセス マネージャです。 PHP-FPM を使用すると、PHP のパフォーマンスと同時リクエストの数を向上させることができます。

  1. PHP-FPM のインストール

Ubuntu では、次のコマンドを使用して PHP-FPM をインストールします:

sudo apt-get install php-fpm
  1. PHP-FPM の構成

PHP-FPM 構成ファイル /etc/php/7.4/fpm/pool.d/www.conf を編集し、次のコード行を見つけます:

listen = /run/php/php7.4-fpm.sock
;listen = 127.0.0.1:9000

listen = /run/php/php7.4-fpm.sock をコメントアウトし、listen = 127.0.0.1:9000 のコメントを解除し、この行の IP アドレスとポートを変更します。 code 実際の値に変更します (例: listen = 127.0.0.1:8000)。

  1. PHP-FPM サービスを再起動します

構成が完了したら、次のコマンドを使用して PHP-FPM サービスを再起動します:

sudo service php7.4-fpm restart

4。デモの例

この例では、ユーザー登録リクエストを処理する単純な PHP アプリケーションを想定しています。

<?php
// 处理用户注册
function handleRegisterRequest($username, $password) {
    // ... 处理逻辑
}

// 入口函数
function main() {
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
        // 获取并验证用户提交的数据
        $username = $_POST['username'];
        $password = $_POST['password'];
        // 处理注册请求
        handleRegisterRequest($username, $password);
    }
}

main();
?>

上の例では、handleRegisterRequest 関数を使用してユーザーの登録リクエストを処理しました。 main 関数では、まずユーザーが $_POST を通じて送信したデータを取得し、次に handleRegisterRequest を呼び出して処理します。

Nginx をリバース プロキシ サーバーとして構成し、PHP-FPM を使用して PHP リクエストを処理することにより、システムのパフォーマンスと可用性が向上し、同時多発 PHP リクエストの負荷を効果的に軽減できます。合理的な構成と最適化により、大量のトラフィック アクセスに適切に対処し、より良いユーザー エクスペリエンスを提供できます。

概要

この記事では、リバース プロキシを使用して、PHP での同時リクエストの負荷を軽減する方法を紹介します。 Nginx をリバース プロキシ サーバーとして使用し、PHP-FPM と連携して PHP リクエストを処理することで、システムのパフォーマンスと可用性を効果的に向上させることができます。同時に、読者がよりよく理解して実践できるように、対応するコード例も提供します。この記事がお役に立てば幸いです!

以上がリバース プロキシを使用して PHP での大量の同時リクエストの負荷を軽減する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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