ホームページ >バックエンド開発 >PHPチュートリアル >Nginx プロキシ サーバーを使用して Web サービスのキャッシュとプリロードを実装するにはどうすればよいですか?
Nginx プロキシ サーバーを使用して Web サービスのキャッシュとプリロードを実装するにはどうすればよいですか?
概要:
パフォーマンスは、Web サービスを設計および開発する際に非常に重要な側面です。 Web アプリケーションのパフォーマンスを向上させるために、Nginx プロキシ サーバーを使用してキャッシュとプリロードを実装できます。この記事では、Nginx プロキシ サーバーを使用して Web サービスのキャッシュとプリロードを実装する方法を紹介し、対応するコード例を示します。
Nginx キャッシュ メカニズム:
Nginx は、高性能 HTTP およびリバース プロキシ サーバーであり、そのキャッシュ メカニズムにより、Web アプリケーションの応答速度が大幅に向上します。 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头来决定是否绕过缓存 }
proxy_cache_valid
キャッシュの有効期間を指定します。ステータス コードが 200 および 302 の応答の場合、キャッシュ有効期間は 10 分に設定され、その他のステータス コードの応答の場合、デフォルトのキャッシュ有効期間は 1 分に設定されます。特定のニーズに基づいて調整および拡張できます。 proxy_cache_bypass
構成項目は、要求の Cache-Control ヘッダーに基づいてキャッシュをバイパスするかどうかを決定するために使用されます。リクエストに Cache-Control: no-cache
ヘッダーが含まれている場合、キャッシュはバイパスされ、バックエンド サーバーが直接リクエストされます。 Nginx のプリロード メカニズム:
キャッシュ メカニズムに加えて、Nginx はバックグラウンドでキャッシュを定期的にプリロードできるプリロード メカニズムも提供します。プリロードを通じて、Nginx は、よく使用されるいくつかのリソースを事前にキャッシュにロードして、応答速度を向上させることができます。
ngx_http_proxy_module
モジュールと ngx_http_upstream_module
モジュールを使用して、プリロード タスクを構成できます。 Nginx 構成ファイルでは、次の構成項目を追加できます。 location /preload { proxy_pass http://backend; # 预加载任务代理到后端服务器 proxy_cache my_cache; # 启用缓存 proxy_cache_purge off; # 禁止清除缓存 }
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 サイトの他の関連記事を参照してください。