Web開発では、動的キャッシュは、Webアプリケーションのパフォーマンスと応答速度を改善するための重要な手段の1つです。 Dockerコンテナ化された環境では、Nginxをプロキシサーバーとして使用して動的キャッシュを実装すると、システムのスケーラビリティと柔軟性を大幅に向上させることができます。この記事では、DockerコンテナでNginxを使用してWebサービスの動的キャッシュを実装し、特定のコードの例を使用して関連する構成を詳細に説明する方法を紹介します。
構成を開始する前に、次の環境の準備が整っていることを確認する必要があります。
まず、Dockerコンテナを作成し、その中にnginxプロキシサーバーを実行する必要があります。次のコマンドを実行して、nginxコンテナを作成および起動します。
docker run -d -name nginx -proxy -p 80:80 nginx
このコマンドは、nginxの最新バージョンをダウンロードして実行し、コンテナのポート80をホストのポート80にマッピングするため、ホストのIPアドレスを介してNginxプロキシサーバーに簡単にアクセスできます。
コンテナが作成されて正常に実行されたことを確認するには、次のコマンドを実行できます。
Docker PS
コンテナのステータスが「アップ」であることがわかった場合、コンテナが正常に開始されたことを意味します。
次に、Webサービスの動的キャッシュを実装するようにNginxプロキシサーバーを構成する必要があります。まず、nginxコンテナのbash端子を入力します。
docker exec -it nginx -proxy bash
次に、次のコマンドを実行して、nginx構成ファイルを編集します。
cd /etc/nginx/conf.d/
vi default.conf
default.confファイルで、次の構成を追加します。
サーバー{ 匂いく80; server_name localhost; 位置 / { proxy_pass http:// web-app; proxy_cache my_cache; proxy_cache_valid 200 1d; proxy_cache_use_staleエラータイムアウトhttp_500 http_502 http_503 http_504; } }
上記の構成では、proxy_passディレクティブは、クライアント要求を「Web-App」という名前のアップストリームサーバーに転送します。同時に、proxy_cache命令はproxyサーバーのキャッシュ関数を有効にし、proxy_cache_valid命令はキャッシュの有効期間を1日に設定します。 proxy_cache_use_staleディレクティブは、キャッシュの更新中に期限切れのキャッシュコンテンツを返すことを可能にするために使用されます。
エディターを保存および終了した後、NGINXサービスを再起動して構成を有効にします。
Service Nginx Restart
NGINXプロキシサーバーが構成されたら、NGINXプロキシサーバーと正常に通信するようにWebアプリケーションを構成する必要があります。 Webアプリケーションの構成ファイルで、次のように追加します。
上流のWeb-App { サーバ<web-app-container-ip>; }
この構成では、する必要があります
docker Inspect -f '{{range .networksettings.networks}} {{。ipaddress}} {{end}}'<web-app-container-id>
構成内のIPアドレスを交換した後、構成ファイルを保存して終了します。
構成が完了したら、動的キャッシュ機能のテストを開始できます。ブラウザを開き、「http:// localhost」を入力して、Webアプリケーションにアクセスします。この時点で、Nginx Proxy Serverは要求をWebアプリケーションに転送し、返された応答データをキャッシュします。
ブラウザページを更新した後、NGINXプロキシサーバーはキャッシュから直接データを読み取り、Webアプリケーションにリクエストを再明確にすることなく戻り、応答速度が向上します。
この記事では、DockerでNginx Proxy Serverを使用してWebサービスの動的キャッシュを実装する方法について説明します。 Nginxのproxy_cacheディレクティブとproxy_cache_validディレクティブを構成することにより、nginxのキャッシュ機能を簡単に有効にして構成できます。サンプルコードのデモンストレーションにより、Docker環境でNginxコンテナを作成し、動的キャッシュ機能を構成する方法を学びます。このようにして、Webアプリケーションのパフォーマンスと応答性を効果的に改善し、それによりユーザーエクスペリエンスを改善できます。