ホームページ >バックエンド開発 >PHPチュートリアル >PHP と REDIS を使用してキャッシュ プロキシ サーバーを構築する方法

PHP と REDIS を使用してキャッシュ プロキシ サーバーを構築する方法

WBOY
WBOYオリジナル
2023-07-22 12:40:491335ブラウズ

PHP と Redis を使用してキャッシュ プロキシ サーバーを構築する方法

キャッシュは、システムのパフォーマンスを効果的に向上させるテクノロジです。 Web 開発では、キャッシュ プロキシ サーバーを使用するのが一般的な最適化方法です。この記事では、PHP と Redis を使用してキャッシュ プロキシ サーバーを構築する方法をコード例とともに紹介します。

  1. Redis のインストールと構成

まず、サーバーに Redis をインストールする必要があります。次のコマンドを使用してインストールできます:

sudo apt-get install redis-server

インストールが完了したら、Redis でいくつかの構成を実行する必要があります。 /etc/redis/redis.conf ファイルを編集して、次の 2 つの構成項目を変更できます。

bind 127.0.0.1
maxmemory 128mb

bind 構成項目を次の IP アドレスに変更します。サーバー、および maxmemory 構成項目を適切な値に変更します (サーバーのメモリに応じて)。

  1. PHP コードの記述

次に、キャッシュ プロキシ サーバーの機能を実装するための PHP コードを記述します。まず ProxyServer.php ファイルを作成し、次のコードを追加します。

<?php
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);

$cacheKey = md5($_SERVER['REQUEST_URI']);

$cachedResponse = $redis->get($cacheKey);

if ($cachedResponse) {
    echo $cachedResponse;
} else {
    // Your original logic here

    // Get the response from the upstream server
    $response = get_response_from_upstream_server();

    // Store the response in Redis with a TTL of 1 hour
    $redis->setex($cacheKey, 3600, $response);

    echo $response;
}
?>

上記のコードでは、最初に Redis PHP 拡張機能を使用して Redis サーバーに接続します。次に、現在リクエストされている URL に基づいて一意のキャッシュ キー $cacheKey を計算します。次に、キャッシュされた応答を Redis から取得しようとします。キャッシュされた応答が存在する場合は、キャッシュされた応答が直接返されます。存在しない場合は、カスタム ロジックが実行され、上流サーバーから応答が取得され、応答が Redis に保存され、有効期限が設定されます。時間は1時間までです。

上記のコードの get_response_from_upstream_server() は、上流サーバーにリクエストを送信し、レスポンスを取得するロジック実装を作成できるカスタム メソッドであることに注意してください。

  1. Web サーバーの構成

最後に、Web サーバー (Nginx や Apache など) の構成ファイルを変更して、作成したキャッシュ プロキシ サーバーにリクエストを転送します。 。

たとえば、Nginx では、nginx.conf ファイルまたは対応する仮想ホスト構成ファイルに次のコードを追加できます。

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://127.0.0.1:8080;
    }
}

上記のコードでは、 proxy_pass ディレクティブは、アドレスが http://127.0.0.1:8080 であるキャッシュ プロキシ サーバーにリクエストを転送します。

  1. テスト

上記の手順を完了すると、ブラウザで関連する URL にアクセスしてテストできます。初回訪問時はキャッシュプロキシサーバーが上流サーバーからレスポンスを取得してRedisに保存し、2回目以降はRedisから直接レスポンスを取得して返すため、アクセス速度が向上します。

概要

この記事では、PHP と Redis を使用してキャッシュ プロキシ サーバーを構築する方法を紹介します。キャッシュプロキシサーバーを使用すると、システムのパフォーマンスと応答速度が大幅に向上します。この記事がお役に立てば幸いです。

参考リンク:

  • https://redis.io/download
  • https://www.php.net/manual/en/book.redis .php
  • https://nginx.org/

以上がPHP と REDIS を使用してキャッシュ プロキシ サーバーを構築する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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