HTTP リクエストのキャッシュ制御に Nginx を使用する方法
HTTP リクエストのキャッシュ制御は、Web サイトのパフォーマンスを最適化する重要な手段です。サーバーがリクエストを処理する回数を減らし、Web サイトの応答速度を向上させることができます。ウェブサイト。 Nginx は高性能な Web サーバーおよびリバース プロキシ サーバーとして柔軟なキャッシュ制御機能を提供しますので、本記事では Nginx を使用して HTTP リクエストのキャッシュ制御を行う方法を紹介します。
1. プロキシ キャッシュを利用する
Nginx では、上流サーバーからの応答結果をキャッシュし、上流サーバーへのリクエスト数を削減できるプロキシ キャッシュ機能を提供しています。プロキシ キャッシュを使用するには、次の設定を Nginx 設定ファイルに追加します。
http { proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off; server { ... location / { proxy_cache my_cache; proxy_cache_key $host$uri$is_args$args; proxy_cache_valid 200 302 10m; proxy_cache_valid 404 1m; proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504; proxy_ignore_headers Cache-Control; proxy_ignore_headers Set-Cookie; proxy_hide_header Set-Cookie; proxy_pass http://upstream_server; } ... } }
上記の設定では、proxy_cache_path
を使用してキャッシュ パスと関連パラメータを設定します。 levels=1:2
は、効率を向上させるためにキャッシュ パスにレベル 1 ディレクトリとレベル 2 ディレクトリを作成することを意味します。 keys_zone
は、キャッシュ領域の名前とメモリ サイズを設定するために使用され、実際のニーズに応じて調整できます。 max_size
はキャッシュ領域の最大容量を示し、inactive
はキャッシュの有効期限を示します。つまり、60 分以内にアクセスされなかったキャッシュは削除されます。 use_temp_path=off
は一時パスを無効にすることを意味し、これによりパフォーマンスが向上します。
特定のサーバー構成で、location
ディレクティブを使用してキャッシュする必要がある URL を指定します。 proxy_cache
命令はキャッシュの有効化を示し、proxy_cache_key
命令はキャッシュ キー値を指定します。キャッシュ キー値を結合するために複数の変数を使用できます。 proxy_cache_valid
さまざまな HTTP ステータス コードのキャッシュ有効期間を指定します。たとえば、ステータス コード 200 および 302 の応答結果は 10 分以内、ステータス コード 404 の応答結果は 1 分以内に有効です。 proxy_cache_use_stale
上流サーバーでエラー、タイムアウト、または更新が発生した場合に、期限切れのキャッシュを使用するかどうかを指定するために使用されます。 proxy_ignore_headers
および proxy_hide_header
ディレクティブを使用すると、応答ヘッダー内の特定の属性を無視または非表示にすることができます。
構成が完了したら、Nginx サービスを再起動して構成を有効にします。このとき、Nginx は一致した URL をキャッシュし、再度同じ URL をリクエストした場合には、上流サーバーに再度リクエストすることなく、キャッシュから直接応答結果を取得します。
2. ブラウザ キャッシュの使用
プロキシ キャッシュに加えて、ブラウザ キャッシュを使用してネットワーク リクエストを減らすこともできます。 Nginx は、応答ヘッダーに Cache-Control
と Expires
を設定することでブラウザーのキャッシュ動作を制御できます。
例は次のとおりです:
http { ... server { ... location /static/ { expires max; add_header Cache-Control public; } ... } }
上記の構成では、expires
ディレクティブは max
に設定されています。これは、有効期限が切れることを意味します。応答結果の値は最大値に設定されます。つまり、有効期限が切れることはありません。 add_header
ディレクティブは、応答結果に Cache-Control
ヘッダーを追加し、それを public
に設定し、パブリック キャッシュが許可されていることを示します。
特定の URL 一致ルールでは、さまざまなニーズに応じてさまざまなキャッシュ戦略を設定できます。たとえば、静的リソースは通常頻繁に変更されないため、expires
を長い時間に設定してブラウザがリソースをキャッシュできるようにする一方で、動的に生成されたページはキャッシュしないように、またはキャッシュを短く設定することができます。時間。
3. 条件付きキャッシュを使用する
条件付きキャッシュは、クライアントとサーバー間の通信メカニズムであり、リクエストの条件に基づいてキャッシュを使用するかどうかを決定できます。 Nginx は、応答ヘッダーに Last-Modified
と ETag
を設定し、リクエストに If-Modified-Since
と If-None-Match を設定します。ヘッダー。
条件付きキャッシュを実装します。
例は次のとおりです:
http { ... server { ... location / { if_modified_since before; add_header ETag "123456"; if_none_match $http_if_none_match; if_modified_since off; ... } ... } }
上記の構成では、if_modified_since
ディレクティブを使用して、If-Modified-since
が有効かどうかを判断します。リクエストヘッダーの内容がサーバーよりも前である set Last-Modified
; add_header
命令は、リソースの一意性を識別するための ETag
ヘッダーを追加します。 ##if_none_match 命令は、リクエスト ヘッダーの
If-None-Match がサーバーによって設定された
ETag と一致するかどうかを判断するために使用されます。および
if_none_match 命令はそれぞれ ##If-Modified-Since
および If-None-Match
リクエスト ヘッダーの値に対応します。 条件付きキャッシュを設定すると、クライアントがリクエストを送信したときに、クライアントから返される
Last-Modified
と
に基づいてキャッシュを使用するかどうかを判断できます。サーバ。リソースが変更されていない場合、サーバーは 304 Not Modified
を返すことができ、クライアントはキャッシュからリソースを取得します。リソースが変更されている場合、サーバーは新しいリソースを返します。 4. キャッシュ戦略
キャッシュ動作をより適切に制御するために、さまざまな URL に応じてさまざまなキャッシュ戦略を設定できます。一般に、静的リソースの URL は安定しているため、キャッシュの有効期限を長く設定できますが、動的ページの URL は頻繁に変更される可能性があるため、キャッシュの有効期限を短く設定できます。
例は次のとおりです。
http { ... server { ... location /static/ { expires 7d; add_header Cache-Control public; } location /dynamic/ { expires 1h; add_header Cache-Control no-cache; } ... } }
上記の構成では、
/static/で始まる URL は静的リソースに一致し、有効期限を 7 日に設定し、許可されます。パブリック キャッシュ。
/dynamic/ で始まる URL は動的リソースに一致し、有効期限を 1 時間に設定し、キャッシュを無効にします。 合理的なキャッシュ戦略により、ユーザーが最新のリソースを確実に入手できるようにしながら、Web サイトのパフォーマンスを向上させることができます。
要約
Nginx を使用して HTTP リクエストのキャッシュ制御を行うことは、Web サイトのパフォーマンスを最適化する効果的な手段です。プロキシ キャッシュ、ブラウザ キャッシュ、および条件付きキャッシュにより、サーバーへのリクエストの数が削減され、Web サイトの応答速度が向上します。特定のキャッシュ戦略では、より良いユーザー エクスペリエンスを提供するために、さまざまな URL に応じてさまざまなキャッシュ有効期限を設定する必要があります。
参考: https://nginx.org/
以上がNginx を使用して HTTP リクエストのキャッシュ制御を行う方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Nginxunitは、複数のプログラミング言語をサポートし、動的構成、ゼロダウンタイム更新、組み込みのロードバランシングなどの機能を提供するオープンソースアプリケーションサーバーです。 1。動的構成:再起動せずに構成を変更できます。 2。多言語サポート:Python、Go、Java、PHPなどと互換性があります。 4。ビルトインロードバランシング:リクエストは、複数のアプリケーションインスタンスに配布できます。

nginxunitは、多言語プロジェクトや動的な構成要件に適した、apachetomcat、gunicorn、node.jsビルトインHTTPサーバーよりも優れています。 1)複数のプログラミング言語をサポートします。2)動的な構成リロード、3)高いスケーラビリティと信頼性を必要とするプロジェクトに適した組み込みの負荷分散機能を提供します。

