Nginx のリバース プロキシ キャッシュと動的コンテンツ キャッシュ実装の詳細の分析
Nginx は、高性能 Web サーバーおよびリバース プロキシ サーバーです。実際の Web アプリケーションでは、Web サイトのアクセス速度やパフォーマンスを向上させるために、リバース プロキシ キャッシュや動的コンテンツ キャッシュを使用して、Web ページの読み込みや応答を高速化することが必要になることがよくあります。この記事では、Nginx のリバース プロキシ キャッシュと動的コンテンツ キャッシュの実装の詳細を詳細に分析し、対応するコード例を示します。
1. リバース プロキシ キャッシュの実装の詳細
リバース プロキシ キャッシュとは、Nginx がリバース プロキシ サーバーとして機能しながら、クライアント リクエストの応答結果を独自のメモリまたはディスクにキャッシュできることを意味します。 、次回同じリソースが要求されたときにキャッシュされた結果を直接返すことができるため、アクセス速度が向上し、バックエンド サーバーの負荷が軽減されます。
まず、Nginx 構成ファイルでリバース プロキシ キャッシュ機能を有効にする必要があります。次の構成情報を http モジュールに追加できます。
http { ... proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off; server { ... } }
上記の構成では、proxy_cache_path
でキャッシュ パスと関連パラメーターを指定します。 levels
パラメータはキャッシュのディレクトリ構造を指定し、keys_zone
パラメータはキャッシュの名前とサイズを指定し、max_size
パラメータはキャッシュの最大容量を指定します。キャッシュ、inactive
パラメータはキャッシュの有効期限を指定し、use_temp_path
パラメータはキャッシュに一時パスを使用するかどうかを指定します。上記の構成では、my_cache
という名前のキャッシュを使用しています。
Nginx 構成ファイルでは、 location
ディレクティブを使用してリバース プロキシ キャッシュ ルールを構成できます。たとえば、指定された URL パスをキャッシュすることができます。具体的な構成は次のとおりです:
server { ... location /cached { proxy_cache my_cache; proxy_cache_valid 200 304 10m; proxy_cache_use_stale error timeout invalid_header http_500; proxy_cache_background_update on; proxy_pass http://backend_server; } }
上記の構成では、proxy_cache
は使用するキャッシュ、proxy_cache_valid
を指定します。キャッシュの有効期間を指定します。 proxy_cache_use_stale
は、キャッシュの有効期限が切れたときに応答するために古いキャッシュを使用するかどうかを指定します。 proxy_cache_background_update
は、バックグラウンドでキャッシュを更新するかどうかを指定します。 proxy_pass
はバックエンド サーバーのアドレスを指定します。
キャッシュを手動でクリアする必要がある場合は、proxy_cache_purge
モジュールを使用してこれを実現できます。 Nginx 設定ファイルでは、次の設定を追加できます。
location /purge { bproxy_cache_purge my_cache "$scheme$request_method$host$request_uri"; }
上記の設定では、proxy_cache_purge
でキャッシュをクリアするコマンドを指定し、キャッシュの名前と要求されたファイルを渡します。 URI。
2. 動的コンテンツ キャッシュの実装の詳細
動的コンテンツ キャッシュとは、リバース プロキシ サーバーがバックエンド サーバーの負荷を軽減している間に、Nginx が動的に生成されたコンテンツもキャッシュできることを意味します。応答性。
まず、Nginx 構成ファイルで動的コンテンツ キャッシュ機能を有効にする必要があります。次の構成情報を http モジュールに追加できます。
http { ... fastcgi_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off; server { ... } }
上記の構成では、fastcgi_cache_path
でキャッシュ パスと関連パラメーターを指定します。これは、リバース プロキシ キャッシュ構成と似ています。ここでも、my_cache
という名前のキャッシュを使用します。
Nginx 構成ファイルでは、location
ディレクティブを使用して動的コンテンツ キャッシュ ルールを構成することもできます。たとえば、指定された URL パスの動的コンテンツをキャッシュできます。具体的な構成は次のとおりです:
server { ... location /dynamic { fastcgi_cache my_cache; fastcgi_cache_valid 200 10m; fastcgi_cache_methods GET HEAD; fastcgi_cache_use_stale error timeout invalid_header http_500; fastcgi_cache_lock on; fastcgi_cache_lock_timeout 5s; fastcgi_pass backend_server; } }
上記の構成では、fastcgi_cache
は使用するキャッシュを指定します。 fastcgi_cache_valid キャッシュの有効期間を指定します。
fastcgi_cache_methodsどの HTTP メソッドをキャッシュするかを指定します。
fastcgi_cache_use_staleキャッシュの有効期限が切れたときに応答するために古いキャッシュを使用するかどうかを指定します。
fastcgi_cache_lock キャッシュ ロックとロック タイムアウトを有効にするかどうかを指定します。
fastcgi_passはバックエンド サーバーのアドレスを指定します。
fastcgi_cache_purge モジュールを使用します。 Nginx 設定ファイルでは、次の設定を追加できます。
location /purge { fastcgi_cache_purge my_cache "$scheme$request_method$host$request_uri"; }
fastcgi_cache_purge でキャッシュをクリアするコマンドを指定し、キャッシュ名と要求された URI を渡します。
以上がNginx のリバース プロキシ キャッシュと動的コンテンツ キャッシュ実装の詳細を分析するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。