ホームページ  >  記事  >  バックエンド開発  >  Nginx プロキシ サーバーを使用して Web サービスのキャッシュとプリロードを実装するにはどうすればよいですか?

Nginx プロキシ サーバーを使用して Web サービスのキャッシュとプリロードを実装するにはどうすればよいですか?

WBOY
WBOYオリジナル
2023-09-05 10:55:541229ブラウズ

Nginx プロキシ サーバーを使用して Web サービスのキャッシュとプリロードを実装するにはどうすればよいですか?

Nginx プロキシ サーバーを使用して Web サービスのキャッシュとプリロードを実装するにはどうすればよいですか?

概要:
パフォーマンスは、Web サービスを設計および開発する際に非常に重要な側面です。 Web アプリケーションのパフォーマンスを向上させるために、Nginx プロキシ サーバーを使用してキャッシュとプリロードを実装できます。この記事では、Nginx プロキシ サーバーを使用して Web サービスのキャッシュとプリロードを実装する方法を紹介し、対応するコード例を示します。

Nginx キャッシュ メカニズム:
Nginx は、高性能 HTTP およびリバース プロキシ サーバーであり、そのキャッシュ メカニズムにより、Web アプリケーションの応答速度が大幅に向上します。 Nginx のキャッシュ メカニズムは、指定されたプロキシ サーバー構成に基づいており、静的ファイルと動的コンテンツをキャッシュし、さまざまな条件に応じてキャッシュの有効期間とメカニズムを制御できます。

  1. Nginx プロキシ サーバーを構成する:
    まず、キャッシュ機能を有効にするために Nginx プロキシ サーバーを構成する必要があります。 Nginx 設定ファイルで、対応するプロキシ サーバー設定セクションを見つけて、次の設定項目を追加します。
location / {
    proxy_pass http://backend; # 将请求代理到后端服务器
    proxy_cache my_cache; # 启用缓存
    proxy_cache_valid 200 302 10m; # 缓存200和302状态码的响应10分钟
    proxy_cache_valid any 1m; # 缓存其他状态码的响应1分钟
    proxy_cache_bypass $http_cache_control; # 根据请求的Cache-Control头来决定是否绕过缓存
}
  1. キャッシュの有効期間を設定します。
    上記の設定項目では、 proxy_cache_validキャッシュの有効期間を指定します。ステータス コードが 200 および 302 の応答の場合、キャッシュ有効期間は 10 分に設定され、その他のステータス コードの応答の場合、デフォルトのキャッシュ有効期間は 1 分に設定されます。特定のニーズに基づいて調整および拡張できます。
  2. 要求されたキャッシュ バイパス条件を構成します。
    proxy_cache_bypass 構成項目は、要求の Cache-Control ヘッダーに基づいてキャッシュをバイパスするかどうかを決定するために使用されます。リクエストに Cache-Control: no-cache ヘッダーが含まれている場合、キャッシュはバイパスされ、バックエンド サーバーが直接リクエストされます。

Nginx のプリロード メカニズム:
キャッシュ メカニズムに加えて、Nginx はバックグラウンドでキャッシュを定期的にプリロードできるプリロード メカニズムも提供します。プリロードを通じて、Nginx は、よく使用されるいくつかのリソースを事前にキャッシュにロードして、応答速度を向上させることができます。

  1. プリロード タスクの構成:
    Nginx が提供する ngx_http_proxy_module モジュールと ngx_http_upstream_module モジュールを使用して、プリロード タスクを構成できます。 Nginx 構成ファイルでは、次の構成項目を追加できます。
location /preload {
    proxy_pass http://backend; # 预加载任务代理到后端服务器
    proxy_cache my_cache; # 启用缓存
    proxy_cache_purge off; # 禁止清除缓存
}
  1. プリロード タスクの実行:
    Cron などのツールを使用して、プリロード タスクを定期的に実行できます。たとえば、次のコマンドを使用してプリロード タスクを実行できます。
curl -XGET http://nginx_server/preload

上記のコマンドは、Nginx をトリガーして、バックエンド サーバーにプリロード リクエストを送信し、プリロードされたリソースをキャッシュに保存します。

概要:
Nginx プロキシ サーバーのキャッシュおよびプリロード メカニズムを構成することにより、Web アプリケーションのパフォーマンスと応答速度を大幅に向上させることができます。キャッシュ メカニズムによりバックエンド サーバーへのリクエストの数が削減され、プリロード メカニズムによりバックグラウンドでキャッシュを定期的にプリロードしてリソースを事前に準備し、応答を高速化できます。 Nginx プロキシ サーバーを使用してキャッシュとプリロードを実装することは、シンプルかつ効率的であるだけでなく、Web アプリケーションのユーザー エクスペリエンスとパフォーマンスを効果的に向上させることもできます。

コード例:
Nginx 設定ファイルの例:

http {
    proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:30m max_size=10g;
    server {
        listen 80;
        server_name my_server;
        
        location / {
            proxy_pass http://backend;
            proxy_cache my_cache;
            proxy_cache_valid 200 302 10m;
            proxy_cache_valid any 1m;
            proxy_cache_bypass $http_cache_control;
        }
        
        location /preload {
            proxy_pass http://backend;
            proxy_cache my_cache;
            proxy_cache_purge off;
        }
    }
}

以上がNginx プロキシ サーバーを使用して Web サービスのキャッシュとプリロードを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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