Nginxunitは、モジュラーアーキテクチャと動的な再構成機能により、アプリケーションのパフォーマンスと管理性を向上させます。 1)モジュラー設計には、マスタープロセス、ルーター、アプリケーションプロセスが含まれ、効率的な管理と拡張をサポートします。 2)動的再構成により、CI/CD環境に適した、実行時に構成をシームレスに更新できます。 3)多言語サポートは、言語ランタイムの動的なロードを通じて実装され、開発の柔軟性が向上します。 4)イベント駆動型モデルと非同期I/Oによって高性能が達成され、高い並行性の下でも効率的なままです。 5)申請プロセスを分離し、アプリケーション間の相互の影響を減らすことにより、セキュリティが改善されます。

nginxunitを使用して、アプリケーションを複数の言語で展開および管理できます。 1)nginxunitをインストールします。 2)PythonやPHPなどのさまざまなタイプのアプリケーションを実行するように構成します。 3)アプリケーション管理に動的構成関数を使用します。これらの手順を通じて、アプリケーションを効率的に展開および管理し、プロジェクトの効率を向上させることができます。

NGINXは、高い並行接続の処理に適していますが、Apacheは複雑な構成とモジュール拡張が必要なシナリオにより適しています。 1.Nginxは、高性能と低リソース消費で知られており、高い並行性に適しています。 2. Apacheは、その安定性とリッチモジュール拡張機能で知られています。これは、複雑な構成ニーズに適しています。

Nginxunitは、動的な構成と高性能アーキテクチャにより、アプリケーションの柔軟性とパフォーマンスを向上させます。 1.動的構成により、サーバーを再起動せずにアプリケーション構成を調整できます。 2.高性能は、イベント駆動型および非ブロッキングアーキテクチャおよびマルチプロセスモデルに反映され、同時接続を効率的に処理し、マルチコアCPUを利用できます。

NginxとApacheはどちらも強力なWebサーバーであり、それぞれがパフォーマンス、スケーラビリティ、効率の点で独自の利点と短所を備えています。 1)nginxは、静的なコンテンツを処理し、逆プロキシを逆にするときにうまく機能します。 2)Apacheは、動的コンテンツを処理するときにパフォーマンスが向上し、リッチモジュールサポートが必要なプロジェクトに適しています。サーバーの選択は、プロジェクトの要件とシナリオに基づいて決定する必要があります。

Nginxは、高い並行リクエストの処理に適していますが、Apacheは複雑な構成と機能的拡張が必要なシナリオに適しています。 1.Nginxは、イベント駆動型の非ブロッキングアーキテクチャを採用しており、高電流環境に適しています。 2。Apacheはプロセスまたはスレッドモデルを採用して、複雑な構成のニーズに適したリッチモジュールエコシステムを提供します。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

ホットトピック









